xref: /openbmc/linux/arch/arm64/boot/dts/qcom/msm8916-pm8916.dtsi (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1bfe9d754SStephan Gerhold// SPDX-License-Identifier: GPL-2.0-only
2bfe9d754SStephan Gerhold/*
3bfe9d754SStephan Gerhold * msm8916-pm8916.dtsi describes common properties (e.g. regulator connections)
4bfe9d754SStephan Gerhold * that apply to most devices that make use of the MSM8916 SoC and PM8916 PMIC.
5bfe9d754SStephan Gerhold * Many regulators have a fixed purpose in the original reference design and
6bfe9d754SStephan Gerhold * were rarely re-used for different purposes. Devices that deviate from the
7bfe9d754SStephan Gerhold * typical reference design should not make use of this include and instead add
8bfe9d754SStephan Gerhold * the necessary properties in the board-specific device tree.
9bfe9d754SStephan Gerhold */
10cc99dd61SStephan Gerhold
11cc99dd61SStephan Gerhold#include "msm8916.dtsi"
12cc99dd61SStephan Gerhold#include "pm8916.dtsi"
13cc99dd61SStephan Gerhold
14cc99dd61SStephan Gerhold&camss {
15cc99dd61SStephan Gerhold	vdda-supply = <&pm8916_l2>;
16cc99dd61SStephan Gerhold};
17cc99dd61SStephan Gerhold
18cc99dd61SStephan Gerhold&mdss_dsi0 {
19bfe9d754SStephan Gerhold	vdda-supply = <&pm8916_l2>;
20bfe9d754SStephan Gerhold	vddio-supply = <&pm8916_l6>;
21bfe9d754SStephan Gerhold};
22bfe9d754SStephan Gerhold
23cc99dd61SStephan Gerhold&mdss_dsi0_phy {
24cc99dd61SStephan Gerhold	vddio-supply = <&pm8916_l6>;
25cc99dd61SStephan Gerhold};
26cc99dd61SStephan Gerhold
27cc99dd61SStephan Gerhold&mpss {
28cc99dd61SStephan Gerhold	pll-supply = <&pm8916_l7>;
29cc99dd61SStephan Gerhold};
30cc99dd61SStephan Gerhold
31cc99dd61SStephan Gerhold&pm8916_codec {
32cc99dd61SStephan Gerhold	vdd-cdc-io-supply = <&pm8916_l5>;
33cc99dd61SStephan Gerhold	vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
34cc99dd61SStephan Gerhold	vdd-micbias-supply = <&pm8916_l13>;
35cc99dd61SStephan Gerhold};
36cc99dd61SStephan Gerhold
37cc99dd61SStephan Gerhold&sdhc_1 {
38*32444424SStephan Gerhold	vmmc-supply = <&pm8916_l8>;
39*32444424SStephan Gerhold	vqmmc-supply = <&pm8916_l5>;
40*32444424SStephan Gerhold};
41*32444424SStephan Gerhold
42*32444424SStephan Gerhold&sdhc_2 {
43*32444424SStephan Gerhold	vmmc-supply = <&pm8916_l11>;
44*32444424SStephan Gerhold	vqmmc-supply = <&pm8916_l12>;
45*32444424SStephan Gerhold};
46*32444424SStephan Gerhold
47*32444424SStephan Gerhold&usb_hs_phy {
48*32444424SStephan Gerhold	v1p8-supply = <&pm8916_l7>;
49bfe9d754SStephan Gerhold	v3p3-supply = <&pm8916_l13>;
50372698e8SKrzysztof Kozlowski};
51bfe9d754SStephan Gerhold
52bfe9d754SStephan Gerhold&wcnss {
53bd1f64bbSStephan Gerhold	vddpx-supply = <&pm8916_l7>;
54bfe9d754SStephan Gerhold};
55bfe9d754SStephan Gerhold
56bfe9d754SStephan Gerhold&wcnss_iris {
57bfe9d754SStephan Gerhold	vddxo-supply = <&pm8916_l7>;
58bfe9d754SStephan Gerhold	vddrfa-supply = <&pm8916_s3>;
59bd1f64bbSStephan Gerhold	vddpa-supply = <&pm8916_l9>;
60bfe9d754SStephan Gerhold	vdddig-supply = <&pm8916_l5>;
61bfe9d754SStephan Gerhold};
62bfe9d754SStephan Gerhold
63bfe9d754SStephan Gerhold&rpm_requests {
64bfe9d754SStephan Gerhold	pm8916_rpm_regulators: regulators {
65bfe9d754SStephan Gerhold		compatible = "qcom,rpm-pm8916-regulators";
66bfe9d754SStephan Gerhold		vdd_l1_l2_l3-supply = <&pm8916_s3>;
67bfe9d754SStephan Gerhold		vdd_l4_l5_l6-supply = <&pm8916_s4>;
68bfe9d754SStephan Gerhold		vdd_l7-supply = <&pm8916_s4>;
69bfe9d754SStephan Gerhold
70bfe9d754SStephan Gerhold		/* pm8916_s1 is managed by rpmpd (MSM8916_VDDCX) */
71bfe9d754SStephan Gerhold
72bfe9d754SStephan Gerhold		pm8916_s3: s3 {
73bfe9d754SStephan Gerhold			regulator-min-microvolt = <1250000>;
74bfe9d754SStephan Gerhold			regulator-max-microvolt = <1350000>;
75bfe9d754SStephan Gerhold			regulator-always-on; /* Needed for L2 */
76bfe9d754SStephan Gerhold		};
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