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