xref: /linux/arch/arm/boot/dts/qcom/qcom-msm8960-sony-huashan.dts (revision 30bbcb44707a97fcb62246bebc8b413b5ab293f8)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (c) 2025, Antony Kurniawan Soemardi <linux@smankusors.com>
4 */
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/input/input.h>
7#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
8#include <dt-bindings/reset/qcom,gcc-msm8960.h>
9
10#include "qcom-msm8960.dtsi"
11#include "pm8921.dtsi"
12
13/ {
14	model = "Sony Xperia SP";
15	compatible = "sony,huashan", "qcom,msm8960t", "qcom,msm8960";
16	chassis-type = "handset";
17
18	aliases {
19		serial0 = &gsbi8_serial;
20		mmc0 = &sdcc1; /* SDCC1 eMMC slot */
21		mmc1 = &sdcc3; /* SDCC3 SD card slot */
22	};
23
24	chosen {
25		stdout-path = "serial0:115200n8";
26	};
27
28	gpio-keys {
29		compatible = "gpio-keys";
30
31		key-volume-up {
32			label = "Volume Up";
33			gpios = <&pm8921_gpio 21 GPIO_ACTIVE_LOW>;
34			debounce-interval = <10>;
35			linux,code = <KEY_VOLUMEUP>;
36		};
37
38		key-volume-down {
39			label = "Volume Down";
40			gpios = <&pm8921_gpio 20 GPIO_ACTIVE_LOW>;
41			debounce-interval = <10>;
42			linux,code = <KEY_VOLUMEDOWN>;
43		};
44	};
45};
46
47&gsbi8 {
48	qcom,mode = <GSBI_PROT_I2C_UART>;
49	status = "okay";
50};
51
52&gsbi8_serial {
53	status = "okay";
54};
55
56&pm8921 {
57	interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>;
58};
59
60&pm8921_gpio {
61	keypad_default_state: keypad-default-state {
62		keypad-sense-pins {
63			pins = "gpio1", "gpio2", "gpio3", "gpio4", "gpio5";
64			function = PMIC_GPIO_FUNC_NORMAL;
65			bias-pull-up;
66			input-enable;
67			power-source = <PM8921_GPIO_S4>;
68			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
69			qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_31P5>;
70		};
71
72		keypad-drive-pins {
73			pins = "gpio9", "gpio10";
74			function = PMIC_GPIO_FUNC_FUNC1;
75			bias-disable;
76			drive-open-drain;
77			output-low;
78			power-source = <PM8921_GPIO_S4>;
79			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
80		};
81	};
82};
83
84&pm8921_keypad {
85	linux,keymap = <
86		MATRIX_KEY(1, 0, KEY_CAMERA_FOCUS)
87		MATRIX_KEY(1, 1, KEY_CAMERA)
88	>;
89	keypad,num-rows = <2>;
90	keypad,num-columns = <5>;
91
92	pinctrl-0 = <&keypad_default_state>;
93	pinctrl-names = "default";
94
95	status = "okay";
96};
97
98&rpm {
99	regulators {
100		compatible = "qcom,rpm-pm8921-regulators";
101		vin_lvs1_3_6-supply = <&pm8921_s4>;
102		vin_lvs2-supply = <&pm8921_s4>;
103		vin_lvs4_5_7-supply = <&pm8921_s4>;
104		vdd_ncp-supply = <&pm8921_l6>;
105		vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
106		vdd_l21_l23_l29-supply = <&pm8921_s8>;
107		vdd_l24-supply = <&pm8921_s1>;
108		vdd_l25-supply = <&pm8921_s1>;
109		vdd_l26-supply = <&pm8921_s7>;
110		vdd_l27-supply = <&pm8921_s7>;
111		vdd_l28-supply = <&pm8921_s7>;
112		vdd_l29-supply = <&pm8921_s8>;
113
114		/* Buck SMPS */
115		pm8921_s1: s1 {
116			regulator-always-on;
117			regulator-min-microvolt = <1225000>;
118			regulator-max-microvolt = <1225000>;
119			qcom,switch-mode-frequency = <3200000>;
120			bias-pull-down;
121		};
122
123		pm8921_s2: s2 {
124			regulator-min-microvolt = <1300000>;
125			regulator-max-microvolt = <1300000>;
126			qcom,switch-mode-frequency = <1600000>;
127			bias-pull-down;
128		};
129
130		pm8921_s3: s3 {
131			regulator-min-microvolt = <500000>;
132			regulator-max-microvolt = <1150000>;
133			qcom,switch-mode-frequency = <4800000>;
134			bias-pull-down;
135		};
136
137		pm8921_s4: s4 {
138			regulator-always-on;
139			regulator-min-microvolt = <1800000>;
140			regulator-max-microvolt = <1800000>;
141			qcom,switch-mode-frequency = <1600000>;
142			bias-pull-down;
143			qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
144		};
145
146		pm8921_s7: s7 {
147			regulator-min-microvolt = <1150000>;
148			regulator-max-microvolt = <1150000>;
149			qcom,switch-mode-frequency = <3200000>;
150			bias-pull-down;
151		};
152
153		pm8921_s8: s8 {
154			regulator-always-on;
155			regulator-min-microvolt = <2050000>;
156			regulator-max-microvolt = <2050000>;
157			qcom,switch-mode-frequency = <1600000>;
158			bias-pull-down;
159		};
160
161		/* PMOS LDO */
162		pm8921_l1: l1 {
163			regulator-always-on;
164			regulator-min-microvolt = <1050000>;
165			regulator-max-microvolt = <1050000>;
166			bias-pull-down;
167		};
168
169		pm8921_l2: l2 {
170			regulator-min-microvolt = <1200000>;
171			regulator-max-microvolt = <1200000>;
172			bias-pull-down;
173		};
174
175		pm8921_l3: l3 {
176			regulator-min-microvolt = <3075000>;
177			regulator-max-microvolt = <3075000>;
178			bias-pull-down;
179		};
180
181		pm8921_l4: l4 {
182			regulator-always-on;
183			regulator-min-microvolt = <1800000>;
184			regulator-max-microvolt = <1800000>;
185			bias-pull-down;
186		};
187
188		pm8921_l5: l5 {
189			regulator-min-microvolt = <2950000>;
190			regulator-max-microvolt = <2950000>;
191			bias-pull-down;
192		};
193
194		pm8921_l6: l6 {
195			regulator-min-microvolt = <2950000>;
196			regulator-max-microvolt = <2950000>;
197			bias-pull-down;
198		};
199
200		pm8921_l7: l7 {
201			regulator-always-on;
202			regulator-min-microvolt = <1850000>;
203			regulator-max-microvolt = <2950000>;
204			bias-pull-down;
205		};
206
207		pm8921_l8: l8 {
208			regulator-min-microvolt = <2800000>;
209			regulator-max-microvolt = <3000000>;
210			bias-pull-down;
211		};
212
213		pm8921_l9: l9 {
214			regulator-min-microvolt = <2850000>;
215			regulator-max-microvolt = <2850000>;
216			bias-pull-down;
217		};
218
219		pm8921_l10: l10 {
220			regulator-min-microvolt = <3000000>;
221			regulator-max-microvolt = <3000000>;
222			bias-pull-down;
223		};
224
225		pm8921_l11: l11 {
226			regulator-min-microvolt = <2600000>;
227			regulator-max-microvolt = <3000000>;
228			bias-pull-down;
229		};
230
231		pm8921_l12: l12 {
232			regulator-min-microvolt = <1050000>;
233			regulator-max-microvolt = <1200000>;
234			bias-pull-down;
235		};
236
237		pm8921_l14: l14 {
238			regulator-min-microvolt = <1800000>;
239			regulator-max-microvolt = <1800000>;
240			bias-pull-down;
241		};
242
243		pm8921_l15: l15 {
244			regulator-min-microvolt = <1800000>;
245			regulator-max-microvolt = <2950000>;
246			bias-pull-down;
247		};
248
249		pm8921_l16: l16 {
250			regulator-min-microvolt = <2600000>;
251			regulator-max-microvolt = <3000000>;
252			bias-pull-down;
253		};
254
255		pm8921_l17: l17 {
256			regulator-always-on;
257			regulator-min-microvolt = <1800000>;
258			regulator-max-microvolt = <3000000>;
259			bias-pull-down;
260		};
261
262		pm8921_l18: l18 {
263			regulator-min-microvolt = <1200000>;
264			regulator-max-microvolt = <1200000>;
265			bias-pull-down;
266		};
267
268		pm8921_l21: l21 {
269			regulator-min-microvolt = <1900000>;
270			regulator-max-microvolt = <1900000>;
271			bias-pull-down;
272		};
273
274		pm8921_l22: l22 {
275			regulator-min-microvolt = <2750000>;
276			regulator-max-microvolt = <2750000>;
277			bias-pull-down;
278		};
279
280		pm8921_l23: l23 {
281			regulator-always-on;
282			regulator-min-microvolt = <1800000>;
283			regulator-max-microvolt = <1800000>;
284			bias-pull-down;
285		};
286
287		pm8921_l24: l24 {
288			regulator-min-microvolt = <750000>;
289			regulator-max-microvolt = <1150000>;
290			bias-pull-down;
291		};
292
293		pm8921_l25: l25 {
294			regulator-always-on;
295			regulator-min-microvolt = <1225000>;
296			regulator-max-microvolt = <1225000>;
297			bias-pull-down;
298		};
299
300		/* Low Voltage Switch */
301		pm8921_lvs1: lvs1 {
302			bias-pull-down;
303		};
304
305		pm8921_lvs2: lvs2 {
306			bias-pull-down;
307		};
308
309		pm8921_lvs3: lvs3 {
310			bias-pull-down;
311		};
312
313		pm8921_lvs4: lvs4 {
314			bias-pull-down;
315		};
316
317		pm8921_lvs5: lvs5 {
318			bias-pull-down;
319		};
320
321		pm8921_lvs6: lvs6 {
322			bias-pull-down;
323		};
324
325		pm8921_lvs7: lvs7 {
326			bias-pull-down;
327		};
328
329		pm8921_ncp: ncp {
330			regulator-min-microvolt = <1800000>;
331			regulator-max-microvolt = <1800000>;
332			qcom,switch-mode-frequency = <1600000>;
333		};
334	};
335};
336
337&sdcc1 {
338	vmmc-supply = <&pm8921_l5>;
339	status = "okay";
340};
341
342&sdcc3 {
343	vmmc-supply = <&pm8921_l6>;
344	vqmmc-supply = <&pm8921_l7>;
345
346	pinctrl-0 = <&sdcc3_default_state>;
347	pinctrl-1 = <&sdcc3_sleep_state>;
348	pinctrl-names = "default", "sleep";
349
350	status = "okay";
351};
352
353&usb_hs1_phy {
354	v3p3-supply = <&pm8921_l3>;
355	v1p8-supply = <&pm8921_l4>;
356};
357
358&usb1 {
359	dr_mode = "otg";
360	status = "okay";
361};
362