Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / msm8939-pm8916.dtsi
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 };