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