xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/monaco-monza-som.dtsi (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*5238f4e7SLoic Poulain// SPDX-License-Identifier: BSD-3-Clause
2*5238f4e7SLoic Poulain/*
3*5238f4e7SLoic Poulain * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4*5238f4e7SLoic Poulain */
5*5238f4e7SLoic Poulain
6*5238f4e7SLoic Poulain#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
7*5238f4e7SLoic Poulain
8*5238f4e7SLoic Poulain#include "monaco.dtsi"
9*5238f4e7SLoic Poulain#include "monaco-pmics.dtsi"
10*5238f4e7SLoic Poulain
11*5238f4e7SLoic Poulain/ {
12*5238f4e7SLoic Poulain	/* This comes from a PMIC handled within the SAIL domain */
13*5238f4e7SLoic Poulain	vreg_s2s: vreg-s2s {
14*5238f4e7SLoic Poulain		compatible = "regulator-fixed";
15*5238f4e7SLoic Poulain		regulator-name = "vreg_s2s";
16*5238f4e7SLoic Poulain
17*5238f4e7SLoic Poulain		regulator-min-microvolt = <1800000>;
18*5238f4e7SLoic Poulain		regulator-max-microvolt = <1800000>;
19*5238f4e7SLoic Poulain	};
20*5238f4e7SLoic Poulain};
21*5238f4e7SLoic Poulain
22*5238f4e7SLoic Poulain&apps_rsc {
23*5238f4e7SLoic Poulain	regulators-0 {
24*5238f4e7SLoic Poulain		compatible = "qcom,pmm8654au-rpmh-regulators";
25*5238f4e7SLoic Poulain		qcom,pmic-id = "a";
26*5238f4e7SLoic Poulain
27*5238f4e7SLoic Poulain		vreg_l3a: ldo3 {
28*5238f4e7SLoic Poulain			regulator-name = "vreg_l3a";
29*5238f4e7SLoic Poulain			regulator-min-microvolt = <1200000>;
30*5238f4e7SLoic Poulain			regulator-max-microvolt = <1200000>;
31*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
32*5238f4e7SLoic Poulain			regulator-allow-set-load;
33*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
34*5238f4e7SLoic Poulain			regulator-always-on;
35*5238f4e7SLoic Poulain		};
36*5238f4e7SLoic Poulain
37*5238f4e7SLoic Poulain		vreg_l4a: ldo4 {
38*5238f4e7SLoic Poulain			regulator-name = "vreg_l4a";
39*5238f4e7SLoic Poulain			regulator-min-microvolt = <880000>;
40*5238f4e7SLoic Poulain			regulator-max-microvolt = <912000>;
41*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
42*5238f4e7SLoic Poulain			regulator-allow-set-load;
43*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
44*5238f4e7SLoic Poulain		};
45*5238f4e7SLoic Poulain
46*5238f4e7SLoic Poulain		vreg_l5a: ldo5 {
47*5238f4e7SLoic Poulain			regulator-name = "vreg_l5a";
48*5238f4e7SLoic Poulain			regulator-min-microvolt = <1200000>;
49*5238f4e7SLoic Poulain			regulator-max-microvolt = <1200000>;
50*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
51*5238f4e7SLoic Poulain			regulator-allow-set-load;
52*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
53*5238f4e7SLoic Poulain		};
54*5238f4e7SLoic Poulain
55*5238f4e7SLoic Poulain		vreg_l6a: ldo6 {
56*5238f4e7SLoic Poulain			regulator-name = "vreg_l6a";
57*5238f4e7SLoic Poulain			regulator-min-microvolt = <880000>;
58*5238f4e7SLoic Poulain			regulator-max-microvolt = <912000>;
59*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
60*5238f4e7SLoic Poulain			regulator-allow-set-load;
61*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
62*5238f4e7SLoic Poulain		};
63*5238f4e7SLoic Poulain
64*5238f4e7SLoic Poulain		vreg_l7a: ldo7 {
65*5238f4e7SLoic Poulain			regulator-name = "vreg_l7a";
66*5238f4e7SLoic Poulain			regulator-min-microvolt = <880000>;
67*5238f4e7SLoic Poulain			regulator-max-microvolt = <912000>;
68*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
69*5238f4e7SLoic Poulain			regulator-allow-set-load;
70*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
71*5238f4e7SLoic Poulain		};
72*5238f4e7SLoic Poulain
73*5238f4e7SLoic Poulain		vreg_l8a: ldo8 {
74*5238f4e7SLoic Poulain			regulator-name = "vreg_l8a";
75*5238f4e7SLoic Poulain			regulator-min-microvolt = <2504000>;
76*5238f4e7SLoic Poulain			regulator-max-microvolt = <2960000>;
77*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
78*5238f4e7SLoic Poulain			regulator-allow-set-load;
79*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
80*5238f4e7SLoic Poulain		};
81*5238f4e7SLoic Poulain
82*5238f4e7SLoic Poulain		vreg_l9a: ldo9 {
83*5238f4e7SLoic Poulain			regulator-name = "vreg_l9a";
84*5238f4e7SLoic Poulain			regulator-min-microvolt = <2970000>;
85*5238f4e7SLoic Poulain			regulator-max-microvolt = <3072000>;
86*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
87*5238f4e7SLoic Poulain			regulator-allow-set-load;
88*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
89*5238f4e7SLoic Poulain		};
90*5238f4e7SLoic Poulain	};
91*5238f4e7SLoic Poulain
92*5238f4e7SLoic Poulain	regulators-1 {
93*5238f4e7SLoic Poulain		compatible = "qcom,pmm8654au-rpmh-regulators";
94*5238f4e7SLoic Poulain		qcom,pmic-id = "c";
95*5238f4e7SLoic Poulain
96*5238f4e7SLoic Poulain		vreg_s5c: smps5 { /* LPDDR VDD2H */
97*5238f4e7SLoic Poulain			regulator-name = "vreg_s5c";
98*5238f4e7SLoic Poulain			regulator-min-microvolt = <1104000>;
99*5238f4e7SLoic Poulain			regulator-max-microvolt = <1104000>;
100*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
101*5238f4e7SLoic Poulain		};
102*5238f4e7SLoic Poulain
103*5238f4e7SLoic Poulain		vreg_l1c: ldo1 { /* LPDDR VDDQ */
104*5238f4e7SLoic Poulain			regulator-name = "vreg_l1c";
105*5238f4e7SLoic Poulain			regulator-min-microvolt = <300000>;
106*5238f4e7SLoic Poulain			regulator-max-microvolt = <512000>;
107*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
108*5238f4e7SLoic Poulain			regulator-allow-set-load;
109*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
110*5238f4e7SLoic Poulain		};
111*5238f4e7SLoic Poulain
112*5238f4e7SLoic Poulain		vreg_l2c: ldo2 { /* LPDDR VDD2L */
113*5238f4e7SLoic Poulain			regulator-name = "vreg_l2c";
114*5238f4e7SLoic Poulain			regulator-min-microvolt = <900000>;
115*5238f4e7SLoic Poulain			regulator-max-microvolt = <904000>;
116*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
117*5238f4e7SLoic Poulain			regulator-allow-set-load;
118*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
119*5238f4e7SLoic Poulain		};
120*5238f4e7SLoic Poulain
121*5238f4e7SLoic Poulain		vreg_l4c: ldo4 {
122*5238f4e7SLoic Poulain			regulator-name = "vreg_l4c";
123*5238f4e7SLoic Poulain			regulator-min-microvolt = <1200000>;
124*5238f4e7SLoic Poulain			regulator-max-microvolt = <1200000>;
125*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
126*5238f4e7SLoic Poulain			regulator-allow-set-load;
127*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
128*5238f4e7SLoic Poulain		};
129*5238f4e7SLoic Poulain
130*5238f4e7SLoic Poulain		vreg_l7c: ldo7 {
131*5238f4e7SLoic Poulain			regulator-name = "vreg_l7c";
132*5238f4e7SLoic Poulain			regulator-min-microvolt = <1800000>;
133*5238f4e7SLoic Poulain			regulator-max-microvolt = <1800000>;
134*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
135*5238f4e7SLoic Poulain			regulator-allow-set-load;
136*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
137*5238f4e7SLoic Poulain		};
138*5238f4e7SLoic Poulain
139*5238f4e7SLoic Poulain		vreg_l8c: ldo8 { /* LPDDR VDD1 */
140*5238f4e7SLoic Poulain			regulator-name = "vreg_l8c";
141*5238f4e7SLoic Poulain			regulator-min-microvolt = <1800000>;
142*5238f4e7SLoic Poulain			regulator-max-microvolt = <1800000>;
143*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
144*5238f4e7SLoic Poulain			regulator-allow-set-load;
145*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
146*5238f4e7SLoic Poulain		};
147*5238f4e7SLoic Poulain
148*5238f4e7SLoic Poulain		vreg_l9c: ldo9 { /* QFPROM */
149*5238f4e7SLoic Poulain			regulator-name = "vreg_l9c";
150*5238f4e7SLoic Poulain			regulator-min-microvolt = <1800000>;
151*5238f4e7SLoic Poulain			regulator-max-microvolt = <1800000>;
152*5238f4e7SLoic Poulain			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
153*5238f4e7SLoic Poulain			regulator-allow-set-load;
154*5238f4e7SLoic Poulain			regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
155*5238f4e7SLoic Poulain		};
156*5238f4e7SLoic Poulain	};
157*5238f4e7SLoic Poulain};
158*5238f4e7SLoic Poulain
159*5238f4e7SLoic Poulain&mdss_dp0 {
160*5238f4e7SLoic Poulain	pinctrl-0 = <&dp_hpd>;
161*5238f4e7SLoic Poulain	pinctrl-names = "default";
162*5238f4e7SLoic Poulain};
163*5238f4e7SLoic Poulain
164*5238f4e7SLoic Poulain&mdss_dp0_phy {
165*5238f4e7SLoic Poulain	vdda-phy-supply = <&vreg_l5a>;
166*5238f4e7SLoic Poulain	vdda-pll-supply = <&vreg_l4a>;
167*5238f4e7SLoic Poulain};
168*5238f4e7SLoic Poulain
169*5238f4e7SLoic Poulain&mdss_dsi0 {
170*5238f4e7SLoic Poulain	vdda-supply = <&vreg_l5a>;
171*5238f4e7SLoic Poulain};
172*5238f4e7SLoic Poulain
173*5238f4e7SLoic Poulain&mdss_dsi0_phy {
174*5238f4e7SLoic Poulain	vdds-supply = <&vreg_l4a>;
175*5238f4e7SLoic Poulain};
176*5238f4e7SLoic Poulain
177*5238f4e7SLoic Poulain&gpi_dma0 {
178*5238f4e7SLoic Poulain	status = "okay";
179*5238f4e7SLoic Poulain};
180*5238f4e7SLoic Poulain
181*5238f4e7SLoic Poulain&gpi_dma1 {
182*5238f4e7SLoic Poulain	status = "okay";
183*5238f4e7SLoic Poulain};
184*5238f4e7SLoic Poulain
185*5238f4e7SLoic Poulain&gpu {
186*5238f4e7SLoic Poulain	status = "okay";
187*5238f4e7SLoic Poulain};
188*5238f4e7SLoic Poulain
189*5238f4e7SLoic Poulain&gpu_zap_shader {
190*5238f4e7SLoic Poulain	firmware-name = "qcom/qcs8300/a623_zap.mbn";
191*5238f4e7SLoic Poulain};
192*5238f4e7SLoic Poulain
193*5238f4e7SLoic Poulain&iris {
194*5238f4e7SLoic Poulain	status = "okay";
195*5238f4e7SLoic Poulain};
196*5238f4e7SLoic Poulain
197*5238f4e7SLoic Poulain/* PCIe0 Gen4 x2 */
198*5238f4e7SLoic Poulain&pcie0 {
199*5238f4e7SLoic Poulain	iommu-map = <0x0 &pcie_smmu 0x0000 0x1>,
200*5238f4e7SLoic Poulain		    <0x100 &pcie_smmu 0x0001 0x1>,
201*5238f4e7SLoic Poulain		    <0x200 &pcie_smmu 0x0007 0x1>,
202*5238f4e7SLoic Poulain		    <0x208 &pcie_smmu 0x0002 0x1>,
203*5238f4e7SLoic Poulain		    <0x210 &pcie_smmu 0x0003 0x1>,
204*5238f4e7SLoic Poulain		    <0x218 &pcie_smmu 0x0004 0x1>,
205*5238f4e7SLoic Poulain		    <0x300 &pcie_smmu 0x0005 0x1>,
206*5238f4e7SLoic Poulain		    <0x400 &pcie_smmu 0x0006 0x1>;
207*5238f4e7SLoic Poulain
208*5238f4e7SLoic Poulain	status = "okay";
209*5238f4e7SLoic Poulain};
210*5238f4e7SLoic Poulain
211*5238f4e7SLoic Poulain&pcie0_phy {
212*5238f4e7SLoic Poulain	vdda-phy-supply = <&vreg_l6a>;
213*5238f4e7SLoic Poulain	vdda-pll-supply = <&vreg_l5a>;
214*5238f4e7SLoic Poulain
215*5238f4e7SLoic Poulain	status = "okay";
216*5238f4e7SLoic Poulain};
217*5238f4e7SLoic Poulain
218*5238f4e7SLoic Poulain/* PCIe1 Gen4 x4 */
219*5238f4e7SLoic Poulain&pcie1 {
220*5238f4e7SLoic Poulain	status = "okay";
221*5238f4e7SLoic Poulain};
222*5238f4e7SLoic Poulain
223*5238f4e7SLoic Poulain&pcie1_phy {
224*5238f4e7SLoic Poulain	vdda-phy-supply = <&vreg_l6a>;
225*5238f4e7SLoic Poulain	vdda-pll-supply = <&vreg_l5a>;
226*5238f4e7SLoic Poulain
227*5238f4e7SLoic Poulain	status = "okay";
228*5238f4e7SLoic Poulain};
229*5238f4e7SLoic Poulain
230*5238f4e7SLoic Poulain&qupv3_id_0 {
231*5238f4e7SLoic Poulain	firmware-name = "qcom/qcs8300/qupv3fw.elf";
232*5238f4e7SLoic Poulain
233*5238f4e7SLoic Poulain	status = "okay";
234*5238f4e7SLoic Poulain};
235*5238f4e7SLoic Poulain
236*5238f4e7SLoic Poulain&qupv3_id_1 {
237*5238f4e7SLoic Poulain	firmware-name = "qcom/qcs8300/qupv3fw.elf";
238*5238f4e7SLoic Poulain	status = "okay";
239*5238f4e7SLoic Poulain};
240*5238f4e7SLoic Poulain
241*5238f4e7SLoic Poulain/* There is a HW/FW issue preventing proper REFGEN hardware voting
242*5238f4e7SLoic Poulain * for the USB2 HS PHY. As a workaround, we force REFGEN to stay
243*5238f4e7SLoic Poulain * always‑on in software, matching initial bootloader config.
244*5238f4e7SLoic Poulain */
245*5238f4e7SLoic Poulain&refgen {
246*5238f4e7SLoic Poulain	regulator-always-on;
247*5238f4e7SLoic Poulain};
248*5238f4e7SLoic Poulain
249*5238f4e7SLoic Poulain&remoteproc_adsp {
250*5238f4e7SLoic Poulain	firmware-name = "qcom/qcs8300/adsp.mbn";
251*5238f4e7SLoic Poulain
252*5238f4e7SLoic Poulain	status = "okay";
253*5238f4e7SLoic Poulain};
254*5238f4e7SLoic Poulain
255*5238f4e7SLoic Poulain&remoteproc_cdsp {
256*5238f4e7SLoic Poulain	firmware-name = "qcom/qcs8300/cdsp0.mbn";
257*5238f4e7SLoic Poulain
258*5238f4e7SLoic Poulain	status = "okay";
259*5238f4e7SLoic Poulain};
260*5238f4e7SLoic Poulain
261*5238f4e7SLoic Poulain&remoteproc_gpdsp {
262*5238f4e7SLoic Poulain	firmware-name = "qcom/qcs8300/gpdsp0.mbn";
263*5238f4e7SLoic Poulain
264*5238f4e7SLoic Poulain	status = "okay";
265*5238f4e7SLoic Poulain};
266*5238f4e7SLoic Poulain
267*5238f4e7SLoic Poulain/* OnSom eMMC */
268*5238f4e7SLoic Poulain&sdhc_1 {
269*5238f4e7SLoic Poulain	vmmc-supply = <&vreg_l8a>;
270*5238f4e7SLoic Poulain	vqmmc-supply = <&vreg_s2s>;
271*5238f4e7SLoic Poulain
272*5238f4e7SLoic Poulain	bus-width = <8>;
273*5238f4e7SLoic Poulain	mmc-ddr-1_8v;
274*5238f4e7SLoic Poulain	mmc-hs200-1_8v;
275*5238f4e7SLoic Poulain	mmc-hs400-1_8v;
276*5238f4e7SLoic Poulain	mmc-hs400-enhanced-strobe;
277*5238f4e7SLoic Poulain
278*5238f4e7SLoic Poulain	no-sd;
279*5238f4e7SLoic Poulain	no-sdio;
280*5238f4e7SLoic Poulain	non-removable;
281*5238f4e7SLoic Poulain
282*5238f4e7SLoic Poulain	status = "okay";
283*5238f4e7SLoic Poulain};
284*5238f4e7SLoic Poulain
285*5238f4e7SLoic Poulain/* Ethernet/SGMII */
286*5238f4e7SLoic Poulain&serdes0 {
287*5238f4e7SLoic Poulain	phy-supply = <&vreg_l5a>;
288*5238f4e7SLoic Poulain
289*5238f4e7SLoic Poulain	status = "okay";
290*5238f4e7SLoic Poulain};
291*5238f4e7SLoic Poulain
292*5238f4e7SLoic Poulain&tlmm {
293*5238f4e7SLoic Poulain	dp_hpd: dp-hpd-state {
294*5238f4e7SLoic Poulain		pins = "gpio94";
295*5238f4e7SLoic Poulain		function = "edp0_hot";
296*5238f4e7SLoic Poulain		bias-disable;
297*5238f4e7SLoic Poulain	};
298*5238f4e7SLoic Poulain};
299*5238f4e7SLoic Poulain
300*5238f4e7SLoic Poulain/* USB0 HS + SS */
301*5238f4e7SLoic Poulain&usb_1_hsphy {
302*5238f4e7SLoic Poulain	vdda-pll-supply = <&vreg_l7a>;
303*5238f4e7SLoic Poulain	vdda18-supply = <&vreg_l7c>;
304*5238f4e7SLoic Poulain	vdda33-supply = <&vreg_l9a>;
305*5238f4e7SLoic Poulain
306*5238f4e7SLoic Poulain	status = "okay";
307*5238f4e7SLoic Poulain};
308*5238f4e7SLoic Poulain
309*5238f4e7SLoic Poulain&usb_qmpphy {
310*5238f4e7SLoic Poulain	vdda-phy-supply = <&vreg_l7a>;
311*5238f4e7SLoic Poulain	vdda-pll-supply = <&vreg_l5a>;
312*5238f4e7SLoic Poulain
313*5238f4e7SLoic Poulain	status = "okay";
314*5238f4e7SLoic Poulain};
315*5238f4e7SLoic Poulain
316*5238f4e7SLoic Poulain/* USB1 HS */
317*5238f4e7SLoic Poulain&usb_2_hsphy {
318*5238f4e7SLoic Poulain	vdda-pll-supply = <&vreg_l7a>;
319*5238f4e7SLoic Poulain	vdda18-supply = <&vreg_l7c>;
320*5238f4e7SLoic Poulain	vdda33-supply = <&vreg_l9a>;
321*5238f4e7SLoic Poulain
322*5238f4e7SLoic Poulain	status = "okay";
323*5238f4e7SLoic Poulain};
324