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	/*
359	 * NOTE: "amd,imageon" makes Adreno start in headless mode, remove it
360	 * after display support is added on this board.
361	 */
362	compatible = "qcom,adreno-640.1", "qcom,adreno", "amd,imageon";
363	status = "okay";
364};
365
366&pon_pwrkey {
367	status = "okay";
368};
369
370&pon_resin {
371	status = "okay";
372
373	linux,code = <KEY_VOLUMEDOWN>;
374};
375
376&qupv3_id_1 {
377	status = "okay";
378};
379
380&remoteproc_adsp {
381	status = "okay";
382	firmware-name = "qcom/sm8150/adsp.mdt";
383};
384
385&remoteproc_cdsp {
386	status = "okay";
387	firmware-name = "qcom/sm8150/cdsp.mdt";
388};
389
390&remoteproc_mpss {
391	status = "okay";
392	firmware-name = "qcom/sm8150/modem.mdt";
393};
394
395&remoteproc_slpi {
396	status = "okay";
397	firmware-name = "qcom/sm8150/slpi.mdt";
398};
399
400&tlmm {
401	gpio-reserved-ranges = <0 4>, <126 4>;
402};
403
404&uart2 {
405	status = "okay";
406};
407
408&ufs_mem_hc {
409	status = "okay";
410
411	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
412
413	vcc-supply = <&vreg_l10a_2p5>;
414	vcc-max-microamp = <750000>;
415	vccq-supply = <&vreg_l9a_1p2>;
416	vccq-max-microamp = <700000>;
417	vccq2-supply = <&vreg_s4a_1p8>;
418	vccq2-max-microamp = <750000>;
419};
420
421&ufs_mem_phy {
422	status = "okay";
423
424	vdda-phy-supply = <&vdda_ufs_2ln_core_1>;
425	vdda-pll-supply = <&vreg_l3c_1p2>;
426};
427
428&usb_1_hsphy {
429	status = "okay";
430	vdda-pll-supply = <&vdd_usb_hs_core>;
431	vdda33-supply = <&vdda_usb_hs_3p1>;
432	vdda18-supply = <&vdda_usb_hs_1p8>;
433};
434
435&usb_1_qmpphy {
436	status = "okay";
437	vdda-phy-supply = <&vreg_l3c_1p2>;
438	vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
439};
440
441&usb_1 {
442	status = "okay";
443};
444
445&usb_1_dwc3 {
446	dr_mode = "peripheral";
447};
448
449&wifi {
450	status = "okay";
451
452	vdd-0.8-cx-mx-supply = <&vdda_wcss_pll>;
453	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
454	vdd-1.3-rfa-supply = <&vdda_wcss_adcdac_1>;
455	vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
456};
457