Skip to content

Commit df7c440

Browse files
z3ntuandersson
authored andcommitted
ARM: dts: qcom: msm8974: Start using rpmpd for power domains
Due to historical reasons all msm8974 boards have used the CX power rail as regulator instead of going through the power domain framework. Since rpmpd has gained msm8974 support quite a bit ago, let's start using it and replace all usages of pm8841_s2 (CX), pm8841_s4 (GFX) and for the boards using pma8084 pma8084_s2 (CX), pma8084_s7 (GFX). For reference, downstream is using GFX power rail as parent-supply for mmcc's OXILI_GDSC GDSC which then is used for GPU, but nothing there is modelled upstream. Signed-off-by: Luca Weiss <luca@lucaweiss.eu> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://lore.kernel.org/r/20250621-msm8974-rpmpd-switch-v1-4-0a2cb303c446@lucaweiss.eu Signed-off-by: Bjorn Andersson <andersson@kernel.org>
1 parent 4cf8d54 commit df7c440

10 files changed

Lines changed: 48 additions & 96 deletions

arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -198,15 +198,12 @@
198198
};
199199

200200
&remoteproc_adsp {
201-
cx-supply = <&pm8841_s2>;
202-
203201
firmware-name = "qcom/apq8074/adsp.mbn";
204202

205203
status = "okay";
206204
};
207205

208206
&remoteproc_mss {
209-
cx-supply = <&pm8841_s2>;
210207
mss-supply = <&pm8841_s3>;
211208
mx-supply = <&pm8841_s1>;
212209
pll-supply = <&pm8941_l12>;
@@ -225,20 +222,10 @@
225222
regulator-max-microvolt = <1050000>;
226223
};
227224

228-
pm8841_s2: s2 {
229-
regulator-min-microvolt = <500000>;
230-
regulator-max-microvolt = <1050000>;
231-
};
232-
233225
pm8841_s3: s3 {
234226
regulator-min-microvolt = <500000>;
235227
regulator-max-microvolt = <1050000>;
236228
};
237-
238-
pm8841_s4: s4 {
239-
regulator-min-microvolt = <500000>;
240-
regulator-max-microvolt = <1050000>;
241-
};
242229
};
243230

244231
regulators-1 {

arch/arm/boot/dts/qcom/qcom-msm8974-lge-nexus5-hammerhead.dts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -369,12 +369,10 @@
369369
};
370370

371371
&remoteproc_adsp {
372-
cx-supply = <&pm8841_s2>;
373372
status = "okay";
374373
};
375374

376375
&remoteproc_mss {
377-
cx-supply = <&pm8841_s2>;
378376
mss-supply = <&pm8841_s3>;
379377
mx-supply = <&pm8841_s1>;
380378
pll-supply = <&pm8941_l12>;
@@ -390,20 +388,10 @@
390388
regulator-max-microvolt = <1050000>;
391389
};
392390

393-
pm8841_s2: s2 {
394-
regulator-min-microvolt = <500000>;
395-
regulator-max-microvolt = <1050000>;
396-
};
397-
398391
pm8841_s3: s3 {
399392
regulator-min-microvolt = <1050000>;
400393
regulator-max-microvolt = <1050000>;
401394
};
402-
403-
pm8841_s4: s4 {
404-
regulator-min-microvolt = <815000>;
405-
regulator-max-microvolt = <900000>;
406-
};
407395
};
408396

409397
regulators-1 {

arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -188,12 +188,10 @@
188188
};
189189

190190
&remoteproc_adsp {
191-
cx-supply = <&pm8841_s2>;
192191
status = "okay";
193192
};
194193

195194
&remoteproc_mss {
196-
cx-supply = <&pm8841_s2>;
197195
mss-supply = <&pm8841_s3>;
198196
mx-supply = <&pm8841_s1>;
199197
pll-supply = <&pm8941_l12>;
@@ -209,20 +207,10 @@
209207
regulator-max-microvolt = <1050000>;
210208
};
211209

212-
pm8841_s2: s2 {
213-
regulator-min-microvolt = <500000>;
214-
regulator-max-microvolt = <1050000>;
215-
};
216-
217210
pm8841_s3: s3 {
218211
regulator-min-microvolt = <1050000>;
219212
regulator-max-microvolt = <1050000>;
220213
};
221-
222-
pm8841_s4: s4 {
223-
regulator-min-microvolt = <815000>;
224-
regulator-max-microvolt = <900000>;
225-
};
226214
};
227215

228216
regulators-1 {

arch/arm/boot/dts/qcom/qcom-msm8974-sony-xperia-rhine.dtsi

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -204,12 +204,10 @@
204204
};
205205

206206
&remoteproc_adsp {
207-
cx-supply = <&pm8841_s2>;
208207
status = "okay";
209208
};
210209

211210
&remoteproc_mss {
212-
cx-supply = <&pm8841_s2>;
213211
mss-supply = <&pm8841_s3>;
214212
mx-supply = <&pm8841_s1>;
215213
pll-supply = <&pm8941_l12>;
@@ -225,20 +223,10 @@
225223
regulator-max-microvolt = <1050000>;
226224
};
227225

228-
pm8841_s2: s2 {
229-
regulator-min-microvolt = <500000>;
230-
regulator-max-microvolt = <1050000>;
231-
};
232-
233226
pm8841_s3: s3 {
234227
regulator-min-microvolt = <500000>;
235228
regulator-max-microvolt = <1050000>;
236229
};
237-
238-
pm8841_s4: s4 {
239-
regulator-min-microvolt = <500000>;
240-
regulator-max-microvolt = <1050000>;
241-
};
242230
};
243231

244232
regulators-1 {

arch/arm/boot/dts/qcom/qcom-msm8974.dtsi

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <dt-bindings/gpio/gpio.h>
99
#include <dt-bindings/interconnect/qcom,msm8974.h>
1010
#include <dt-bindings/interrupt-controller/arm-gic.h>
11+
#include <dt-bindings/power/qcom-rpmpd.h>
1112
#include <dt-bindings/reset/qcom,gcc-msm8974.h>
1213

1314
/ {
@@ -146,6 +147,40 @@
146147
clocks = <&xo_board>;
147148
clock-names = "xo";
148149
};
150+
151+
rpmpd: power-controller {
152+
compatible = "qcom,msm8974-rpmpd";
153+
#power-domain-cells = <1>;
154+
operating-points-v2 = <&rpmpd_opp_table>;
155+
156+
rpmpd_opp_table: opp-table {
157+
compatible = "operating-points-v2";
158+
159+
rpmpd_opp_ret: opp1 {
160+
opp-level = <1>;
161+
};
162+
163+
rpmpd_opp_svs_krait: opp2 {
164+
opp-level = <2>;
165+
};
166+
167+
rpmpd_opp_svs_soc: opp3 {
168+
opp-level = <3>;
169+
};
170+
171+
rpmpd_opp_nom: opp4 {
172+
opp-level = <4>;
173+
};
174+
175+
rpmpd_opp_turbo: opp5 {
176+
opp-level = <5>;
177+
};
178+
179+
rpmpd_opp_super_turbo: opp6 {
180+
opp-level = <6>;
181+
};
182+
};
183+
};
149184
};
150185
};
151186
};
@@ -743,6 +778,9 @@
743778
<&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
744779
interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
745780

781+
power-domains = <&rpmpd MSM8974_VDDCX>;
782+
power-domain-names = "cx";
783+
746784
qcom,smem-states = <&wcnss_smp2p_out 0>;
747785
qcom,smem-state-names = "stop";
748786

@@ -1545,6 +1583,9 @@
15451583
resets = <&gcc GCC_MSS_RESTART>;
15461584
reset-names = "mss_restart";
15471585

1586+
power-domains = <&rpmpd MSM8974_VDDCX>;
1587+
power-domain-names = "cx";
1588+
15481589
qcom,halt-regs = <&tcsr_mutex 0x1180 0x1200 0x1280>;
15491590

15501591
qcom,smem-states = <&modem_smp2p_out 0>;
@@ -2208,6 +2249,9 @@
22082249
clocks = <&xo_board>;
22092250
clock-names = "xo";
22102251

2252+
power-domains = <&rpmpd MSM8974_VDDCX>;
2253+
power-domain-names = "cx";
2254+
22112255
memory-region = <&adsp_region>;
22122256

22132257
qcom,smem-states = <&adsp_smp2p_out 0>;

arch/arm/boot/dts/qcom/qcom-msm8974pro-fairphone-fp2.dts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@
156156
status = "okay";
157157

158158
vddmx-supply = <&pm8841_s1>;
159-
vddcx-supply = <&pm8841_s2>;
160159
vddpx-supply = <&pm8941_s3>;
161160

162161
pinctrl-names = "default";
@@ -181,12 +180,10 @@
181180

182181
&remoteproc_adsp {
183182
status = "okay";
184-
cx-supply = <&pm8841_s2>;
185183
};
186184

187185
&remoteproc_mss {
188186
status = "okay";
189-
cx-supply = <&pm8841_s2>;
190187
mss-supply = <&pm8841_s3>;
191188
mx-supply = <&pm8841_s1>;
192189
pll-supply = <&pm8941_l12>;
@@ -201,11 +198,6 @@
201198
regulator-max-microvolt = <1050000>;
202199
};
203200

204-
pm8841_s2: s2 {
205-
regulator-min-microvolt = <500000>;
206-
regulator-max-microvolt = <1050000>;
207-
};
208-
209201
pm8841_s3: s3 {
210202
regulator-min-microvolt = <1050000>;
211203
regulator-max-microvolt = <1050000>;

arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@
7070

7171
&pronto {
7272
vddmx-supply = <&pm8841_s1>;
73-
vddcx-supply = <&pm8841_s2>;
7473
vddpx-supply = <&pm8941_s3>;
7574

7675
pinctrl-0 = <&wcnss_pin_a>;
@@ -104,20 +103,10 @@
104103
regulator-max-microvolt = <1050000>;
105104
};
106105

107-
pm8841_s2: s2 {
108-
regulator-min-microvolt = <500000>;
109-
regulator-max-microvolt = <1050000>;
110-
};
111-
112106
pm8841_s3: s3 {
113107
regulator-min-microvolt = <1050000>;
114108
regulator-max-microvolt = <1050000>;
115109
};
116-
117-
pm8841_s4: s4 {
118-
regulator-min-microvolt = <815000>;
119-
regulator-max-microvolt = <900000>;
120-
};
121110
};
122111

123112
regulators-1 {

arch/arm/boot/dts/qcom/qcom-msm8974pro-oneplus-bacon.dts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@
214214

215215
&pronto {
216216
vddmx-supply = <&pm8841_s1>;
217-
vddcx-supply = <&pm8841_s2>;
218217
vddpx-supply = <&pm8941_s3>;
219218

220219
pinctrl-names = "default";
@@ -240,8 +239,6 @@
240239
};
241240

242241
&remoteproc_adsp {
243-
cx-supply = <&pm8841_s2>;
244-
245242
status = "okay";
246243
};
247244

@@ -254,12 +251,6 @@
254251
regulator-max-microvolt = <1050000>;
255252
};
256253

257-
pm8841_s2: s2 {
258-
regulator-min-microvolt = <875000>;
259-
regulator-max-microvolt = <1050000>;
260-
regulator-always-on;
261-
};
262-
263254
pm8841_s3: s3 {
264255
regulator-min-microvolt = <1050000>;
265256
regulator-max-microvolt = <1050000>;

arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -453,12 +453,10 @@
453453

454454
&remoteproc_adsp {
455455
status = "okay";
456-
cx-supply = <&pma8084_s2>;
457456
};
458457

459458
&remoteproc_mss {
460459
status = "okay";
461-
cx-supply = <&pma8084_s2>;
462460
mss-supply = <&pma8084_s6>;
463461
mx-supply = <&pma8084_s1>;
464462
pll-supply = <&pma8084_l12>;
@@ -474,11 +472,6 @@
474472
regulator-always-on;
475473
};
476474

477-
pma8084_s2: s2 {
478-
regulator-min-microvolt = <500000>;
479-
regulator-max-microvolt = <1050000>;
480-
};
481-
482475
pma8084_s3: s3 {
483476
regulator-min-microvolt = <1300000>;
484477
regulator-max-microvolt = <1300000>;
@@ -648,6 +641,10 @@
648641
};
649642
};
650643

644+
&rpmpd {
645+
compatible = "qcom,msm8974pro-pma8084-rpmpd";
646+
};
647+
651648
&sdhc_1 {
652649
status = "okay";
653650

arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -207,12 +207,10 @@
207207
};
208208

209209
&remoteproc_adsp {
210-
cx-supply = <&pm8841_s2>;
211210
status = "okay";
212211
};
213212

214213
&remoteproc_mss {
215-
cx-supply = <&pm8841_s2>;
216214
mss-supply = <&pm8841_s3>;
217215
mx-supply = <&pm8841_s1>;
218216
pll-supply = <&pm8941_l12>;
@@ -228,20 +226,10 @@
228226
regulator-max-microvolt = <1050000>;
229227
};
230228

231-
pm8841_s2: s2 {
232-
regulator-min-microvolt = <500000>;
233-
regulator-max-microvolt = <1050000>;
234-
};
235-
236229
pm8841_s3: s3 {
237230
regulator-min-microvolt = <500000>;
238231
regulator-max-microvolt = <1050000>;
239232
};
240-
241-
pm8841_s4: s4 {
242-
regulator-min-microvolt = <500000>;
243-
regulator-max-microvolt = <1050000>;
244-
};
245233
};
246234

247235
regulators-1 {

0 commit comments

Comments
 (0)