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 Compact";
11	compatible = "sony,xperia-amami", "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 = "okay";
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 = "okay";
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 = "okay";
292
293		pinctrl-names = "default";
294		pinctrl-0 = <&blsp1_uart2_pin_a>;
295	};
296
297
298	pinctrl@fd510000 {
299		blsp1_uart2_pin_a: blsp1-uart2-pin-active {
300			rx {
301				pins = "gpio5";
302				function = "blsp_uart2";
303
304				drive-strength = <2>;
305				bias-pull-up;
306			};
307
308			tx {
309				pins = "gpio4";
310				function = "blsp_uart2";
311
312				drive-strength = <4>;
313				bias-disable;
314			};
315		};
316
317		i2c2_pins: i2c2 {
318			mux {
319				pins = "gpio6", "gpio7";
320				function = "blsp_i2c2";
321
322				drive-strength = <2>;
323				bias-disable;
324			};
325		};
326
327		sdhc1_pin_a: sdhc1-pin-active {
328			clk {
329				pins = "sdc1_clk";
330				drive-strength = <16>;
331				bias-disable;
332			};
333
334			cmd-data {
335				pins = "sdc1_cmd", "sdc1_data";
336				drive-strength = <10>;
337				bias-pull-up;
338			};
339		};
340
341		sdhc2_cd_pin_a: sdhc2-cd-pin-active {
342			pins = "gpio62";
343			function = "gpio";
344
345			drive-strength = <2>;
346			bias-disable;
347		 };
348
349		sdhc2_pin_a: sdhc2-pin-active {
350			clk {
351				pins = "sdc2_clk";
352				drive-strength = <10>;
353				bias-disable;
354			};
355
356			cmd-data {
357				pins = "sdc2_cmd", "sdc2_data";
358				drive-strength = <6>;
359				bias-pull-up;
360			};
361		};
362	};
363
364	dma-controller@f9944000 {
365		qcom,controlled-remotely;
366	};
367
368	usb@f9a55000 {
369		status = "okay";
370
371		phys = <&usb_hs1_phy>;
372		phy-select = <&tcsr 0xb000 0>;
373		extcon = <&smbb>, <&usb_id>;
374		vbus-supply = <&chg_otg>;
375
376		hnp-disable;
377		srp-disable;
378		adp-disable;
379
380		ulpi {
381			phy@a {
382				status = "okay";
383
384				v1p8-supply = <&pm8941_l6>;
385				v3p3-supply = <&pm8941_l24>;
386
387				extcon = <&smbb>;
388				qcom,init-seq = /bits/ 8 <0x1 0x64>;
389			};
390		};
391	};
392};
393
394&spmi_bus {
395	pm8941@0 {
396		charger@1000 {
397			qcom,fast-charge-safe-current = <1300000>;
398			qcom,fast-charge-current-limit = <1300000>;
399			qcom,dc-current-limit = <1300000>;
400			qcom,fast-charge-safe-voltage = <4400000>;
401			qcom,fast-charge-high-threshold-voltage = <4350000>;
402			qcom,fast-charge-low-threshold-voltage = <3400000>;
403			qcom,auto-recharge-threshold-voltage = <4200000>;
404			qcom,minimum-input-voltage = <4300000>;
405		};
406
407		gpios@c000 {
408			gpio_keys_pin_a: gpio-keys-active {
409				pins = "gpio2", "gpio3", "gpio4", "gpio5";
410				function = "normal";
411
412				bias-pull-up;
413				power-source = <PM8941_GPIO_S3>;
414			};
415		};
416
417		coincell@2800 {
418			status = "okay";
419			qcom,rset-ohms = <2100>;
420			qcom,vset-millivolts = <3000>;
421		};
422	};
423
424	pm8941@1 {
425		wled@d800 {
426			status = "okay";
427
428			qcom,cs-out;
429			qcom,current-limit = <20>;
430			qcom,current-boost-limit = <805>;
431			qcom,switching-freq = <1600>;
432			qcom,ovp = <29>;
433			qcom,num-strings = <2>;
434		};
435	};
436};
437