1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
4  * Copyright (c) 2019, Linaro Limited
5  */
6 
7 /dts-v1/;
8 
9 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10 #include <dt-bindings/gpio/gpio.h>
11 #include "sm8150.dtsi"
12 #include "pm8150.dtsi"
13 #include "pm8150b.dtsi"
14 #include "pm8150l.dtsi"
15 
16 / {
17 	model = "Qualcomm Technologies, Inc. SM8150 MTP";
18 	compatible = "qcom,sm8150-mtp", "qcom,sm8150";
19 	chassis-type = "handset";
20 
21 	aliases {
22 		serial0 = &uart2;
23 	};
24 
25 	chosen {
26 		stdout-path = "serial0:115200n8";
27 	};
28 
29 	vph_pwr: vph-pwr-regulator {
30 		compatible = "regulator-fixed";
31 		regulator-name = "vph_pwr";
32 		regulator-min-microvolt = <3700000>;
33 		regulator-max-microvolt = <3700000>;
34 	};
35 
36 	/*
37 	 * Apparently RPMh does not provide support for PM8150 S4 because it
38 	 * is always-on; model it as a fixed regulator.
39 	 */
40 	vreg_s4a_1p8: pm8150-s4 {
41 		compatible = "regulator-fixed";
42 		regulator-name = "vreg_s4a_1p8";
43 
44 		regulator-min-microvolt = <1800000>;
45 		regulator-max-microvolt = <1800000>;
46 
47 		regulator-always-on;
48 		regulator-boot-on;
49 
50 		vin-supply = <&vph_pwr>;
51 	};
52 };
53 
54 &apps_rsc {
55 	regulators-0 {
56 		compatible = "qcom,pm8150-rpmh-regulators";
57 		qcom,pmic-id = "a";
58 
59 		vdd-s1-supply = <&vph_pwr>;
60 		vdd-s2-supply = <&vph_pwr>;
61 		vdd-s3-supply = <&vph_pwr>;
62 		vdd-s4-supply = <&vph_pwr>;
63 		vdd-s5-supply = <&vph_pwr>;
64 		vdd-s6-supply = <&vph_pwr>;
65 		vdd-s7-supply = <&vph_pwr>;
66 		vdd-s8-supply = <&vph_pwr>;
67 		vdd-s9-supply = <&vph_pwr>;
68 		vdd-s10-supply = <&vph_pwr>;
69 
70 		vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
71 		vdd-l2-l10-supply = <&vreg_bob>;
72 		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
73 		vdd-l6-l9-supply = <&vreg_s8c_1p3>;
74 		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;
75 		vdd-l13-l16-l17-supply = <&vreg_bob>;
76 
77 		vreg_s5a_2p0: smps5 {
78 			regulator-min-microvolt = <1904000>;
79 			regulator-max-microvolt = <2000000>;
80 		};
81 
82 		vreg_s6a_0p9: smps6 {
83 			regulator-min-microvolt = <920000>;
84 			regulator-max-microvolt = <1128000>;
85 		};
86 
87 		vdda_wcss_pll:
88 		vreg_l1a_0p75: ldo1 {
89 			regulator-min-microvolt = <752000>;
90 			regulator-max-microvolt = <752000>;
91 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
92 		};
93 
94 		vdd_pdphy:
95 		vdda_usb_hs_3p1:
96 		vreg_l2a_3p1: ldo2 {
97 			regulator-min-microvolt = <3072000>;
98 			regulator-max-microvolt = <3072000>;
99 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
100 		};
101 
102 		vreg_l3a_0p8: ldo3 {
103 			regulator-min-microvolt = <480000>;
104 			regulator-max-microvolt = <932000>;
105 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
106 		};
107 
108 		vdd_usb_hs_core:
109 		vdda_csi_0_0p9:
110 		vdda_csi_1_0p9:
111 		vdda_csi_2_0p9:
112 		vdda_csi_3_0p9:
113 		vdda_dsi_0_0p9:
114 		vdda_dsi_1_0p9:
115 		vdda_dsi_0_pll_0p9:
116 		vdda_dsi_1_pll_0p9:
117 		vdda_pcie_1ln_core:
118 		vdda_pcie_2ln_core:
119 		vdda_pll_hv_cc_ebi01:
120 		vdda_pll_hv_cc_ebi23:
121 		vdda_qrefs_0p875_5:
122 		vdda_sp_sensor:
123 		vdda_ufs_2ln_core_1:
124 		vdda_ufs_2ln_core_2:
125 		vdda_usb_ss_dp_core_1:
126 		vdda_usb_ss_dp_core_2:
127 		vdda_qlink_lv:
128 		vdda_qlink_lv_ck:
129 		vreg_l5a_0p875: ldo5 {
130 			regulator-min-microvolt = <880000>;
131 			regulator-max-microvolt = <880000>;
132 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
133 		};
134 
135 		vreg_l6a_1p2: ldo6 {
136 			regulator-min-microvolt = <1200000>;
137 			regulator-max-microvolt = <1200000>;
138 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
139 		};
140 
141 		vreg_l7a_1p8: ldo7 {
142 			regulator-min-microvolt = <1800000>;
143 			regulator-max-microvolt = <1800000>;
144 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
145 		};
146 
147 		vddpx_10:
148 		vreg_l9a_1p2: ldo9 {
149 			regulator-min-microvolt = <1200000>;
150 			regulator-max-microvolt = <1200000>;
151 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
152 		};
153 
154 		vreg_l10a_2p5: ldo10 {
155 			regulator-min-microvolt = <2504000>;
156 			regulator-max-microvolt = <2960000>;
157 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
158 		};
159 
160 		vreg_l11a_0p8: ldo11 {
161 			regulator-min-microvolt = <800000>;
162 			regulator-max-microvolt = <800000>;
163 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
164 		};
165 
166 		vdd_qfprom:
167 		vdd_qfprom_sp:
168 		vdda_apc_cs_1p8:
169 		vdda_gfx_cs_1p8:
170 		vdda_usb_hs_1p8:
171 		vdda_qrefs_vref_1p8:
172 		vddpx_10_a:
173 		vreg_l12a_1p8: ldo12 {
174 			regulator-min-microvolt = <1800000>;
175 			regulator-max-microvolt = <1800000>;
176 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
177 		};
178 
179 		vreg_l13a_2p7: ldo13 {
180 			regulator-min-microvolt = <2704000>;
181 			regulator-max-microvolt = <2704000>;
182 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
183 		};
184 
185 		vreg_l14a_1p8: ldo14 {
186 			regulator-min-microvolt = <1800000>;
187 			regulator-max-microvolt = <1880000>;
188 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
189 		};
190 
191 		vreg_l15a_1p7: ldo15 {
192 			regulator-min-microvolt = <1704000>;
193 			regulator-max-microvolt = <1704000>;
194 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
195 		};
196 
197 		vreg_l16a_2p7: ldo16 {
198 			regulator-min-microvolt = <2704000>;
199 			regulator-max-microvolt = <2960000>;
200 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
201 		};
202 
203 		vreg_l17a_3p0: ldo17 {
204 			regulator-min-microvolt = <2856000>;
205 			regulator-max-microvolt = <3008000>;
206 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
207 		};
208 	};
209 
210 	regulators-1 {
211 		compatible = "qcom,pm8150l-rpmh-regulators";
212 		qcom,pmic-id = "c";
213 
214 		vdd-s1-supply = <&vph_pwr>;
215 		vdd-s2-supply = <&vph_pwr>;
216 		vdd-s3-supply = <&vph_pwr>;
217 		vdd-s4-supply = <&vph_pwr>;
218 		vdd-s5-supply = <&vph_pwr>;
219 		vdd-s6-supply = <&vph_pwr>;
220 		vdd-s7-supply = <&vph_pwr>;
221 		vdd-s8-supply = <&vph_pwr>;
222 
223 		vdd-l1-l8-supply = <&vreg_s4a_1p8>;
224 		vdd-l2-l3-supply = <&vreg_s8c_1p3>;
225 		vdd-l4-l5-l6-supply = <&vreg_bob>;
226 		vdd-l7-l11-supply = <&vreg_bob>;
227 		vdd-l9-l10-supply = <&vreg_bob>;
228 
229 		vdd-bob-supply = <&vph_pwr>;
230 		vdd-flash-supply = <&vreg_bob>;
231 		vdd-rgb-supply = <&vreg_bob>;
232 
233 		vreg_bob: bob {
234 			regulator-min-microvolt = <3008000>;
235 			regulator-max-microvolt = <4000000>;
236 			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
237 			regulator-allow-bypass;
238 		};
239 
240 		vreg_s8c_1p3: smps8 {
241 			regulator-min-microvolt = <1352000>;
242 			regulator-max-microvolt = <1352000>;
243 		};
244 
245 		vreg_l1c_1p8: ldo1 {
246 			regulator-min-microvolt = <1800000>;
247 			regulator-max-microvolt = <1800000>;
248 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
249 		};
250 
251 		vdda_wcss_adcdac_1:
252 		vdda_wcss_adcdac_22:
253 		vreg_l2c_1p3: ldo2 {
254 			regulator-min-microvolt = <1304000>;
255 			regulator-max-microvolt = <1304000>;
256 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
257 		};
258 
259 		vdda_hv_ebi0:
260 		vdda_hv_ebi1:
261 		vdda_hv_ebi2:
262 		vdda_hv_ebi3:
263 		vdda_hv_refgen0:
264 		vdda_qlink_hv_ck:
265 		vreg_l3c_1p2: ldo3 {
266 			regulator-min-microvolt = <1200000>;
267 			regulator-max-microvolt = <1200000>;
268 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
269 		};
270 
271 		vddpx_5:
272 		vreg_l4c_1p8: ldo4 {
273 			regulator-min-microvolt = <1704000>;
274 			regulator-max-microvolt = <2928000>;
275 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
276 		};
277 
278 		vddpx_6:
279 		vreg_l5c_1p8: ldo5 {
280 			regulator-min-microvolt = <1704000>;
281 			regulator-max-microvolt = <2928000>;
282 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
283 		};
284 
285 		vddpx_2:
286 		vreg_l6c_2p9: ldo6 {
287 			regulator-min-microvolt = <1800000>;
288 			regulator-max-microvolt = <2960000>;
289 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
290 		};
291 
292 		vreg_l7c_3p0: ldo7 {
293 			regulator-min-microvolt = <2856000>;
294 			regulator-max-microvolt = <3104000>;
295 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
296 		};
297 
298 		vreg_l8c_1p8: ldo8 {
299 			regulator-min-microvolt = <1800000>;
300 			regulator-max-microvolt = <1800000>;
301 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
302 		};
303 
304 		vreg_l9c_2p9: ldo9 {
305 			regulator-min-microvolt = <2704000>;
306 			regulator-max-microvolt = <2960000>;
307 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
308 		};
309 
310 		vreg_l10c_3p3: ldo10 {
311 			regulator-min-microvolt = <3000000>;
312 			regulator-max-microvolt = <3312000>;
313 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
314 		};
315 
316 		vreg_l11c_3p3: ldo11 {
317 			regulator-min-microvolt = <3000000>;
318 			regulator-max-microvolt = <3312000>;
319 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
320 		};
321 	};
322 
323 	regulators-2 {
324 		compatible = "qcom,pm8009-rpmh-regulators";
325 		qcom,pmic-id = "f";
326 
327 		vdd-s1-supply = <&vph_pwr>;
328 		vdd-s2-supply = <&vreg_bob>;
329 
330 		vdd-l2-supply = <&vreg_s8c_1p3>;
331 		vdd-l5-l6-supply = <&vreg_bob>;
332 
333 		vreg_l2f_1p2: ldo2 {
334 			regulator-min-microvolt = <1200000>;
335 			regulator-max-microvolt = <1200000>;
336 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
337 		};
338 
339 		vreg_l5f_2p85: ldo5 {
340 			regulator-min-microvolt = <2800000>;
341 			regulator-max-microvolt = <2800000>;
342 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
343 		};
344 
345 		vreg_l6f_2p85: ldo6 {
346 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
347 			regulator-min-microvolt = <2856000>;
348 			regulator-max-microvolt = <2856000>;
349 		};
350 	};
351 };
352 
353 &gmu {
354 	status = "okay";
355 };
356 
357 &gpu {
358 	status = "okay";
359 };
360 
361 &pon_pwrkey {
362 	status = "okay";
363 };
364 
365 &pon_resin {
366 	status = "okay";
367 
368 	linux,code = <KEY_VOLUMEDOWN>;
369 };
370 
371 &qupv3_id_1 {
372 	status = "okay";
373 };
374 
375 &remoteproc_adsp {
376 	status = "okay";
377 	firmware-name = "qcom/sm8150/adsp.mdt";
378 };
379 
380 &remoteproc_cdsp {
381 	status = "okay";
382 	firmware-name = "qcom/sm8150/cdsp.mdt";
383 };
384 
385 &remoteproc_mpss {
386 	status = "okay";
387 	firmware-name = "qcom/sm8150/modem.mdt";
388 };
389 
390 &remoteproc_slpi {
391 	status = "okay";
392 	firmware-name = "qcom/sm8150/slpi.mdt";
393 };
394 
395 &tlmm {
396 	gpio-reserved-ranges = <0 4>, <126 4>;
397 };
398 
399 &uart2 {
400 	status = "okay";
401 };
402 
403 &ufs_mem_hc {
404 	status = "okay";
405 
406 	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
407 
408 	vcc-supply = <&vreg_l10a_2p5>;
409 	vcc-max-microamp = <750000>;
410 	vccq-supply = <&vreg_l9a_1p2>;
411 	vccq-max-microamp = <700000>;
412 	vccq2-supply = <&vreg_s4a_1p8>;
413 	vccq2-max-microamp = <750000>;
414 };
415 
416 &ufs_mem_phy {
417 	status = "okay";
418 
419 	vdda-phy-supply = <&vdda_ufs_2ln_core_1>;
420 	vdda-pll-supply = <&vreg_l3c_1p2>;
421 };
422 
423 &usb_1_hsphy {
424 	status = "okay";
425 	vdda-pll-supply = <&vdd_usb_hs_core>;
426 	vdda33-supply = <&vdda_usb_hs_3p1>;
427 	vdda18-supply = <&vdda_usb_hs_1p8>;
428 };
429 
430 &usb_1_qmpphy {
431 	status = "okay";
432 	vdda-phy-supply = <&vreg_l3c_1p2>;
433 	vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
434 };
435 
436 &usb_1 {
437 	status = "okay";
438 };
439 
440 &usb_1_dwc3 {
441 	dr_mode = "peripheral";
442 };
443 
444 &wifi {
445 	status = "okay";
446 
447 	vdd-0.8-cx-mx-supply = <&vdda_wcss_pll>;
448 	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
449 	vdd-1.3-rfa-supply = <&vdda_wcss_adcdac_1>;
450 	vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
451 };
452