1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023, Linaro Limited
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10
11#include "sa8775p.dtsi"
12#include "sa8775p-pmics.dtsi"
13
14/ {
15	model = "Qualcomm SA8775P Ride";
16	compatible = "qcom,sa8775p-ride", "qcom,sa8775p";
17
18	aliases {
19		serial0 = &uart10;
20		serial1 = &uart12;
21		serial2 = &uart17;
22		i2c18 = &i2c18;
23		spi16 = &spi16;
24		ufshc1 = &ufs_mem_hc;
25	};
26
27	chosen {
28		stdout-path = "serial0:115200n8";
29	};
30};
31
32&apps_rsc {
33	regulators-0 {
34		compatible = "qcom,pmm8654au-rpmh-regulators";
35		qcom,pmic-id = "a";
36
37		vreg_s4a: smps4 {
38			regulator-name = "vreg_s4a";
39			regulator-min-microvolt = <1800000>;
40			regulator-max-microvolt = <1816000>;
41			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
42		};
43
44		vreg_s5a: smps5 {
45			regulator-name = "vreg_s5a";
46			regulator-min-microvolt = <1850000>;
47			regulator-max-microvolt = <1996000>;
48			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
49		};
50
51		vreg_s9a: smps9 {
52			regulator-name = "vreg_s9a";
53			regulator-min-microvolt = <535000>;
54			regulator-max-microvolt = <1120000>;
55			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
56		};
57
58		vreg_l4a: ldo4 {
59			regulator-name = "vreg_l4a";
60			regulator-min-microvolt = <788000>;
61			regulator-max-microvolt = <1050000>;
62			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
63			regulator-allow-set-load;
64			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
65						   RPMH_REGULATOR_MODE_HPM>;
66		};
67
68		vreg_l5a: ldo5 {
69			regulator-name = "vreg_l5a";
70			regulator-min-microvolt = <870000>;
71			regulator-max-microvolt = <950000>;
72			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
73			regulator-allow-set-load;
74			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
75						   RPMH_REGULATOR_MODE_HPM>;
76		};
77
78		vreg_l6a: ldo6 {
79			regulator-name = "vreg_l6a";
80			regulator-min-microvolt = <870000>;
81			regulator-max-microvolt = <970000>;
82			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
83			regulator-allow-set-load;
84			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
85						   RPMH_REGULATOR_MODE_HPM>;
86		};
87
88		vreg_l7a: ldo7 {
89			regulator-name = "vreg_l7a";
90			regulator-min-microvolt = <720000>;
91			regulator-max-microvolt = <950000>;
92			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
93			regulator-allow-set-load;
94			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
95						   RPMH_REGULATOR_MODE_HPM>;
96		};
97
98		vreg_l8a: ldo8 {
99			regulator-name = "vreg_l8a";
100			regulator-min-microvolt = <2504000>;
101			regulator-max-microvolt = <3300000>;
102			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
103			regulator-allow-set-load;
104			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
105						   RPMH_REGULATOR_MODE_HPM>;
106		};
107
108		vreg_l9a: ldo9 {
109			regulator-name = "vreg_l9a";
110			regulator-min-microvolt = <2970000>;
111			regulator-max-microvolt = <3544000>;
112			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
113			regulator-allow-set-load;
114			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
115						   RPMH_REGULATOR_MODE_HPM>;
116		};
117	};
118
119	regulators-1 {
120		compatible = "qcom,pmm8654au-rpmh-regulators";
121		qcom,pmic-id = "c";
122
123		vreg_l1c: ldo1 {
124			regulator-name = "vreg_l1c";
125			regulator-min-microvolt = <1140000>;
126			regulator-max-microvolt = <1260000>;
127			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
128			regulator-allow-set-load;
129			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
130						   RPMH_REGULATOR_MODE_HPM>;
131		};
132
133		vreg_l2c: ldo2 {
134			regulator-name = "vreg_l2c";
135			regulator-min-microvolt = <900000>;
136			regulator-max-microvolt = <1100000>;
137			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
138			regulator-allow-set-load;
139			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
140						   RPMH_REGULATOR_MODE_HPM>;
141		};
142
143		vreg_l3c: ldo3 {
144			regulator-name = "vreg_l3c";
145			regulator-min-microvolt = <1100000>;
146			regulator-max-microvolt = <1300000>;
147			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
148			regulator-allow-set-load;
149			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
150						   RPMH_REGULATOR_MODE_HPM>;
151		};
152
153		vreg_l4c: ldo4 {
154			regulator-name = "vreg_l4c";
155			regulator-min-microvolt = <1100000>;
156			regulator-max-microvolt = <1300000>;
157			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
158			/*
159			 * FIXME: This should have regulator-allow-set-load but
160			 * we're getting an over-current fault from the PMIC
161			 * when switching to LPM.
162			 */
163		};
164
165		vreg_l5c: ldo5 {
166			regulator-name = "vreg_l5c";
167			regulator-min-microvolt = <1100000>;
168			regulator-max-microvolt = <1300000>;
169			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
170			regulator-allow-set-load;
171			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
172						   RPMH_REGULATOR_MODE_HPM>;
173		};
174
175		vreg_l6c: ldo6 {
176			regulator-name = "vreg_l6c";
177			regulator-min-microvolt = <1620000>;
178			regulator-max-microvolt = <1980000>;
179			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
180			regulator-allow-set-load;
181			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
182						   RPMH_REGULATOR_MODE_HPM>;
183		};
184
185		vreg_l7c: ldo7 {
186			regulator-name = "vreg_l7c";
187			regulator-min-microvolt = <1620000>;
188			regulator-max-microvolt = <2000000>;
189			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
190			regulator-allow-set-load;
191			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
192						   RPMH_REGULATOR_MODE_HPM>;
193		};
194
195		vreg_l8c: ldo8 {
196			regulator-name = "vreg_l8c";
197			regulator-min-microvolt = <2400000>;
198			regulator-max-microvolt = <3300000>;
199			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
200			regulator-allow-set-load;
201			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
202						   RPMH_REGULATOR_MODE_HPM>;
203		};
204
205		vreg_l9c: ldo9 {
206			regulator-name = "vreg_l9c";
207			regulator-min-microvolt = <1650000>;
208			regulator-max-microvolt = <2700000>;
209			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
210			regulator-allow-set-load;
211			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
212						   RPMH_REGULATOR_MODE_HPM>;
213		};
214	};
215
216	regulators-2 {
217		compatible = "qcom,pmm8654au-rpmh-regulators";
218		qcom,pmic-id = "e";
219
220		vreg_s4e: smps4 {
221			regulator-name = "vreg_s4e";
222			regulator-min-microvolt = <970000>;
223			regulator-max-microvolt = <1520000>;
224			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
225		};
226
227		vreg_s7e: smps7 {
228			regulator-name = "vreg_s7e";
229			regulator-min-microvolt = <1010000>;
230			regulator-max-microvolt = <1170000>;
231			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
232		};
233
234		vreg_s9e: smps9 {
235			regulator-name = "vreg_s9e";
236			regulator-min-microvolt = <300000>;
237			regulator-max-microvolt = <570000>;
238			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
239		};
240
241		vreg_l6e: ldo6 {
242			regulator-name = "vreg_l6e";
243			regulator-min-microvolt = <1280000>;
244			regulator-max-microvolt = <1450000>;
245			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
246			regulator-allow-set-load;
247			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
248						   RPMH_REGULATOR_MODE_HPM>;
249		};
250
251		vreg_l8e: ldo8 {
252			regulator-name = "vreg_l8e";
253			regulator-min-microvolt = <1800000>;
254			regulator-max-microvolt = <1950000>;
255			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
256			regulator-allow-set-load;
257			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
258						   RPMH_REGULATOR_MODE_HPM>;
259		};
260	};
261};
262
263&i2c18 {
264	clock-frequency = <400000>;
265	pinctrl-0 = <&qup_i2c18_default>;
266	pinctrl-names = "default";
267	status = "okay";
268};
269
270&pmm8654au_0_gpios {
271	gpio-line-names = "DS_EN",
272			  "POFF_COMPLETE",
273			  "UFS0_VER_ID",
274			  "FAST_POFF",
275			  "DBU1_PON_DONE",
276			  "AOSS_SLEEP",
277			  "CAM_DES0_EN",
278			  "CAM_DES1_EN",
279			  "CAM_DES2_EN",
280			  "CAM_DES3_EN",
281			  "UEFI",
282			  "ANALOG_PON_OPT";
283};
284
285&pmm8654au_1_gpios {
286	gpio-line-names = "PMIC_C_ID0",
287			  "PMIC_C_ID1",
288			  "UFS1_VER_ID",
289			  "IPA_PWR",
290			  "",
291			  "WLAN_DBU4_EN",
292			  "WLAN_EN",
293			  "BT_EN",
294			  "USB2_PWR_EN",
295			  "USB2_FAULT";
296};
297
298&pmm8654au_2_gpios {
299	gpio-line-names = "PMIC_E_ID0",
300			  "PMIC_E_ID1",
301			  "USB0_PWR_EN",
302			  "USB0_FAULT",
303			  "SENSOR_IRQ_1",
304			  "SENSOR_IRQ_2",
305			  "SENSOR_RST",
306			  "SGMIIO0_RST",
307			  "SGMIIO1_RST",
308			  "USB1_PWR_ENABLE",
309			  "USB1_FAULT",
310			  "VMON_SPX8";
311};
312
313&pmm8654au_3_gpios {
314	gpio-line-names = "PMIC_G_ID0",
315			  "PMIC_G_ID1",
316			  "GNSS_RST",
317			  "GNSS_EN",
318			  "GNSS_BOOT_MODE";
319};
320
321&qupv3_id_1 {
322	status = "okay";
323};
324
325&qupv3_id_2 {
326	status = "okay";
327};
328
329&sleep_clk {
330	clock-frequency = <32764>;
331};
332
333&spi16 {
334	pinctrl-0 = <&qup_spi16_default>;
335	pinctrl-names = "default";
336	status = "okay";
337};
338
339&tlmm {
340	qup_uart10_default: qup-uart10-state {
341		pins = "gpio46", "gpio47";
342		function = "qup1_se3";
343	};
344
345	qup_spi16_default: qup-spi16-state {
346		pins = "gpio86", "gpio87", "gpio88", "gpio89";
347		function = "qup2_se2";
348		drive-strength = <6>;
349		bias-disable;
350	};
351
352	qup_i2c18_default: qup-i2c18-state {
353		pins = "gpio95", "gpio96";
354		function = "qup2_se4";
355		drive-strength = <2>;
356		bias-pull-up;
357	};
358
359	qup_uart12_default: qup-uart12-state {
360		qup_uart12_cts: qup-uart12-cts-pins {
361			pins = "gpio52";
362			function = "qup1_se5";
363			bias-disable;
364		};
365
366		qup_uart12_rts: qup-uart12-rts-pins {
367			pins = "gpio53";
368			function = "qup1_se5";
369			bias-pull-down;
370		};
371
372		qup_uart12_tx: qup-uart12-tx-pins {
373			pins = "gpio54";
374			function = "qup1_se5";
375			bias-pull-up;
376		};
377
378		qup_uart12_rx: qup-uart12-rx-pins {
379			pins = "gpio55";
380			function = "qup1_se5";
381			bias-pull-down;
382		};
383	};
384
385	qup_uart17_default: qup-uart17-state {
386		qup_uart17_cts: qup-uart17-cts-pins {
387			pins = "gpio91";
388			function = "qup2_se3";
389			bias-disable;
390		};
391
392		qup_uart17_rts: qup0-uart17-rts-pins {
393			pins = "gpio92";
394			function = "qup2_se3";
395			bias-pull-down;
396		};
397
398		qup_uart17_tx: qup0-uart17-tx-pins {
399			pins = "gpio93";
400			function = "qup2_se3";
401			bias-pull-up;
402		};
403
404		qup_uart17_rx: qup0-uart17-rx-pins {
405			pins = "gpio94";
406			function = "qup2_se3";
407			bias-pull-down;
408		};
409	};
410};
411
412&uart10 {
413	compatible = "qcom,geni-debug-uart";
414	pinctrl-0 = <&qup_uart10_default>;
415	pinctrl-names = "default";
416	status = "okay";
417};
418
419&uart12 {
420	pinctrl-0 = <&qup_uart12_default>;
421	pinctrl-names = "default";
422	status = "okay";
423};
424
425&uart17 {
426	pinctrl-0 = <&qup_uart17_default>;
427	pinctrl-names = "default";
428	status = "okay";
429};
430
431&ufs_mem_hc {
432	reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
433	vcc-supply = <&vreg_l8a>;
434	vcc-max-microamp = <1100000>;
435	vccq-supply = <&vreg_l4c>;
436	vccq-max-microamp = <1200000>;
437
438	status = "okay";
439};
440
441&ufs_mem_phy {
442	vdda-phy-supply = <&vreg_l4a>;
443	vdda-pll-supply = <&vreg_l1c>;
444
445	status = "okay";
446};
447
448&xo_board_clk {
449	clock-frequency = <38400000>;
450};
451