1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/gpio/gpio.h>
3#include <dt-bindings/input/input.h>
4#include <dt-bindings/mfd/qcom-rpm.h>
5#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
6
7#include "qcom-apq8064-v2.0.dtsi"
8#include "pm8821.dtsi"
9#include "pm8921.dtsi"
10
11/ {
12	model = "Sony Xperia Z";
13	compatible = "sony,xperia-yuga", "qcom,apq8064";
14	chassis-type = "handset";
15
16	aliases {
17		serial0 = &gsbi5_serial;
18	};
19
20	chosen {
21		stdout-path = "serial0:115200n8";
22	};
23
24	gpio-keys {
25		compatible = "gpio-keys";
26
27		pinctrl-names = "default";
28		pinctrl-0 = <&gpio_keys_pin_a>;
29
30		key-camera-focus {
31			label = "camera_focus";
32			gpios = <&pm8921_gpio 3 GPIO_ACTIVE_LOW>;
33			linux,input-type = <1>;
34			linux,code = <KEY_CAMERA_FOCUS>;
35		};
36
37		key-camera-snapshot {
38			label = "camera_snapshot";
39			gpios = <&pm8921_gpio 4 GPIO_ACTIVE_LOW>;
40			linux,input-type = <1>;
41			linux,code = <KEY_CAMERA>;
42		};
43
44		key-volume-down {
45			label = "volume_down";
46			gpios = <&pm8921_gpio 29 GPIO_ACTIVE_LOW>;
47			linux,input-type = <1>;
48			linux,code = <KEY_VOLUMEDOWN>;
49		};
50
51		key-volume-up {
52			label = "volume_up";
53			gpios = <&pm8921_gpio 35 GPIO_ACTIVE_LOW>;
54			linux,input-type = <1>;
55			linux,code = <KEY_VOLUMEUP>;
56		};
57	};
58};
59
60&gsbi5 {
61	qcom,mode = <GSBI_PROT_I2C_UART>;
62	status = "okay";
63};
64
65&gsbi5_serial {
66	pinctrl-names = "default";
67	pinctrl-0 = <&gsbi5_uart_pin_a>;
68	status = "okay";
69};
70
71&pm8821 {
72	interrupts-extended = <&tlmm_pinmux 76 IRQ_TYPE_LEVEL_LOW>;
73};
74
75&pm8921 {
76	interrupts-extended = <&tlmm_pinmux 74 IRQ_TYPE_LEVEL_LOW>;
77};
78
79&pm8921_gpio {
80	gpio_keys_pin_a: gpio-keys-active-state {
81		pins = "gpio3", "gpio4", "gpio29", "gpio35";
82		function = "normal";
83
84		bias-pull-up;
85		drive-push-pull;
86		input-enable;
87		power-source = <2>;
88		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
89		qcom,pull-up-strength = <0>;
90	};
91};
92
93&riva {
94	pinctrl-names = "default";
95	pinctrl-0 = <&riva_wlan_pin_a>, <&riva_bt_pin_a>, <&riva_fm_pin_a>;
96
97	vddcx-supply = <&pm8921_s3>;
98	vddmx-supply = <&pm8921_l24>;
99	vddpx-supply = <&pm8921_s4>;
100
101	status = "okay";
102
103	iris {
104		vddxo-supply = <&pm8921_l4>;
105		vddrfa-supply = <&pm8921_s2>;
106		vddpa-supply = <&pm8921_l10>;
107		vdddig-supply = <&pm8921_lvs2>;
108	};
109};
110
111&rpm {
112	regulators {
113		compatible = "qcom,rpm-pm8921-regulators";
114
115		vin_l1_l2_l12_l18-supply = <&pm8921_s4>;
116		vin_lvs_1_3_6-supply = <&pm8921_s4>;
117		vin_lvs_4_5_7-supply = <&pm8921_s4>;
118		vin_ncp-supply = <&pm8921_l6>;
119		vin_lvs2-supply = <&pm8921_s4>;
120		vin_l24-supply = <&pm8921_s1>;
121		vin_l25-supply = <&pm8921_s1>;
122		vin_l27-supply = <&pm8921_s7>;
123		vin_l28-supply = <&pm8921_s7>;
124
125		/* Buck SMPS */
126		pm8921_s1: s1 {
127			regulator-always-on;
128			regulator-min-microvolt = <1225000>;
129			regulator-max-microvolt = <1225000>;
130			qcom,switch-mode-frequency = <3200000>;
131			bias-pull-down;
132		};
133
134		pm8921_s2: s2 {
135			regulator-min-microvolt = <1300000>;
136			regulator-max-microvolt = <1300000>;
137			qcom,switch-mode-frequency = <1600000>;
138			bias-pull-down;
139		};
140
141		pm8921_s3: s3 {
142			regulator-min-microvolt = <500000>;
143			regulator-max-microvolt = <1150000>;
144			qcom,switch-mode-frequency = <4800000>;
145			bias-pull-down;
146		};
147
148		pm8921_s4: s4 {
149			regulator-always-on;
150			regulator-min-microvolt = <1800000>;
151			regulator-max-microvolt = <1800000>;
152			qcom,switch-mode-frequency = <1600000>;
153			bias-pull-down;
154			qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
155		};
156
157		pm8921_s7: s7 {
158			regulator-min-microvolt = <1300000>;
159			regulator-max-microvolt = <1300000>;
160			qcom,switch-mode-frequency = <3200000>;
161		};
162
163		pm8921_s8: s8 {
164			regulator-min-microvolt = <2200000>;
165			regulator-max-microvolt = <2200000>;
166			qcom,switch-mode-frequency = <1600000>;
167		};
168
169		/* PMOS LDO */
170		pm8921_l1: l1 {
171			regulator-always-on;
172			regulator-min-microvolt = <1100000>;
173			regulator-max-microvolt = <1100000>;
174			bias-pull-down;
175		};
176
177		pm8921_l2: l2 {
178			regulator-min-microvolt = <1200000>;
179			regulator-max-microvolt = <1200000>;
180			bias-pull-down;
181		};
182
183		pm8921_l3: l3 {
184			regulator-min-microvolt = <3075000>;
185			regulator-max-microvolt = <3075000>;
186			bias-pull-down;
187		};
188
189		pm8921_l4: l4 {
190			regulator-always-on;
191			regulator-min-microvolt = <1800000>;
192			regulator-max-microvolt = <1800000>;
193			bias-pull-down;
194		};
195
196		pm8921_l5: l5 {
197			regulator-min-microvolt = <2950000>;
198			regulator-max-microvolt = <2950000>;
199			bias-pull-down;
200		};
201
202		pm8921_l6: l6 {
203			regulator-min-microvolt = <2950000>;
204			regulator-max-microvolt = <2950000>;
205			bias-pull-down;
206		};
207
208		pm8921_l7: l7 {
209			regulator-min-microvolt = <1850000>;
210			regulator-max-microvolt = <2950000>;
211			bias-pull-down;
212		};
213
214		pm8921_l8: l8 {
215			regulator-min-microvolt = <2800000>;
216			regulator-max-microvolt = <2800000>;
217			bias-pull-down;
218		};
219
220		pm8921_l9: l9 {
221			regulator-min-microvolt = <3000000>;
222			regulator-max-microvolt = <3000000>;
223			bias-pull-down;
224		};
225
226		pm8921_l10: l10 {
227			regulator-min-microvolt = <2900000>;
228			regulator-max-microvolt = <2900000>;
229			bias-pull-down;
230		};
231
232		pm8921_l11: l11 {
233			regulator-min-microvolt = <3000000>;
234			regulator-max-microvolt = <3000000>;
235			bias-pull-down;
236		};
237
238		pm8921_l12: l12 {
239			regulator-min-microvolt = <1200000>;
240			regulator-max-microvolt = <1200000>;
241			bias-pull-down;
242		};
243
244		pm8921_l14: l14 {
245			regulator-min-microvolt = <1800000>;
246			regulator-max-microvolt = <1800000>;
247			bias-pull-down;
248		};
249
250		pm8921_l15: l15 {
251			regulator-min-microvolt = <1800000>;
252			regulator-max-microvolt = <2950000>;
253			bias-pull-down;
254		};
255
256		pm8921_l16: l16 {
257			regulator-min-microvolt = <2800000>;
258			regulator-max-microvolt = <2800000>;
259			bias-pull-down;
260		};
261
262		pm8921_l17: l17 {
263			regulator-min-microvolt = <2000000>;
264			regulator-max-microvolt = <2000000>;
265			bias-pull-down;
266		};
267
268		pm8921_l18: l18 {
269			regulator-min-microvolt = <1200000>;
270			regulator-max-microvolt = <1200000>;
271			bias-pull-down;
272		};
273
274		pm8921_l21: l21 {
275			regulator-min-microvolt = <1050000>;
276			regulator-max-microvolt = <1050000>;
277			bias-pull-down;
278		};
279
280		pm8921_l22: l22 {
281			regulator-min-microvolt = <2600000>;
282			regulator-max-microvolt = <2600000>;
283			bias-pull-down;
284		};
285
286		pm8921_l23: l23 {
287			regulator-min-microvolt = <1800000>;
288			regulator-max-microvolt = <1800000>;
289			bias-pull-down;
290		};
291
292		pm8921_l24: l24 {
293			regulator-min-microvolt = <750000>;
294			regulator-max-microvolt = <1150000>;
295			bias-pull-down;
296		};
297
298		pm8921_l25: l25 {
299			regulator-always-on;
300			regulator-min-microvolt = <1250000>;
301			regulator-max-microvolt = <1250000>;
302			bias-pull-down;
303		};
304
305		pm8921_l27: l27 {
306			regulator-min-microvolt = <1100000>;
307			regulator-max-microvolt = <1100000>;
308		};
309
310		pm8921_l28: l28 {
311			regulator-min-microvolt = <1050000>;
312			regulator-max-microvolt = <1050000>;
313			bias-pull-down;
314		};
315
316		pm8921_l29: l29 {
317			regulator-min-microvolt = <2000000>;
318			regulator-max-microvolt = <2000000>;
319			bias-pull-down;
320		};
321
322		/* Low Voltage Switch */
323		pm8921_lvs1: lvs1 {
324			bias-pull-down;
325		};
326
327		pm8921_lvs2: lvs2 {
328			bias-pull-down;
329		};
330
331		pm8921_lvs3: lvs3 {
332			bias-pull-down;
333		};
334
335		pm8921_lvs4: lvs4 {
336			bias-pull-down;
337		};
338
339		pm8921_lvs5: lvs5 {
340			bias-pull-down;
341		};
342
343		pm8921_lvs6: lvs6 {
344			bias-pull-down;
345		};
346
347		pm8921_lvs7: lvs7 {
348			bias-pull-down;
349		};
350
351		pm8921_usb_switch: usb-switch {};
352
353		pm8921_hdmi_switch: hdmi-switch {
354			bias-pull-down;
355		};
356
357		pm8921_ncp: ncp {
358			regulator-min-microvolt = <1800000>;
359			regulator-max-microvolt = <1800000>;
360			qcom,switch-mode-frequency = <1600000>;
361		};
362	};
363};
364
365&sdcc1 {
366	vmmc-supply = <&pm8921_l5>;
367	vqmmc-supply = <&pm8921_s4>;
368	status = "okay";
369};
370
371&sdcc3 {
372	vmmc-supply = <&pm8921_l6>;
373	cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
374
375	pinctrl-names = "default";
376	pinctrl-0 = <&sdcc3_pins>, <&sdcc3_cd_pin_a>;
377
378	status = "okay";
379};
380
381&tlmm_pinmux {
382	gsbi5_uart_pin_a: gsbi5-uart-pin-active {
383		rx {
384			pins = "gpio52";
385			function = "gsbi5";
386			drive-strength = <2>;
387			bias-pull-up;
388		};
389
390		tx {
391			pins = "gpio51";
392			function = "gsbi5";
393			drive-strength = <4>;
394			bias-disable;
395		};
396	};
397
398
399	sdcc3_cd_pin_a: sdcc3-cd-pin-active {
400		pins = "gpio26";
401		function = "gpio";
402
403		drive-strength = <2>;
404		bias-disable;
405	};
406};
407
408&usb_hs1_phy {
409	v3p3-supply = <&pm8921_l3>;
410	v1p8-supply = <&pm8921_l4>;
411};
412
413&usb1 {
414	dr_mode = "otg";
415	status = "okay";
416};
417