1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9#include "sm8250.dtsi"
10#include "pm8150.dtsi"
11#include "pm8150b.dtsi"
12#include "pm8150l.dtsi"
13#include "pm8009.dtsi"
14
15/ {
16	model = "Qualcomm Technologies, Inc. SM8250 MTP";
17	compatible = "qcom,sm8250-mtp", "qcom,sm8250";
18
19	aliases {
20		serial0 = &uart12;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	thermal-zones {
28		camera-thermal {
29			polling-delay-passive = <0>;
30			polling-delay = <0>;
31			thermal-sensors = <&pm8150l_adc_tm 0>;
32
33			trips {
34				active-config0 {
35					temperature = <125000>;
36					hysteresis = <1000>;
37					type = "passive";
38				};
39			};
40		};
41
42		conn-thermal {
43			polling-delay-passive = <0>;
44			polling-delay = <0>;
45			thermal-sensors = <&pm8150b_adc_tm 0>;
46
47			trips {
48				active-config0 {
49					temperature = <125000>;
50					hysteresis = <1000>;
51					type = "passive";
52				};
53			};
54		};
55
56		mmw-pa1-thermal {
57			polling-delay-passive = <0>;
58			polling-delay = <0>;
59			thermal-sensors = <&pm8150_adc_tm 2>;
60
61			trips {
62				active-config0 {
63					temperature = <125000>;
64					hysteresis = <1000>;
65					type = "passive";
66				};
67			};
68		};
69
70		mmw-pa2-thermal {
71			polling-delay-passive = <0>;
72			polling-delay = <0>;
73			thermal-sensors = <&pm8150l_adc_tm 2>;
74
75			trips {
76				active-config0 {
77					temperature = <125000>;
78					hysteresis = <1000>;
79					type = "passive";
80				};
81			};
82		};
83
84		skin-msm-thermal {
85			polling-delay-passive = <0>;
86			polling-delay = <0>;
87			thermal-sensors = <&pm8150l_adc_tm 1>;
88
89			trips {
90				active-config0 {
91					temperature = <125000>;
92					hysteresis = <1000>;
93					type = "passive";
94				};
95			};
96		};
97
98		skin-thermal {
99			polling-delay-passive = <0>;
100			polling-delay = <0>;
101			thermal-sensors = <&pm8150_adc_tm 1>;
102
103			trips {
104				active-config0 {
105					temperature = <125000>;
106					hysteresis = <1000>;
107					type = "passive";
108				};
109			};
110		};
111
112		xo-thermal {
113			polling-delay-passive = <0>;
114			polling-delay = <0>;
115			thermal-sensors = <&pm8150_adc_tm 0>;
116
117			trips {
118				active-config0 {
119					temperature = <125000>;
120					hysteresis = <1000>;
121					type = "passive";
122				};
123			};
124		};
125	};
126
127	vph_pwr: vph-pwr-regulator {
128		compatible = "regulator-fixed";
129		regulator-name = "vph_pwr";
130		regulator-min-microvolt = <3700000>;
131		regulator-max-microvolt = <3700000>;
132	};
133
134	vreg_s4a_1p8: pm8150-s4 {
135		compatible = "regulator-fixed";
136		regulator-name = "vreg_s4a_1p8";
137
138		regulator-min-microvolt = <1800000>;
139		regulator-max-microvolt = <1800000>;
140
141		regulator-always-on;
142		regulator-boot-on;
143
144		vin-supply = <&vph_pwr>;
145	};
146
147	vreg_s6c_0p88: smpc6-regulator {
148		compatible = "regulator-fixed";
149		regulator-name = "vreg_s6c_0p88";
150
151		regulator-min-microvolt = <880000>;
152		regulator-max-microvolt = <880000>;
153		regulator-always-on;
154		vin-supply = <&vph_pwr>;
155	};
156};
157
158&adsp {
159	status = "okay";
160	firmware-name = "qcom/sm8250/adsp.mbn";
161};
162
163&apps_rsc {
164	pm8150-rpmh-regulators {
165		compatible = "qcom,pm8150-rpmh-regulators";
166		qcom,pmic-id = "a";
167
168		vdd-s1-supply = <&vph_pwr>;
169		vdd-s2-supply = <&vph_pwr>;
170		vdd-s3-supply = <&vph_pwr>;
171		vdd-s4-supply = <&vph_pwr>;
172		vdd-s5-supply = <&vph_pwr>;
173		vdd-s6-supply = <&vph_pwr>;
174		vdd-s7-supply = <&vph_pwr>;
175		vdd-s8-supply = <&vph_pwr>;
176		vdd-s9-supply = <&vph_pwr>;
177		vdd-s10-supply = <&vph_pwr>;
178		vdd-l1-l8-l11-supply = <&vreg_s6c_0p88>;
179		vdd-l2-l10-supply = <&vreg_bob>;
180		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p95>;
181		vdd-l6-l9-supply = <&vreg_s8c_1p3>;
182		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
183		vdd-l13-l16-l17-supply = <&vreg_bob>;
184
185		vreg_s5a_1p9: smps5 {
186			regulator-name = "vreg_s5a_1p9";
187			regulator-min-microvolt = <1904000>;
188			regulator-max-microvolt = <2000000>;
189			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
190		};
191
192		vreg_s6a_0p95: smps6 {
193			regulator-name = "vreg_s6a_0p95";
194			regulator-min-microvolt = <920000>;
195			regulator-max-microvolt = <1128000>;
196			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
197		};
198
199		vreg_l2a_3p1: ldo2 {
200			regulator-name = "vreg_l2a_3p1";
201			regulator-min-microvolt = <3072000>;
202			regulator-max-microvolt = <3072000>;
203			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
204		};
205
206		vreg_l3a_0p9: ldo3 {
207			regulator-name = "vreg_l3a_0p9";
208			regulator-min-microvolt = <928000>;
209			regulator-max-microvolt = <932000>;
210			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
211		};
212
213		vreg_l5a_0p875: ldo5 {
214			regulator-name = "vreg_l5a_0p875";
215			regulator-min-microvolt = <880000>;
216			regulator-max-microvolt = <880000>;
217			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
218		};
219
220		vreg_l6a_1p2: ldo6 {
221			regulator-name = "vreg_l6a_1p2";
222			regulator-min-microvolt = <1200000>;
223			regulator-max-microvolt = <1200000>;
224			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
225		};
226
227		vreg_l7a_1p7: ldo7 {
228			regulator-name = "vreg_l7a_1p7";
229			regulator-min-microvolt = <1704000>;
230			regulator-max-microvolt = <1800000>;
231			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
232		};
233
234		vreg_l9a_1p2: ldo9 {
235			regulator-name = "vreg_l9a_1p2";
236			regulator-min-microvolt = <1200000>;
237			regulator-max-microvolt = <1200000>;
238			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
239		};
240
241		vreg_l10a_1p8: ldo10 {
242			regulator-name = "vreg_l10a_1p8";
243			regulator-min-microvolt = <1800000>;
244			regulator-max-microvolt = <1800000>;
245			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
246		};
247
248		vreg_l12a_1p8: ldo12 {
249			regulator-name = "vreg_l12a_1p8";
250			regulator-min-microvolt = <1800000>;
251			regulator-max-microvolt = <1800000>;
252			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
253		};
254
255		vreg_l13a_ts_3p0: ldo13 {
256			regulator-name = "vreg_l13a_ts_3p0";
257			regulator-min-microvolt = <3008000>;
258			regulator-max-microvolt = <3008000>;
259			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
260		};
261
262		vreg_l14a_1p8: ldo14 {
263			regulator-name = "vreg_l14a_1p8";
264			regulator-min-microvolt = <1800000>;
265			regulator-max-microvolt = <1880000>;
266			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
267		};
268
269		vreg_l15a_11ad_io_1p8: ldo15 {
270			regulator-name = "vreg_l15a_11ad_io_1p8";
271			regulator-min-microvolt = <1800000>;
272			regulator-max-microvolt = <1800000>;
273			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
274		};
275
276		vreg_l16a_2p7: ldo16 {
277			regulator-name = "vreg_l16a_2p7";
278			regulator-min-microvolt = <2704000>;
279			regulator-max-microvolt = <2960000>;
280			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
281		};
282
283		vreg_l17a_3p0: ldo17 {
284			regulator-name = "vreg_l17a_3p0";
285			regulator-min-microvolt = <2856000>;
286			regulator-max-microvolt = <3008000>;
287			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
288		};
289
290		vreg_l18a_0p9: ldo18 {
291			regulator-name = "vreg_l18a_0p9";
292			regulator-min-microvolt = <912000>;
293			regulator-max-microvolt = <912000>;
294			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
295		};
296	};
297
298	pm8150l-rpmh-regulators {
299		compatible = "qcom,pm8150l-rpmh-regulators";
300		qcom,pmic-id = "c";
301
302		vdd-s1-supply = <&vph_pwr>;
303		vdd-s2-supply = <&vph_pwr>;
304		vdd-s3-supply = <&vph_pwr>;
305		vdd-s4-supply = <&vph_pwr>;
306		vdd-s5-supply = <&vph_pwr>;
307		vdd-s6-supply = <&vph_pwr>;
308		vdd-s7-supply = <&vph_pwr>;
309		vdd-s8-supply = <&vph_pwr>;
310		vdd-l1-l8-supply = <&vreg_s4a_1p8>;
311		vdd-l2-l3-supply = <&vreg_s8c_1p3>;
312		vdd-l4-l5-l6-supply = <&vreg_bob>;
313		vdd-l7-l11-supply = <&vreg_bob>;
314		vdd-l9-l10-supply = <&vreg_bob>;
315		vdd-bob-supply = <&vph_pwr>;
316
317		vreg_bob: bob {
318			regulator-name = "vreg_bob";
319			regulator-min-microvolt = <3008000>;
320			regulator-max-microvolt = <4000000>;
321			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
322		};
323
324		vreg_s8c_1p3: smps8 {
325			regulator-name = "vreg_s8c_1p3";
326			regulator-min-microvolt = <1352000>;
327			regulator-max-microvolt = <1352000>;
328			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
329		};
330
331		vreg_l1c_1p8: ldo1 {
332			regulator-name = "vreg_l1c_1p8";
333			regulator-min-microvolt = <1800000>;
334			regulator-max-microvolt = <1800000>;
335			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
336		};
337
338		vreg_l2c_1p2: ldo2 {
339			regulator-name = "vreg_l2c_1p2";
340			regulator-min-microvolt = <1200000>;
341			regulator-max-microvolt = <1200000>;
342			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
343		};
344
345		vreg_l3c_0p92: ldo3 {
346			regulator-name = "vreg_l3c_0p92";
347			regulator-min-microvolt = <920000>;
348			regulator-max-microvolt = <920000>;
349			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
350		};
351
352		vreg_l4c_1p7: ldo4 {
353			regulator-name = "vreg_l4c_1p7";
354			regulator-min-microvolt = <1704000>;
355			regulator-max-microvolt = <2928000>;
356			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
357		};
358
359		vreg_l5c_1p8: ldo5 {
360			regulator-name = "vreg_l5c_1p8";
361			regulator-min-microvolt = <1800000>;
362			regulator-max-microvolt = <2928000>;
363			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
364		};
365
366		vreg_l6c_2p9: ldo6 {
367			regulator-name = "vreg_l6c_2p9";
368			regulator-min-microvolt = <1800000>;
369			regulator-max-microvolt = <2960000>;
370			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
371		};
372
373		vreg_l7c_cam_vcm0_2p85: ldo7 {
374			regulator-name = "vreg_l7c_cam_vcm0_2p85";
375			regulator-min-microvolt = <2856000>;
376			regulator-max-microvolt = <3104000>;
377			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
378		};
379
380		vreg_l8c_1p8: ldo8 {
381			regulator-name = "vreg_l8c_1p8";
382			regulator-min-microvolt = <1800000>;
383			regulator-max-microvolt = <1800000>;
384			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
385		};
386
387		vreg_l9c_2p9: ldo9 {
388			regulator-name = "vreg_l9c_2p9";
389			regulator-min-microvolt = <2704000>;
390			regulator-max-microvolt = <2960000>;
391			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
392		};
393
394		vreg_l10c_3p0: ldo10 {
395			regulator-name = "vreg_l10c_3p0";
396			regulator-min-microvolt = <3000000>;
397			regulator-max-microvolt = <3000000>;
398			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
399		};
400
401		vreg_l11c_3p3: ldo11 {
402			regulator-name = "vreg_l11c_3p3";
403			regulator-min-microvolt = <3000000>;
404			regulator-max-microvolt = <3312000>;
405			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
406		};
407	};
408
409	pm8009-rpmh-regulators {
410		compatible = "qcom,pm8009-rpmh-regulators";
411		qcom,pmic-id = "f";
412
413		vdd-s1-supply = <&vph_pwr>;
414		vdd-s2-supply = <&vreg_bob>;
415		vdd-l2-supply = <&vreg_s8c_1p3>;
416		vdd-l5-l6-supply = <&vreg_bob>;
417		vdd-l7-supply = <&vreg_s4a_1p8>;
418
419		vreg_l1f_cam_dvdd1_1p1: ldo1 {
420			regulator-name = "vreg_l1f_cam_dvdd1_1p1";
421			regulator-min-microvolt = <1104000>;
422			regulator-max-microvolt = <1104000>;
423			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
424		};
425
426		vreg_l2f_cam_dvdd0_1p2: ldo2 {
427			regulator-name = "vreg_l2f_cam_dvdd0_1p2";
428			regulator-min-microvolt = <1200000>;
429			regulator-max-microvolt = <1200000>;
430			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
431		};
432
433		vreg_l3f_cam_dvdd2_1p05: ldo3 {
434			regulator-name = "vreg_l3f_cam_dvdd2_1p05";
435			regulator-min-microvolt = <1056000>;
436			regulator-max-microvolt = <1056000>;
437			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
438		};
439
440		vreg_l5f_cam_avdd0_2p85: ldo5 {
441			regulator-name = "vreg_l5f_cam_avdd0_2p85";
442			regulator-min-microvolt = <2800000>;
443			regulator-max-microvolt = <2800000>;
444			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
445		};
446
447		vreg_l6f_cam_avdd1_2p85: ldo6 {
448			regulator-name = "vreg_l6f_cam_avdd1_2p85";
449			regulator-min-microvolt = <2856000>;
450			regulator-max-microvolt = <2856000>;
451			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
452		};
453
454		vreg_l7f_1p8: ldo7 {
455			regulator-name = "vreg_l7f_1p8";
456			regulator-min-microvolt = <1800000>;
457			regulator-max-microvolt = <1800000>;
458			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
459		};
460	};
461};
462
463&cdsp {
464	status = "okay";
465	firmware-name = "qcom/sm8250/cdsp.mbn";
466};
467
468&gpu {
469	zap-shader {
470		memory-region = <&gpu_mem>;
471		firmware-name = "qcom/sm8250/a650_zap.mbn";
472	};
473};
474
475&i2c1 {
476	status = "okay";
477	clock-frequency = <1000000>;
478
479	/* NQ NFC chip @28 */
480};
481
482&i2c13 {
483	status = "okay";
484
485	/* st,stmfts @ 49 */
486};
487
488&i2c15 {
489	status = "okay";
490
491	/* smb1390 @ 10 */
492	/* rtc6226 @ 64 */
493};
494
495&pm8150_adc {
496	xo-therm@4c {
497		reg = <ADC5_XO_THERM_100K_PU>;
498		qcom,ratiometric;
499		qcom,hw-settle-time = <200>;
500	};
501
502	skin-therm@4d {
503		reg = <ADC5_AMUX_THM1_100K_PU>;
504		qcom,ratiometric;
505		qcom,hw-settle-time = <200>;
506	};
507
508	pa-therm1@4e {
509		reg = <ADC5_AMUX_THM2_100K_PU>;
510		qcom,ratiometric;
511		qcom,hw-settle-time = <200>;
512	};
513};
514
515&pm8150_adc_tm {
516	status = "okay";
517
518	xo-therm@0 {
519		reg = <0>;
520		io-channels = <&pm8150_adc ADC5_XO_THERM_100K_PU>;
521		qcom,ratiometric;
522		qcom,hw-settle-time-us = <200>;
523	};
524
525	skin-therm@1 {
526		reg = <1>;
527		io-channels = <&pm8150_adc ADC5_AMUX_THM1_100K_PU>;
528		qcom,ratiometric;
529		qcom,hw-settle-time-us = <200>;
530	};
531
532	pa-therm1@2 {
533		reg = <2>;
534		io-channels = <&pm8150_adc ADC5_AMUX_THM2_100K_PU>;
535		qcom,ratiometric;
536		qcom,hw-settle-time-us = <200>;
537	};
538};
539
540&pm8150b_adc {
541	conn-therm@4f {
542		reg = <ADC5_AMUX_THM3_100K_PU>;
543		qcom,ratiometric;
544		qcom,hw-settle-time = <200>;
545	};
546};
547
548&pm8150b_adc_tm {
549	status = "okay";
550
551	conn-therm@0 {
552		reg = <0>;
553		io-channels = <&pm8150b_adc ADC5_AMUX_THM3_100K_PU>;
554		qcom,ratiometric;
555		qcom,hw-settle-time-us = <200>;
556	};
557};
558
559&pm8150l_adc_tm {
560	status = "okay";
561
562	camera-flash-therm@0 {
563		reg = <0>;
564		io-channels = <&pm8150l_adc ADC5_AMUX_THM1_100K_PU>;
565		qcom,ratiometric;
566		qcom,hw-settle-time-us = <200>;
567	};
568
569	skin-msm-therm@1 {
570		reg = <1>;
571		io-channels = <&pm8150l_adc ADC5_AMUX_THM2_100K_PU>;
572		qcom,ratiometric;
573		qcom,hw-settle-time-us = <200>;
574	};
575
576	pa-therm2@2 {
577		reg = <2>;
578		io-channels = <&pm8150l_adc ADC5_AMUX_THM3_100K_PU>;
579		qcom,ratiometric;
580		qcom,hw-settle-time-us = <200>;
581	};
582};
583
584&pm8150l_adc {
585	camera-flash-therm@4d {
586		reg = <ADC5_AMUX_THM1_100K_PU>;
587		qcom,ratiometric;
588		qcom,hw-settle-time = <200>;
589	};
590
591	skin-msm-therm@4e {
592		reg = <ADC5_AMUX_THM2_100K_PU>;
593		qcom,ratiometric;
594		qcom,hw-settle-time = <200>;
595	};
596
597	pa-therm2@4f {
598		reg = <ADC5_AMUX_THM3_100K_PU>;
599		qcom,ratiometric;
600		qcom,hw-settle-time = <200>;
601	};
602};
603
604&qupv3_id_0 {
605	status = "okay";
606};
607
608&qupv3_id_1 {
609	status = "okay";
610};
611
612&qupv3_id_2 {
613	status = "okay";
614};
615
616&slpi {
617	status = "okay";
618	firmware-name = "qcom/sm8250/slpi.mbn";
619};
620
621&tlmm {
622	gpio-reserved-ranges = <28 4>, <40 4>;
623};
624
625&uart12 {
626	status = "okay";
627};
628
629&ufs_mem_hc {
630	status = "okay";
631
632	vcc-supply = <&vreg_l17a_3p0>;
633	vcc-max-microamp = <750000>;
634	vccq-supply = <&vreg_l6a_1p2>;
635	vccq-max-microamp = <700000>;
636	vccq2-supply = <&vreg_s4a_1p8>;
637	vccq2-max-microamp = <750000>;
638};
639
640&ufs_mem_phy {
641	status = "okay";
642
643	vdda-phy-supply = <&vreg_l5a_0p875>;
644	vdda-max-microamp = <90200>;
645	vdda-pll-supply = <&vreg_l9a_1p2>;
646	vdda-pll-max-microamp = <19000>;
647};
648
649&usb_1 {
650	status = "okay";
651};
652
653&usb_1_dwc3 {
654	dr_mode = "host";
655};
656
657&usb_1_hsphy {
658	status = "okay";
659
660	vdda-pll-supply = <&vreg_l5a_0p875>;
661	vdda18-supply = <&vreg_l12a_1p8>;
662	vdda33-supply = <&vreg_l2a_3p1>;
663};
664
665&usb_1_qmpphy {
666	status = "okay";
667
668	vdda-phy-supply = <&vreg_l9a_1p2>;
669	vdda-pll-supply = <&vreg_l18a_0p9>;
670};
671
672&usb_2 {
673	status = "okay";
674};
675
676&usb_2_dwc3 {
677	dr_mode = "host";
678};
679
680&usb_2_hsphy {
681	status = "okay";
682
683	vdda-pll-supply = <&vreg_l5a_0p875>;
684	vdda18-supply = <&vreg_l12a_1p8>;
685	vdda33-supply = <&vreg_l2a_3p1>;
686};
687
688&usb_2_qmpphy {
689	status = "okay";
690
691	vdda-phy-supply = <&vreg_l9a_1p2>;
692	vdda-pll-supply = <&vreg_l18a_0p9>;
693};
694