xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/hamoa-iot-som.dtsi (revision 69ed3df4f588860308677cda76cbcce1f19a54c9)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4 */
5
6#include "hamoa.dtsi"
7#include "hamoa-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&pcie3 {
394	pinctrl-0 = <&pcie3_default>;
395	pinctrl-names = "default";
396
397	status = "okay";
398};
399
400&pcie3_phy {
401	vdda-phy-supply = <&vreg_l3c_0p8>;
402	vdda-pll-supply = <&vreg_l3e_1p2>;
403
404	status = "okay";
405};
406
407&pcie4 {
408	pinctrl-0 = <&pcie4_default>;
409	pinctrl-names = "default";
410
411	status = "okay";
412};
413
414&pcie4_phy {
415	vdda-phy-supply = <&vreg_l3i_0p8>;
416	vdda-pll-supply = <&vreg_l3e_1p2>;
417
418	status = "okay";
419};
420
421&pcie5 {
422	pinctrl-0 = <&pcie5_default>;
423	pinctrl-names = "default";
424
425	status = "okay";
426};
427
428&pcie5_phy {
429	vdda-phy-supply = <&vreg_l3i_0p8>;
430	vdda-pll-supply = <&vreg_l3e_1p2>;
431
432	status = "okay";
433};
434
435&pcie6a {
436	pinctrl-0 = <&pcie6a_default>;
437	pinctrl-names = "default";
438
439	status = "okay";
440};
441
442&pcie6a_phy {
443	vdda-phy-supply = <&vreg_l1d_0p8>;
444	vdda-pll-supply = <&vreg_l2j_1p2>;
445
446	status = "okay";
447};
448
449&qupv3_0 {
450	firmware-name = "qcom/x1e80100/qupv3fw.elf";
451
452	status = "okay";
453};
454
455&qupv3_1 {
456	firmware-name = "qcom/x1e80100/qupv3fw.elf";
457
458	status = "okay";
459};
460
461&qupv3_2 {
462	firmware-name = "qcom/x1e80100/qupv3fw.elf";
463
464	status = "okay";
465};
466
467&remoteproc_adsp {
468	firmware-name = "qcom/x1e80100/adsp.mbn",
469			"qcom/x1e80100/adsp_dtb.mbn";
470
471	status = "okay";
472};
473
474&remoteproc_cdsp {
475	firmware-name = "qcom/x1e80100/cdsp.mbn",
476			"qcom/x1e80100/cdsp_dtb.mbn";
477
478	status = "okay";
479};
480
481&tlmm {
482	gpio-reserved-ranges = <34 2>; /* TPM LP & INT */
483
484	pcie3_default: pcie3-default-state {
485		clkreq-n-pins {
486			pins = "gpio144";
487			function = "pcie3_clk";
488			drive-strength = <2>;
489			bias-pull-up;
490		};
491
492		perst-n-pins {
493			pins = "gpio143";
494			function = "gpio";
495			drive-strength = <2>;
496			bias-disable;
497		};
498
499		wake-n-pins {
500			pins = "gpio145";
501			function = "gpio";
502			drive-strength = <2>;
503			bias-pull-up;
504		};
505	};
506
507	pcie4_default: pcie4-default-state {
508		clkreq-n-pins {
509			pins = "gpio147";
510			function = "pcie4_clk";
511			drive-strength = <2>;
512			bias-pull-up;
513		};
514
515		perst-n-pins {
516			pins = "gpio146";
517			function = "gpio";
518			drive-strength = <2>;
519			bias-disable;
520		};
521
522		wake-n-pins {
523			pins = "gpio148";
524			function = "gpio";
525			drive-strength = <2>;
526			bias-pull-up;
527		};
528	};
529
530	pcie5_default: pcie5-default-state {
531		clkreq-n-pins {
532			pins = "gpio150";
533			function = "pcie5_clk";
534			drive-strength = <2>;
535			bias-pull-up;
536		};
537
538		perst-n-pins {
539			pins = "gpio149";
540			function = "gpio";
541			drive-strength = <2>;
542			bias-disable;
543		};
544
545		wake-n-pins {
546			pins = "gpio151";
547			function = "gpio";
548			drive-strength = <2>;
549			bias-pull-up;
550		};
551	};
552
553	pcie6a_default: pcie6a-default-state {
554		clkreq-n-pins {
555			pins = "gpio153";
556			function = "pcie6a_clk";
557			drive-strength = <2>;
558			bias-pull-up;
559		};
560
561		perst-n-pins {
562			pins = "gpio152";
563			function = "gpio";
564			drive-strength = <2>;
565			bias-disable;
566		};
567
568		wake-n-pins {
569			pins = "gpio154";
570			function = "gpio";
571			drive-strength = <2>;
572			bias-pull-up;
573
574		};
575	};
576};
577
578&usb_1_ss0 {
579	dr_mode = "otg";
580	usb-role-switch;
581
582	status = "okay";
583};
584
585&usb_1_ss0_hsphy {
586	vdd-supply = <&vreg_l3j_0p8>;
587	vdda12-supply = <&vreg_l2j_1p2>;
588
589	status = "okay";
590};
591
592&usb_1_ss0_qmpphy {
593	vdda-phy-supply = <&vreg_l2j_1p2>;
594	vdda-pll-supply = <&vreg_l1j_0p8>;
595
596	status = "okay";
597};
598
599&usb_1_ss1 {
600	dr_mode = "otg";
601	usb-role-switch;
602
603	status = "okay";
604};
605
606&usb_1_ss1_hsphy {
607	vdd-supply = <&vreg_l3j_0p8>;
608	vdda12-supply = <&vreg_l2j_1p2>;
609
610	status = "okay";
611};
612
613&usb_1_ss1_qmpphy {
614	vdda-phy-supply = <&vreg_l2j_1p2>;
615	vdda-pll-supply = <&vreg_l2d_0p9>;
616
617	status = "okay";
618};
619
620&usb_1_ss2 {
621	dr_mode = "otg";
622	usb-role-switch;
623
624	status = "okay";
625};
626
627&usb_1_ss2_hsphy {
628	vdd-supply = <&vreg_l3j_0p8>;
629	vdda12-supply = <&vreg_l2j_1p2>;
630
631	status = "okay";
632};
633
634&usb_1_ss2_qmpphy {
635	vdda-phy-supply = <&vreg_l2j_1p2>;
636	vdda-pll-supply = <&vreg_l2d_0p9>;
637
638	status = "okay";
639};
640
641&usb_2 {
642	dr_mode = "host";
643
644	status = "okay";
645};
646
647&usb_2_hsphy {
648	vdd-supply = <&vreg_l2e_0p8>;
649	vdda12-supply = <&vreg_l3e_1p2>;
650
651	status = "okay";
652};
653
654&usb_mp {
655	status = "okay";
656};
657
658&usb_mp_hsphy0 {
659	vdd-supply = <&vreg_l2e_0p8>;
660	vdda12-supply = <&vreg_l3e_1p2>;
661
662	status = "okay";
663};
664
665&usb_mp_hsphy1 {
666	vdd-supply = <&vreg_l2e_0p8>;
667	vdda12-supply = <&vreg_l3e_1p2>;
668
669	status = "okay";
670};
671
672&usb_mp_qmpphy0 {
673	vdda-phy-supply = <&vreg_l3e_1p2>;
674	vdda-pll-supply = <&vreg_l3c_0p8>;
675
676	status = "okay";
677};
678
679&usb_mp_qmpphy1 {
680	vdda-phy-supply = <&vreg_l3e_1p2>;
681	vdda-pll-supply = <&vreg_l3c_0p8>;
682
683	status = "okay";
684};
685