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