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