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