1// SPDX-License-Identifier: GPL-2.0
2#include "qcom-msm8974.dtsi"
3#include "qcom-pm8841.dtsi"
4#include "qcom-pm8941.dtsi"
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/input/input.h>
7#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
8
9/ {
10	model = "Sony Xperia Z1";
11	compatible = "sony,xperia-honami", "qcom,msm8974";
12
13	aliases {
14		serial0 = &blsp1_uart2;
15	};
16
17	chosen {
18		stdout-path = "serial0:115200n8";
19	};
20
21	gpio-keys {
22		compatible = "gpio-keys";
23		input-name = "gpio-keys";
24
25		pinctrl-names = "default";
26		pinctrl-0 = <&gpio_keys_pin_a>;
27
28		volume-down {
29			label = "volume_down";
30			gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
31			linux,input-type = <1>;
32			linux,code = <KEY_VOLUMEDOWN>;
33		};
34
35		camera-snapshot {
36			label = "camera_snapshot";
37			gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
38			linux,input-type = <1>;
39			linux,code = <KEY_CAMERA>;
40		};
41
42		camera-focus {
43			label = "camera_focus";
44			gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
45			linux,input-type = <1>;
46			linux,code = <KEY_CAMERA_FOCUS>;
47		};
48
49		volume-up {
50			label = "volume_up";
51			gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
52			linux,input-type = <1>;
53			linux,code = <KEY_VOLUMEUP>;
54		};
55	};
56
57	memory@0 {
58		reg = <0 0x40000000>, <0x40000000 0x40000000>;
59		device_type = "memory";
60	};
61
62	smd {
63		rpm {
64			rpm_requests {
65				pm8841-regulators {
66					s1 {
67						regulator-min-microvolt = <675000>;
68						regulator-max-microvolt = <1050000>;
69					};
70
71					s2 {
72						regulator-min-microvolt = <500000>;
73						regulator-max-microvolt = <1050000>;
74					};
75
76					s3 {
77						regulator-min-microvolt = <500000>;
78						regulator-max-microvolt = <1050000>;
79					};
80
81					s4 {
82						regulator-min-microvolt = <500000>;
83						regulator-max-microvolt = <1050000>;
84					};
85				};
86
87				pm8941-regulators {
88					vdd_l1_l3-supply = <&pm8941_s1>;
89					vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
90					vdd_l4_l11-supply = <&pm8941_s1>;
91					vdd_l5_l7-supply = <&pm8941_s2>;
92					vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
93					vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
94					vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
95					vdd_l21-supply = <&vreg_boost>;
96
97					s1 {
98						regulator-min-microvolt = <1300000>;
99						regulator-max-microvolt = <1300000>;
100						regulator-always-on;
101						regulator-boot-on;
102					};
103
104					s2 {
105						regulator-min-microvolt = <2150000>;
106						regulator-max-microvolt = <2150000>;
107						regulator-boot-on;
108					};
109
110					s3 {
111						regulator-min-microvolt = <1800000>;
112						regulator-max-microvolt = <1800000>;
113						regulator-always-on;
114						regulator-boot-on;
115					};
116
117					s4 {
118						regulator-min-microvolt = <5000000>;
119						regulator-max-microvolt = <5000000>;
120					};
121
122					l1 {
123						regulator-min-microvolt = <1225000>;
124						regulator-max-microvolt = <1225000>;
125
126						regulator-always-on;
127						regulator-boot-on;
128					};
129
130					l2 {
131						regulator-min-microvolt = <1200000>;
132						regulator-max-microvolt = <1200000>;
133					};
134
135					l3 {
136						regulator-min-microvolt = <1200000>;
137						regulator-max-microvolt = <1200000>;
138					};
139
140					l4 {
141						regulator-min-microvolt = <1225000>;
142						regulator-max-microvolt = <1225000>;
143					};
144
145					l5 {
146						regulator-min-microvolt = <1800000>;
147						regulator-max-microvolt = <1800000>;
148					};
149
150					l6 {
151						regulator-min-microvolt = <1800000>;
152						regulator-max-microvolt = <1800000>;
153
154						regulator-boot-on;
155					};
156
157					l7 {
158						regulator-min-microvolt = <1800000>;
159						regulator-max-microvolt = <1800000>;
160
161						regulator-boot-on;
162					};
163
164					l8 {
165						regulator-min-microvolt = <1800000>;
166						regulator-max-microvolt = <1800000>;
167					};
168
169					l9 {
170						regulator-min-microvolt = <1800000>;
171						regulator-max-microvolt = <2950000>;
172					};
173
174					l11 {
175						regulator-min-microvolt = <1300000>;
176						regulator-max-microvolt = <1350000>;
177					};
178
179					l12 {
180						regulator-min-microvolt = <1800000>;
181						regulator-max-microvolt = <1800000>;
182
183						regulator-always-on;
184						regulator-boot-on;
185					};
186
187					l13 {
188						regulator-min-microvolt = <1800000>;
189						regulator-max-microvolt = <2950000>;
190
191						regulator-boot-on;
192					};
193
194					l14 {
195						regulator-min-microvolt = <1800000>;
196						regulator-max-microvolt = <1800000>;
197					};
198
199					l15 {
200						regulator-min-microvolt = <2050000>;
201						regulator-max-microvolt = <2050000>;
202					};
203
204					l16 {
205						regulator-min-microvolt = <2700000>;
206						regulator-max-microvolt = <2700000>;
207					};
208
209					l17 {
210						regulator-min-microvolt = <2700000>;
211						regulator-max-microvolt = <2700000>;
212					};
213
214					l18 {
215						regulator-min-microvolt = <2850000>;
216						regulator-max-microvolt = <2850000>;
217					};
218
219					l19 {
220						regulator-min-microvolt = <3300000>;
221						regulator-max-microvolt = <3300000>;
222					};
223
224					l20 {
225						regulator-min-microvolt = <2950000>;
226						regulator-max-microvolt = <2950000>;
227
228						regulator-allow-set-load;
229						regulator-boot-on;
230						regulator-system-load = <200000>;
231					};
232
233					l21 {
234						regulator-min-microvolt = <2950000>;
235						regulator-max-microvolt = <2950000>;
236
237						regulator-boot-on;
238					};
239
240					l22 {
241						regulator-min-microvolt = <3000000>;
242						regulator-max-microvolt = <3000000>;
243					};
244
245					l23 {
246						regulator-min-microvolt = <2800000>;
247						regulator-max-microvolt = <2800000>;
248					};
249
250					l24 {
251						regulator-min-microvolt = <3075000>;
252						regulator-max-microvolt = <3075000>;
253
254						regulator-boot-on;
255					};
256				};
257			};
258		};
259	};
260};
261
262&soc {
263	sdhci@f9824900 {
264		status = "ok";
265
266		vmmc-supply = <&pm8941_l20>;
267		vqmmc-supply = <&pm8941_s3>;
268
269		bus-width = <8>;
270		non-removable;
271
272		pinctrl-names = "default";
273		pinctrl-0 = <&sdhc1_pin_a>;
274	};
275
276	sdhci@f98a4900 {
277		status = "ok";
278
279		bus-width = <4>;
280
281		vmmc-supply = <&pm8941_l21>;
282		vqmmc-supply = <&pm8941_l13>;
283
284		cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
285
286		pinctrl-names = "default";
287		pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
288	};
289
290	serial@f991e000 {
291		status = "ok";
292
293		pinctrl-names = "default";
294		pinctrl-0 = <&blsp1_uart2_pin_a>;
295	};
296
297	i2c@f9924000 {
298		status = "ok";
299
300		clock-frequency = <355000>;
301		qcom,src-freq = <50000000>;
302
303		pinctrl-names = "default";
304		pinctrl-0 = <&i2c2_pins>;
305
306		synaptics@2c {
307			compatible = "syna,rmi4-i2c";
308			reg = <0x2c>;
309
310			interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
311
312			#address-cells = <1>;
313			#size-cells = <0>;
314
315			vdd-supply = <&pm8941_l22>;
316			vio-supply = <&pm8941_lvs3>;
317
318			pinctrl-names = "default";
319			pinctrl-0 = <&ts_int_pin>;
320
321			syna,startup-delay-ms = <10>;
322
323			rmi4-f01@1 {
324				reg = <0x1>;
325				syna,nosleep-mode = <1>;
326			};
327
328			rmi4-f11@11 {
329				reg = <0x11>;
330				touchscreen-inverted-x;
331				syna,sensor-type = <1>;
332			};
333		};
334	};
335
336	pinctrl@fd510000 {
337		blsp1_uart2_pin_a: blsp1-uart2-pin-active {
338			rx {
339				pins = "gpio5";
340				function = "blsp_uart2";
341
342				drive-strength = <2>;
343				bias-pull-up;
344			};
345
346			tx {
347				pins = "gpio4";
348				function = "blsp_uart2";
349
350				drive-strength = <4>;
351				bias-disable;
352			};
353		};
354
355		i2c2_pins: i2c2 {
356			mux {
357				pins = "gpio6", "gpio7";
358				function = "blsp_i2c2";
359
360				drive-strength = <2>;
361				bias-disable;
362			};
363		};
364
365		sdhc1_pin_a: sdhc1-pin-active {
366			clk {
367				pins = "sdc1_clk";
368				drive-strength = <16>;
369				bias-disable;
370			};
371
372			cmd-data {
373				pins = "sdc1_cmd", "sdc1_data";
374				drive-strength = <10>;
375				bias-pull-up;
376			};
377		};
378
379		sdhc2_cd_pin_a: sdhc2-cd-pin-active {
380			pins = "gpio62";
381			function = "gpio";
382
383			drive-strength = <2>;
384			bias-disable;
385		 };
386
387		sdhc2_pin_a: sdhc2-pin-active {
388			clk {
389				pins = "sdc2_clk";
390				drive-strength = <10>;
391				bias-disable;
392			};
393
394			cmd-data {
395				pins = "sdc2_cmd", "sdc2_data";
396				drive-strength = <6>;
397				bias-pull-up;
398			};
399		};
400
401		ts_int_pin: touch-int {
402			pin {
403				pins = "gpio61";
404				function = "gpio";
405
406				drive-strength = <2>;
407				bias-disable;
408				input-enable;
409			};
410		};
411	};
412
413	dma-controller@f9944000 {
414		qcom,controlled-remotely;
415	};
416};
417
418&spmi_bus {
419	pm8941@0 {
420		charger@1000 {
421			qcom,fast-charge-safe-current = <1500000>;
422			qcom,fast-charge-current-limit = <1500000>;
423			qcom,dc-current-limit = <1800000>;
424			qcom,fast-charge-safe-voltage = <4400000>;
425			qcom,fast-charge-high-threshold-voltage = <4350000>;
426			qcom,fast-charge-low-threshold-voltage = <3400000>;
427			qcom,auto-recharge-threshold-voltage = <4200000>;
428			qcom,minimum-input-voltage = <4300000>;
429		};
430
431		gpios@c000 {
432			gpio_keys_pin_a: gpio-keys-active {
433				pins = "gpio2", "gpio3", "gpio4", "gpio5";
434				function = "normal";
435
436				bias-pull-up;
437				power-source = <PM8941_GPIO_S3>;
438			};
439		};
440
441		coincell@2800 {
442			status = "ok";
443			qcom,rset-ohms = <2100>;
444			qcom,vset-millivolts = <3000>;
445		};
446	};
447
448	pm8941@1 {
449		wled@d800 {
450			status = "ok";
451
452			qcom,cs-out;
453			qcom,current-limit = <20>;
454			qcom,current-boost-limit = <805>;
455			qcom,switching-freq = <1600>;
456			qcom,ovp = <29>;
457			qcom,num-strings = <2>;
458		};
459	};
460};
461