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&gmu {
469	status = "okay";
470};
471
472&gpu {
473	status = "okay";
474
475	zap-shader {
476		memory-region = <&gpu_mem>;
477		firmware-name = "qcom/sm8250/a650_zap.mbn";
478	};
479};
480
481&i2c1 {
482	status = "okay";
483	clock-frequency = <1000000>;
484
485	/* NQ NFC chip @28 */
486};
487
488&i2c13 {
489	status = "okay";
490
491	/* st,stmfts @ 49 */
492};
493
494&i2c15 {
495	status = "okay";
496
497	/* smb1390 @ 10 */
498	/* rtc6226 @ 64 */
499};
500
501&pm8150_adc {
502	xo-therm@4c {
503		reg = <ADC5_XO_THERM_100K_PU>;
504		qcom,ratiometric;
505		qcom,hw-settle-time = <200>;
506	};
507
508	skin-therm@4d {
509		reg = <ADC5_AMUX_THM1_100K_PU>;
510		qcom,ratiometric;
511		qcom,hw-settle-time = <200>;
512	};
513
514	pa-therm1@4e {
515		reg = <ADC5_AMUX_THM2_100K_PU>;
516		qcom,ratiometric;
517		qcom,hw-settle-time = <200>;
518	};
519};
520
521&pm8150_adc_tm {
522	status = "okay";
523
524	xo-therm@0 {
525		reg = <0>;
526		io-channels = <&pm8150_adc ADC5_XO_THERM_100K_PU>;
527		qcom,ratiometric;
528		qcom,hw-settle-time-us = <200>;
529	};
530
531	skin-therm@1 {
532		reg = <1>;
533		io-channels = <&pm8150_adc ADC5_AMUX_THM1_100K_PU>;
534		qcom,ratiometric;
535		qcom,hw-settle-time-us = <200>;
536	};
537
538	pa-therm1@2 {
539		reg = <2>;
540		io-channels = <&pm8150_adc ADC5_AMUX_THM2_100K_PU>;
541		qcom,ratiometric;
542		qcom,hw-settle-time-us = <200>;
543	};
544};
545
546&pm8150b_adc {
547	conn-therm@4f {
548		reg = <ADC5_AMUX_THM3_100K_PU>;
549		qcom,ratiometric;
550		qcom,hw-settle-time = <200>;
551	};
552};
553
554&pm8150b_adc_tm {
555	status = "okay";
556
557	conn-therm@0 {
558		reg = <0>;
559		io-channels = <&pm8150b_adc ADC5_AMUX_THM3_100K_PU>;
560		qcom,ratiometric;
561		qcom,hw-settle-time-us = <200>;
562	};
563};
564
565&pm8150l_adc_tm {
566	status = "okay";
567
568	camera-flash-therm@0 {
569		reg = <0>;
570		io-channels = <&pm8150l_adc ADC5_AMUX_THM1_100K_PU>;
571		qcom,ratiometric;
572		qcom,hw-settle-time-us = <200>;
573	};
574
575	skin-msm-therm@1 {
576		reg = <1>;
577		io-channels = <&pm8150l_adc ADC5_AMUX_THM2_100K_PU>;
578		qcom,ratiometric;
579		qcom,hw-settle-time-us = <200>;
580	};
581
582	pa-therm2@2 {
583		reg = <2>;
584		io-channels = <&pm8150l_adc ADC5_AMUX_THM3_100K_PU>;
585		qcom,ratiometric;
586		qcom,hw-settle-time-us = <200>;
587	};
588};
589
590&pm8150l_adc {
591	camera-flash-therm@4d {
592		reg = <ADC5_AMUX_THM1_100K_PU>;
593		qcom,ratiometric;
594		qcom,hw-settle-time = <200>;
595	};
596
597	skin-msm-therm@4e {
598		reg = <ADC5_AMUX_THM2_100K_PU>;
599		qcom,ratiometric;
600		qcom,hw-settle-time = <200>;
601	};
602
603	pa-therm2@4f {
604		reg = <ADC5_AMUX_THM3_100K_PU>;
605		qcom,ratiometric;
606		qcom,hw-settle-time = <200>;
607	};
608};
609
610&qupv3_id_0 {
611	status = "okay";
612};
613
614&qupv3_id_1 {
615	status = "okay";
616};
617
618&qupv3_id_2 {
619	status = "okay";
620};
621
622&slpi {
623	status = "okay";
624	firmware-name = "qcom/sm8250/slpi.mbn";
625};
626
627&tlmm {
628	gpio-reserved-ranges = <28 4>, <40 4>;
629};
630
631&uart12 {
632	status = "okay";
633};
634
635&ufs_mem_hc {
636	status = "okay";
637
638	vcc-supply = <&vreg_l17a_3p0>;
639	vcc-max-microamp = <750000>;
640	vccq-supply = <&vreg_l6a_1p2>;
641	vccq-max-microamp = <700000>;
642	vccq2-supply = <&vreg_s4a_1p8>;
643	vccq2-max-microamp = <750000>;
644};
645
646&ufs_mem_phy {
647	status = "okay";
648
649	vdda-phy-supply = <&vreg_l5a_0p875>;
650	vdda-pll-supply = <&vreg_l9a_1p2>;
651};
652
653&usb_1 {
654	status = "okay";
655};
656
657&usb_1_dwc3 {
658	dr_mode = "host";
659};
660
661&usb_1_hsphy {
662	status = "okay";
663
664	vdda-pll-supply = <&vreg_l5a_0p875>;
665	vdda18-supply = <&vreg_l12a_1p8>;
666	vdda33-supply = <&vreg_l2a_3p1>;
667};
668
669&usb_1_qmpphy {
670	status = "okay";
671
672	vdda-phy-supply = <&vreg_l9a_1p2>;
673	vdda-pll-supply = <&vreg_l18a_0p9>;
674};
675
676&usb_2 {
677	status = "okay";
678};
679
680&usb_2_dwc3 {
681	dr_mode = "host";
682};
683
684&usb_2_hsphy {
685	status = "okay";
686
687	vdda-pll-supply = <&vreg_l5a_0p875>;
688	vdda18-supply = <&vreg_l12a_1p8>;
689	vdda33-supply = <&vreg_l2a_3p1>;
690};
691
692&usb_2_qmpphy {
693	status = "okay";
694
695	vdda-phy-supply = <&vreg_l9a_1p2>;
696	vdda-pll-supply = <&vreg_l18a_0p9>;
697};
698
699&venus {
700	status = "okay";
701};
702