xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/msm8929-pm8916.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1*b2d2a78aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only
2*b2d2a78aSEmmanuel Vadot/*
3*b2d2a78aSEmmanuel Vadot * msm8929-pm8916.dtsi describes common properties (e.g. regulator connections)
4*b2d2a78aSEmmanuel Vadot * that apply to most devices that make use of the MSM8929 SoC and PM8916 PMIC.
5*b2d2a78aSEmmanuel Vadot * Many regulators have a fixed purpose in the original reference design and
6*b2d2a78aSEmmanuel Vadot * were rarely re-used for different purposes. Devices that deviate from the
7*b2d2a78aSEmmanuel Vadot * typical reference design should not make use of this include and instead add
8*b2d2a78aSEmmanuel Vadot * the necessary properties in the board-specific device tree.
9*b2d2a78aSEmmanuel Vadot */
10*b2d2a78aSEmmanuel Vadot
11*b2d2a78aSEmmanuel Vadot#include "msm8929.dtsi"
12*b2d2a78aSEmmanuel Vadot#include "pm8916.dtsi"
13*b2d2a78aSEmmanuel Vadot
14*b2d2a78aSEmmanuel Vadot&mdss_dsi0 {
15*b2d2a78aSEmmanuel Vadot	vdda-supply = <&pm8916_l2>;
16*b2d2a78aSEmmanuel Vadot	vddio-supply = <&pm8916_l6>;
17*b2d2a78aSEmmanuel Vadot};
18*b2d2a78aSEmmanuel Vadot
19*b2d2a78aSEmmanuel Vadot&mdss_dsi0_phy {
20*b2d2a78aSEmmanuel Vadot	vddio-supply = <&pm8916_l6>;
21*b2d2a78aSEmmanuel Vadot};
22*b2d2a78aSEmmanuel Vadot
23*b2d2a78aSEmmanuel Vadot&mdss_dsi1 {
24*b2d2a78aSEmmanuel Vadot	vdda-supply = <&pm8916_l2>;
25*b2d2a78aSEmmanuel Vadot	vddio-supply = <&pm8916_l6>;
26*b2d2a78aSEmmanuel Vadot};
27*b2d2a78aSEmmanuel Vadot
28*b2d2a78aSEmmanuel Vadot&mdss_dsi1_phy {
29*b2d2a78aSEmmanuel Vadot	vddio-supply = <&pm8916_l6>;
30*b2d2a78aSEmmanuel Vadot};
31*b2d2a78aSEmmanuel Vadot
32*b2d2a78aSEmmanuel Vadot&mpss {
33*b2d2a78aSEmmanuel Vadot	pll-supply = <&pm8916_l7>;
34*b2d2a78aSEmmanuel Vadot};
35*b2d2a78aSEmmanuel Vadot
36*b2d2a78aSEmmanuel Vadot&pm8916_codec {
37*b2d2a78aSEmmanuel Vadot	vdd-cdc-io-supply = <&pm8916_l5>;
38*b2d2a78aSEmmanuel Vadot	vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
39*b2d2a78aSEmmanuel Vadot	vdd-micbias-supply = <&pm8916_l13>;
40*b2d2a78aSEmmanuel Vadot};
41*b2d2a78aSEmmanuel Vadot
42*b2d2a78aSEmmanuel Vadot&rpm_requests {
43*b2d2a78aSEmmanuel Vadot	pm8916_rpm_regulators: regulators {
44*b2d2a78aSEmmanuel Vadot		compatible = "qcom,rpm-pm8916-regulators";
45*b2d2a78aSEmmanuel Vadot		vdd_l1_l2_l3-supply = <&pm8916_s3>;
46*b2d2a78aSEmmanuel Vadot		vdd_l4_l5_l6-supply = <&pm8916_s4>;
47*b2d2a78aSEmmanuel Vadot		vdd_l7-supply = <&pm8916_s4>;
48*b2d2a78aSEmmanuel Vadot
49*b2d2a78aSEmmanuel Vadot		/* pm8916_s1 is managed by rpmpd (MSM8939_VDDMDCX) */
50*b2d2a78aSEmmanuel Vadot		/* pm8916_s2 is managed by rpmpd (MSM8939_VDDCX) */
51*b2d2a78aSEmmanuel Vadot		pm8916_s3: s3 {
52*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <1250000>;
53*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <1350000>;
54*b2d2a78aSEmmanuel Vadot			regulator-always-on; /* Needed for L2 */
55*b2d2a78aSEmmanuel Vadot		};
56*b2d2a78aSEmmanuel Vadot		pm8916_s4: s4 {
57*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <1850000>;
58*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <2150000>;
59*b2d2a78aSEmmanuel Vadot			regulator-always-on; /* Needed for L5/L7 */
60*b2d2a78aSEmmanuel Vadot		};
61*b2d2a78aSEmmanuel Vadot
62*b2d2a78aSEmmanuel Vadot		/*
63*b2d2a78aSEmmanuel Vadot		 * Some of the regulators are unused or managed by another
64*b2d2a78aSEmmanuel Vadot		 * processor (e.g. the modem). We should still define nodes for
65*b2d2a78aSEmmanuel Vadot		 * them to ensure the vote from the application processor can be
66*b2d2a78aSEmmanuel Vadot		 * dropped in case the regulators are already on during boot.
67*b2d2a78aSEmmanuel Vadot		 *
68*b2d2a78aSEmmanuel Vadot		 * The labels for these nodes are omitted on purpose because
69*b2d2a78aSEmmanuel Vadot		 * boards should configure a proper voltage before using them.
70*b2d2a78aSEmmanuel Vadot		 */
71*b2d2a78aSEmmanuel Vadot		l1 {};
72*b2d2a78aSEmmanuel Vadot
73*b2d2a78aSEmmanuel Vadot		pm8916_l2: l2 {
74*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <1200000>;
75*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <1200000>;
76*b2d2a78aSEmmanuel Vadot			regulator-always-on; /* Needed for LPDDR RAM */
77*b2d2a78aSEmmanuel Vadot		};
78*b2d2a78aSEmmanuel Vadot
79*b2d2a78aSEmmanuel Vadot		/* pm8916_l3 is managed by rpmpd (MSM8939_VDDMX) */
80*b2d2a78aSEmmanuel Vadot
81*b2d2a78aSEmmanuel Vadot		l4 {};
82*b2d2a78aSEmmanuel Vadot
83*b2d2a78aSEmmanuel Vadot		pm8916_l5: l5 {
84*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
85*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
86*b2d2a78aSEmmanuel Vadot			regulator-always-on; /* Needed for most digital I/O */
87*b2d2a78aSEmmanuel Vadot		};
88*b2d2a78aSEmmanuel Vadot
89*b2d2a78aSEmmanuel Vadot		pm8916_l6: l6 {
90*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
91*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
92*b2d2a78aSEmmanuel Vadot		};
93*b2d2a78aSEmmanuel Vadot
94*b2d2a78aSEmmanuel Vadot		pm8916_l7: l7 {
95*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
96*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
97*b2d2a78aSEmmanuel Vadot			regulator-always-on; /* Needed for CPU PLL */
98*b2d2a78aSEmmanuel Vadot		};
99*b2d2a78aSEmmanuel Vadot
100*b2d2a78aSEmmanuel Vadot		pm8916_l8: l8 {
101*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <2900000>;
102*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <2900000>;
103*b2d2a78aSEmmanuel Vadot		};
104*b2d2a78aSEmmanuel Vadot
105*b2d2a78aSEmmanuel Vadot		pm8916_l9: l9 {
106*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <3300000>;
107*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <3300000>;
108*b2d2a78aSEmmanuel Vadot		};
109*b2d2a78aSEmmanuel Vadot
110*b2d2a78aSEmmanuel Vadot		l10 {};
111*b2d2a78aSEmmanuel Vadot
112*b2d2a78aSEmmanuel Vadot		pm8916_l11: l11 {
113*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <2950000>;
114*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <2950000>;
115*b2d2a78aSEmmanuel Vadot			regulator-allow-set-load;
116*b2d2a78aSEmmanuel Vadot			regulator-system-load = <200000>;
117*b2d2a78aSEmmanuel Vadot		};
118*b2d2a78aSEmmanuel Vadot
119*b2d2a78aSEmmanuel Vadot		pm8916_l12: l12 {
120*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
121*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <2950000>;
122*b2d2a78aSEmmanuel Vadot		};
123*b2d2a78aSEmmanuel Vadot
124*b2d2a78aSEmmanuel Vadot		pm8916_l13: l13 {
125*b2d2a78aSEmmanuel Vadot			regulator-min-microvolt = <3075000>;
126*b2d2a78aSEmmanuel Vadot			regulator-max-microvolt = <3075000>;
127*b2d2a78aSEmmanuel Vadot		};
128*b2d2a78aSEmmanuel Vadot
129*b2d2a78aSEmmanuel Vadot		l14 {};
130*b2d2a78aSEmmanuel Vadot		l15 {};
131*b2d2a78aSEmmanuel Vadot		l16 {};
132*b2d2a78aSEmmanuel Vadot		l17 {};
133*b2d2a78aSEmmanuel Vadot		l18 {};
134*b2d2a78aSEmmanuel Vadot	};
135*b2d2a78aSEmmanuel Vadot};
136*b2d2a78aSEmmanuel Vadot
137*b2d2a78aSEmmanuel Vadot&sdhc_1 {
138*b2d2a78aSEmmanuel Vadot	vmmc-supply = <&pm8916_l8>;
139*b2d2a78aSEmmanuel Vadot	vqmmc-supply = <&pm8916_l5>;
140*b2d2a78aSEmmanuel Vadot};
141*b2d2a78aSEmmanuel Vadot
142*b2d2a78aSEmmanuel Vadot&sdhc_2 {
143*b2d2a78aSEmmanuel Vadot	vmmc-supply = <&pm8916_l11>;
144*b2d2a78aSEmmanuel Vadot	vqmmc-supply = <&pm8916_l12>;
145*b2d2a78aSEmmanuel Vadot};
146*b2d2a78aSEmmanuel Vadot
147*b2d2a78aSEmmanuel Vadot&usb_hs_phy {
148*b2d2a78aSEmmanuel Vadot	v1p8-supply = <&pm8916_l7>;
149*b2d2a78aSEmmanuel Vadot	v3p3-supply = <&pm8916_l13>;
150*b2d2a78aSEmmanuel Vadot};
151*b2d2a78aSEmmanuel Vadot
152*b2d2a78aSEmmanuel Vadot&wcnss {
153*b2d2a78aSEmmanuel Vadot	vddpx-supply = <&pm8916_l7>;
154*b2d2a78aSEmmanuel Vadot};
155*b2d2a78aSEmmanuel Vadot
156*b2d2a78aSEmmanuel Vadot&wcnss_iris {
157*b2d2a78aSEmmanuel Vadot	vddxo-supply = <&pm8916_l7>;
158*b2d2a78aSEmmanuel Vadot	vddrfa-supply = <&pm8916_s3>;
159*b2d2a78aSEmmanuel Vadot	vddpa-supply = <&pm8916_l9>;
160*b2d2a78aSEmmanuel Vadot	vdddig-supply = <&pm8916_l5>;
161*b2d2a78aSEmmanuel Vadot};
162*b2d2a78aSEmmanuel Vadot
163