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&dsi0 {
19	vdda-supply = <&pm8916_l2>;
20	vddio-supply = <&pm8916_l6>;
21};
22
23&dsi_phy0 {
24	vddio-supply = <&pm8916_l6>;
25};
26
27&mpss {
28	pll-supply = <&pm8916_l7>;
29};
30
31&sdhc_1 {
32	vmmc-supply = <&pm8916_l8>;
33	vqmmc-supply = <&pm8916_l5>;
34};
35
36&sdhc_2 {
37	vmmc-supply = <&pm8916_l11>;
38	vqmmc-supply = <&pm8916_l12>;
39};
40
41&usb_hs_phy {
42	v1p8-supply = <&pm8916_l7>;
43	v3p3-supply = <&pm8916_l13>;
44};
45
46&wcd_codec {
47	vdd-cdc-io-supply = <&pm8916_l5>;
48	vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
49	vdd-micbias-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		};
76
77		pm8916_s4: s4 {
78			regulator-min-microvolt = <1850000>;
79			regulator-max-microvolt = <2150000>;
80		};
81
82		/*
83		 * Some of the regulators are unused or managed by another
84		 * processor (e.g. the modem). We should still define nodes for
85		 * them to ensure the vote from the application processor can be
86		 * dropped in case the regulators are already on during boot.
87		 *
88		 * The labels for these nodes are omitted on purpose because
89		 * boards should configure a proper voltage before using them.
90		 */
91		l1 {};
92
93		pm8916_l2: l2 {
94			regulator-min-microvolt = <1200000>;
95			regulator-max-microvolt = <1200000>;
96		};
97
98		/* pm8916_l3 is managed by rpmpd (MSM8916_VDDMX) */
99
100		l4 {};
101
102		pm8916_l5: l5 {
103			regulator-min-microvolt = <1800000>;
104			regulator-max-microvolt = <1800000>;
105		};
106
107		pm8916_l6: l6 {
108			regulator-min-microvolt = <1800000>;
109			regulator-max-microvolt = <1800000>;
110		};
111
112		pm8916_l7: l7 {
113			regulator-min-microvolt = <1800000>;
114			regulator-max-microvolt = <1800000>;
115		};
116
117		pm8916_l8: l8 {
118			regulator-min-microvolt = <2900000>;
119			regulator-max-microvolt = <2900000>;
120		};
121
122		pm8916_l9: l9 {
123			regulator-min-microvolt = <3300000>;
124			regulator-max-microvolt = <3300000>;
125		};
126
127		l10 {};
128
129		pm8916_l11: l11 {
130			regulator-min-microvolt = <2950000>;
131			regulator-max-microvolt = <2950000>;
132			regulator-allow-set-load;
133			regulator-system-load = <200000>;
134		};
135
136		pm8916_l12: l12 {
137			regulator-min-microvolt = <1800000>;
138			regulator-max-microvolt = <2950000>;
139		};
140
141		pm8916_l13: l13 {
142			regulator-min-microvolt = <3075000>;
143			regulator-max-microvolt = <3075000>;
144		};
145
146		l14 {};
147		l15 {};
148		l16 {};
149		l17 {};
150		l18 {};
151	};
152};
153