xref: /linux/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4 */
5
6#include "x1e80100.dtsi"
7#include "x1e80100-pmics.dtsi"
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10
11/ {
12	reserved-memory {
13		linux,cma {
14			compatible = "shared-dma-pool";
15			size = <0x0 0x8000000>;
16			reusable;
17			linux,cma-default;
18		};
19	};
20};
21
22&apps_rsc {
23	/* PMC8380C_B */
24	regulators-0 {
25		compatible = "qcom,pm8550-rpmh-regulators";
26		qcom,pmic-id = "b";
27
28		vdd-bob1-supply = <&vph_pwr>;
29		vdd-bob2-supply = <&vph_pwr>;
30		vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
31		vdd-l2-l13-l14-supply = <&vreg_bob1>;
32		vdd-l5-l16-supply = <&vreg_bob1>;
33		vdd-l6-l7-supply = <&vreg_bob2>;
34		vdd-l8-l9-supply = <&vreg_bob1>;
35		vdd-l12-supply = <&vreg_s5j_1p2>;
36		vdd-l15-supply = <&vreg_s4c_1p8>;
37		vdd-l17-supply = <&vreg_bob2>;
38
39		vreg_bob1: bob1 {
40			regulator-name = "vreg_bob1";
41			regulator-min-microvolt = <3008000>;
42			regulator-max-microvolt = <3960000>;
43			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
44		};
45
46		vreg_bob2: bob2 {
47			regulator-name = "vreg_bob2";
48			regulator-min-microvolt = <2504000>;
49			regulator-max-microvolt = <3008000>;
50			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
51		};
52
53		vreg_l1b_1p8: ldo1 {
54			regulator-name = "vreg_l1b_1p8";
55			regulator-min-microvolt = <1800000>;
56			regulator-max-microvolt = <1800000>;
57			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
58		};
59
60		vreg_l2b_3p0: ldo2 {
61			regulator-name = "vreg_l2b_3p0";
62			regulator-min-microvolt = <3072000>;
63			regulator-max-microvolt = <3100000>;
64			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
65		};
66
67		vreg_l4b_1p8: ldo4 {
68			regulator-name = "vreg_l4b_1p8";
69			regulator-min-microvolt = <1800000>;
70			regulator-max-microvolt = <1800000>;
71			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
72		};
73
74		vreg_l5b_3p0: ldo5 {
75			regulator-name = "vreg_l5b_3p0";
76			regulator-min-microvolt = <3000000>;
77			regulator-max-microvolt = <3000000>;
78			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
79		};
80
81		vreg_l6b_1p8: ldo6 {
82			regulator-name = "vreg_l6b_1p8";
83			regulator-min-microvolt = <1800000>;
84			regulator-max-microvolt = <2960000>;
85			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
86		};
87
88		vreg_l7b_2p8: ldo7 {
89			regulator-name = "vreg_l7b_2p8";
90			regulator-min-microvolt = <2800000>;
91			regulator-max-microvolt = <2800000>;
92			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
93		};
94
95		vreg_l8b_3p0: ldo8 {
96			regulator-name = "vreg_l8b_3p0";
97			regulator-min-microvolt = <3072000>;
98			regulator-max-microvolt = <3072000>;
99			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
100		};
101
102		vreg_l9b_2p9: ldo9 {
103			regulator-name = "vreg_l9b_2p9";
104			regulator-min-microvolt = <2960000>;
105			regulator-max-microvolt = <2960000>;
106			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
107		};
108
109		vreg_l10b_1p8: ldo10 {
110			regulator-name = "vreg_l10b_1p8";
111			regulator-min-microvolt = <1800000>;
112			regulator-max-microvolt = <1800000>;
113			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
114		};
115
116		vreg_l12b_1p2: ldo12 {
117			regulator-name = "vreg_l12b_1p2";
118			regulator-min-microvolt = <1200000>;
119			regulator-max-microvolt = <1200000>;
120			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
121			regulator-always-on;
122		};
123
124		vreg_l13b_3p0: ldo13 {
125			regulator-name = "vreg_l13b_3p0";
126			regulator-min-microvolt = <3072000>;
127			regulator-max-microvolt = <3100000>;
128			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
129		};
130
131		vreg_l14b_3p0: ldo14 {
132			regulator-name = "vreg_l14b_3p0";
133			regulator-min-microvolt = <3072000>;
134			regulator-max-microvolt = <3072000>;
135			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
136		};
137
138		vreg_l15b_1p8: ldo15 {
139			regulator-name = "vreg_l15b_1p8";
140			regulator-min-microvolt = <1800000>;
141			regulator-max-microvolt = <1800000>;
142			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
143			regulator-always-on;
144		};
145
146		vreg_l16b_2p9: ldo16 {
147			regulator-name = "vreg_l16b_2p9";
148			regulator-min-microvolt = <2912000>;
149			regulator-max-microvolt = <2912000>;
150			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
151		};
152
153		vreg_l17b_2p5: ldo17 {
154			regulator-name = "vreg_l17b_2p5";
155			regulator-min-microvolt = <2504000>;
156			regulator-max-microvolt = <2504000>;
157			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
158		};
159	};
160
161	/* PMC8380VE_C */
162	regulators-1 {
163		compatible = "qcom,pm8550ve-rpmh-regulators";
164		qcom,pmic-id = "c";
165
166		vdd-l1-supply = <&vreg_s5j_1p2>;
167		vdd-l2-supply = <&vreg_s1f_0p7>;
168		vdd-l3-supply = <&vreg_s1f_0p7>;
169		vdd-s4-supply = <&vph_pwr>;
170
171		vreg_s4c_1p8: smps4 {
172			regulator-name = "vreg_s4c_1p8";
173			regulator-min-microvolt = <1856000>;
174			regulator-max-microvolt = <2000000>;
175			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
176		};
177
178		vreg_l1c_1p2: ldo1 {
179			regulator-name = "vreg_l1c_1p2";
180			regulator-min-microvolt = <1200000>;
181			regulator-max-microvolt = <1200000>;
182			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
183		};
184
185		vreg_l2c_0p8: ldo2 {
186			regulator-name = "vreg_l2c_0p8";
187			regulator-min-microvolt = <880000>;
188			regulator-max-microvolt = <920000>;
189			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
190		};
191
192		vreg_l3c_0p8: ldo3 {
193			regulator-name = "vreg_l3c_0p8";
194			regulator-min-microvolt = <880000>;
195			regulator-max-microvolt = <920000>;
196			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
197		};
198	};
199
200	/* PMC8380_D */
201	regulators-2 {
202		compatible = "qcom,pmc8380-rpmh-regulators";
203		qcom,pmic-id = "d";
204
205		vdd-l1-supply = <&vreg_s1f_0p7>;
206		vdd-l2-supply = <&vreg_s1f_0p7>;
207		vdd-l3-supply = <&vreg_s4c_1p8>;
208		vdd-s1-supply = <&vph_pwr>;
209
210		vreg_l1d_0p8: ldo1 {
211			regulator-name = "vreg_l1d_0p8";
212			regulator-min-microvolt = <880000>;
213			regulator-max-microvolt = <920000>;
214			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
215		};
216
217		vreg_l2d_0p9: ldo2 {
218			regulator-name = "vreg_l2d_0p9";
219			regulator-min-microvolt = <912000>;
220			regulator-max-microvolt = <920000>;
221			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
222		};
223
224		vreg_l3d_1p8: ldo3 {
225			regulator-name = "vreg_l3d_1p8";
226			regulator-min-microvolt = <1800000>;
227			regulator-max-microvolt = <1800000>;
228			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
229		};
230	};
231
232	/* PMC8380_E */
233	regulators-3 {
234		compatible = "qcom,pmc8380-rpmh-regulators";
235		qcom,pmic-id = "e";
236
237		vdd-l2-supply = <&vreg_s1f_0p7>;
238		vdd-l3-supply = <&vreg_s5j_1p2>;
239
240		vreg_l2e_0p8: ldo2 {
241			regulator-name = "vreg_l2e_0p8";
242			regulator-min-microvolt = <880000>;
243			regulator-max-microvolt = <920000>;
244			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
245		};
246
247		vreg_l3e_1p2: ldo3 {
248			regulator-name = "vreg_l3e_1p2";
249			regulator-min-microvolt = <1200000>;
250			regulator-max-microvolt = <1200000>;
251			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
252		};
253	};
254
255	/* PMC8380_F */
256	regulators-4 {
257		compatible = "qcom,pmc8380-rpmh-regulators";
258		qcom,pmic-id = "f";
259
260		vdd-l1-supply = <&vreg_s5j_1p2>;
261		vdd-l2-supply = <&vreg_s5j_1p2>;
262		vdd-l3-supply = <&vreg_s5j_1p2>;
263		vdd-s1-supply = <&vph_pwr>;
264
265		vreg_s1f_0p7: smps1 {
266			regulator-name = "vreg_s1f_0p7";
267			regulator-min-microvolt = <700000>;
268			regulator-max-microvolt = <1100000>;
269			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
270		};
271
272		vreg_l1f_1p0: ldo1 {
273			regulator-name = "vreg_l1f_1p0";
274			regulator-min-microvolt = <1024000>;
275			regulator-max-microvolt = <1024000>;
276			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
277		};
278
279		vreg_l2f_1p0: ldo2 {
280			regulator-name = "vreg_l2f_1p0";
281			regulator-min-microvolt = <1024000>;
282			regulator-max-microvolt = <1024000>;
283			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
284		};
285
286		vreg_l3f_1p0: ldo3 {
287			regulator-name = "vreg_l3f_1p0";
288			regulator-min-microvolt = <1024000>;
289			regulator-max-microvolt = <1024000>;
290			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
291		};
292	};
293
294	/* PMC8380VE_I */
295	regulators-6 {
296		compatible = "qcom,pm8550ve-rpmh-regulators";
297		qcom,pmic-id = "i";
298
299		vdd-l1-supply = <&vreg_s4c_1p8>;
300		vdd-l2-supply = <&vreg_s5j_1p2>;
301		vdd-l3-supply = <&vreg_s1f_0p7>;
302		vdd-s1-supply = <&vph_pwr>;
303		vdd-s2-supply = <&vph_pwr>;
304
305		vreg_s1i_0p9: smps1 {
306			regulator-name = "vreg_s1i_0p9";
307			regulator-min-microvolt = <900000>;
308			regulator-max-microvolt = <920000>;
309			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
310		};
311
312		vreg_s2i_1p0: smps2 {
313			regulator-name = "vreg_s2i_1p0";
314			regulator-min-microvolt = <1000000>;
315			regulator-max-microvolt = <1100000>;
316			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
317		};
318
319		vreg_l1i_1p8: ldo1 {
320			regulator-name = "vreg_l1i_1p8";
321			regulator-min-microvolt = <1800000>;
322			regulator-max-microvolt = <1800000>;
323			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
324		};
325
326		vreg_l2i_1p2: ldo2 {
327			regulator-name = "vreg_l2i_1p2";
328			regulator-min-microvolt = <1200000>;
329			regulator-max-microvolt = <1200000>;
330			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
331		};
332
333		vreg_l3i_0p8: ldo3 {
334			regulator-name = "vreg_l3i_0p8";
335			regulator-min-microvolt = <880000>;
336			regulator-max-microvolt = <920000>;
337			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
338		};
339	};
340
341	/* PMC8380VE_J */
342	regulators-7 {
343		compatible = "qcom,pm8550ve-rpmh-regulators";
344		qcom,pmic-id = "j";
345
346		vdd-l1-supply = <&vreg_s1f_0p7>;
347		vdd-l2-supply = <&vreg_s5j_1p2>;
348		vdd-l3-supply = <&vreg_s1f_0p7>;
349		vdd-s5-supply = <&vph_pwr>;
350
351		vreg_s5j_1p2: smps5 {
352			regulator-name = "vreg_s5j_1p2";
353			regulator-min-microvolt = <1256000>;
354			regulator-max-microvolt = <1304000>;
355			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
356		};
357
358		vreg_l1j_0p8: ldo1 {
359			regulator-name = "vreg_l1j_0p8";
360			regulator-min-microvolt = <880000>;
361			regulator-max-microvolt = <920000>;
362			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
363		};
364
365		vreg_l2j_1p2: ldo2 {
366			regulator-name = "vreg_l2j_1p2";
367			regulator-min-microvolt = <1256000>;
368			regulator-max-microvolt = <1256000>;
369			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
370		};
371
372		vreg_l3j_0p8: ldo3 {
373			regulator-name = "vreg_l3j_0p8";
374			regulator-min-microvolt = <880000>;
375			regulator-max-microvolt = <920000>;
376			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
377		};
378	};
379};
380
381&iris {
382	status = "okay";
383};
384
385&gpu {
386	status = "okay";
387};
388
389&gpu_zap_shader {
390	firmware-name = "qcom/x1e80100/gen70500_zap.mbn";
391};
392
393&pcie4 {
394	perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
395	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
396
397	pinctrl-0 = <&pcie4_default>;
398	pinctrl-names = "default";
399
400	status = "okay";
401};
402
403&pcie4_phy {
404	vdda-phy-supply = <&vreg_l3i_0p8>;
405	vdda-pll-supply = <&vreg_l3e_1p2>;
406
407	status = "okay";
408};
409
410&pcie6a {
411	perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
412	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
413
414	pinctrl-0 = <&pcie6a_default>;
415	pinctrl-names = "default";
416
417	status = "okay";
418};
419
420&pcie6a_phy {
421	vdda-phy-supply = <&vreg_l1d_0p8>;
422	vdda-pll-supply = <&vreg_l2j_1p2>;
423
424	status = "okay";
425};
426
427&qupv3_0 {
428	status = "okay";
429};
430
431&qupv3_1 {
432	status = "okay";
433};
434
435&qupv3_2 {
436	status = "okay";
437};
438
439&remoteproc_adsp {
440	firmware-name = "qcom/x1e80100/adsp.mbn",
441			"qcom/x1e80100/adsp_dtb.mbn";
442
443	status = "okay";
444};
445
446&remoteproc_cdsp {
447	firmware-name = "qcom/x1e80100/cdsp.mbn",
448			"qcom/x1e80100/cdsp_dtb.mbn";
449
450	status = "okay";
451};
452
453&tlmm {
454	gpio-reserved-ranges = <34 2>, /* TPM LP & INT */
455			       <44 4>; /* SPI (TPM) */
456
457	pcie4_default: pcie4-default-state {
458		clkreq-n-pins {
459			pins = "gpio147";
460			function = "pcie4_clk";
461			drive-strength = <2>;
462			bias-pull-up;
463		};
464
465		perst-n-pins {
466			pins = "gpio146";
467			function = "gpio";
468			drive-strength = <2>;
469			bias-disable;
470		};
471
472		wake-n-pins {
473			pins = "gpio148";
474			function = "gpio";
475			drive-strength = <2>;
476			bias-pull-up;
477		};
478	};
479
480	pcie6a_default: pcie6a-default-state {
481		clkreq-n-pins {
482			pins = "gpio153";
483			function = "pcie6a_clk";
484			drive-strength = <2>;
485			bias-pull-up;
486		};
487
488		perst-n-pins {
489			pins = "gpio152";
490			function = "gpio";
491			drive-strength = <2>;
492			bias-disable;
493		};
494
495		wake-n-pins {
496			pins = "gpio154";
497			function = "gpio";
498			drive-strength = <2>;
499			bias-pull-up;
500
501		};
502	};
503};
504
505&usb_1_ss0 {
506	status = "okay";
507};
508
509&usb_1_ss0_dwc3 {
510	dr_mode = "otg";
511	usb-role-switch;
512};
513
514&usb_1_ss0_hsphy {
515	vdd-supply = <&vreg_l3j_0p8>;
516	vdda12-supply = <&vreg_l2j_1p2>;
517
518	status = "okay";
519};
520
521&usb_1_ss0_qmpphy {
522	vdda-phy-supply = <&vreg_l2j_1p2>;
523	vdda-pll-supply = <&vreg_l1j_0p8>;
524
525	status = "okay";
526};
527
528&usb_1_ss1 {
529	status = "okay";
530};
531
532&usb_1_ss1_dwc3 {
533	dr_mode = "otg";
534	usb-role-switch;
535};
536
537&usb_1_ss1_hsphy {
538	vdd-supply = <&vreg_l3j_0p8>;
539	vdda12-supply = <&vreg_l2j_1p2>;
540
541	status = "okay";
542};
543
544&usb_1_ss1_qmpphy {
545	vdda-phy-supply = <&vreg_l2j_1p2>;
546	vdda-pll-supply = <&vreg_l2d_0p9>;
547
548	status = "okay";
549};
550
551&usb_1_ss2 {
552	status = "okay";
553};
554
555&usb_1_ss2_dwc3 {
556	dr_mode = "otg";
557	usb-role-switch;
558};
559
560&usb_1_ss2_hsphy {
561	vdd-supply = <&vreg_l3j_0p8>;
562	vdda12-supply = <&vreg_l2j_1p2>;
563
564	status = "okay";
565};
566
567&usb_1_ss2_qmpphy {
568	vdda-phy-supply = <&vreg_l2j_1p2>;
569	vdda-pll-supply = <&vreg_l2d_0p9>;
570
571	status = "okay";
572};
573
574&usb_2 {
575	status = "okay";
576};
577
578&usb_2_dwc3 {
579	dr_mode = "host";
580};
581
582&usb_2_hsphy {
583	vdd-supply = <&vreg_l2e_0p8>;
584	vdda12-supply = <&vreg_l3e_1p2>;
585
586	status = "okay";
587};
588
589&usb_mp {
590	status = "okay";
591};
592
593&usb_mp_hsphy0 {
594	vdd-supply = <&vreg_l2e_0p8>;
595	vdda12-supply = <&vreg_l3e_1p2>;
596
597	status = "okay";
598};
599
600&usb_mp_hsphy1 {
601	vdd-supply = <&vreg_l2e_0p8>;
602	vdda12-supply = <&vreg_l3e_1p2>;
603
604	status = "okay";
605};
606
607&usb_mp_qmpphy0 {
608	vdda-phy-supply = <&vreg_l3e_1p2>;
609	vdda-pll-supply = <&vreg_l3c_0p8>;
610
611	status = "okay";
612};
613
614&usb_mp_qmpphy1 {
615	vdda-phy-supply = <&vreg_l3e_1p2>;
616	vdda-pll-supply = <&vreg_l3c_0p8>;
617
618	status = "okay";
619};
620