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 <l...@lucaweiss.eu>
---
 .../arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts | 13 -------
 .../qcom/qcom-msm8974-lge-nexus5-hammerhead.dts    | 12 ------
 .../boot/dts/qcom/qcom-msm8974-samsung-hlte.dts    | 12 ------
 .../dts/qcom/qcom-msm8974-sony-xperia-rhine.dtsi   | 12 ------
 arch/arm/boot/dts/qcom/qcom-msm8974.dtsi           | 44 ++++++++++++++++++++++
 .../dts/qcom/qcom-msm8974pro-fairphone-fp2.dts     |  8 ----
 arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts  | 11 ------
 .../dts/qcom/qcom-msm8974pro-oneplus-bacon.dts     |  9 -----
 .../qcom/qcom-msm8974pro-samsung-klte-common.dtsi  | 11 ++----
 ...qcom-msm8974pro-sony-xperia-shinano-common.dtsi | 12 ------
 10 files changed, 48 insertions(+), 96 deletions(-)

diff --git a/arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts 
b/arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts
index 
34b0cf35fdac8b0bc34ffd27f70f900878a15ff7..d3ae6c6a6f83e2b77849eeeb0c348a8efd9464dd
 100644
--- a/arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts
@@ -198,15 +198,12 @@ &pm8941_wled {
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
-
        firmware-name = "qcom/apq8074/adsp.mbn";
 
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
@@ -225,20 +222,10 @@ pm8841_s1: s1 {
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <500000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
        };
 
        regulators-1 {
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974-lge-nexus5-hammerhead.dts 
b/arch/arm/boot/dts/qcom/qcom-msm8974-lge-nexus5-hammerhead.dts
index 
261044fdfee866449e9d9d62cef5aea10d88e874..b60a45f5c34193daffe982ecab132315e4b12865
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974-lge-nexus5-hammerhead.dts
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974-lge-nexus5-hammerhead.dts
@@ -368,12 +368,10 @@ led@5 {
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
@@ -389,20 +387,10 @@ pm8841_s1: s1 {
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <815000>;
-                       regulator-max-microvolt = <900000>;
-               };
        };
 
        regulators-1 {
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts 
b/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts
index 
903bb4d125135771504281df50aa11c9b6576a28..214cbcbd21cd18554d83f3c8569cd788868c71b0
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts
@@ -152,12 +152,10 @@ touch_ldo_pin: touchscreen-ldo-state {
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
@@ -173,20 +171,10 @@ pm8841_s1: s1 {
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <815000>;
-                       regulator-max-microvolt = <900000>;
-               };
        };
 
        regulators-1 {
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974-sony-xperia-rhine.dtsi 
b/arch/arm/boot/dts/qcom/qcom-msm8974-sony-xperia-rhine.dtsi
index 
d34659ebac22e65a511994ef201fe04f12089781..02a64cea280875a91db8ee70b6b8de683327de50
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974-sony-xperia-rhine.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974-sony-xperia-rhine.dtsi
@@ -216,12 +216,10 @@ &pm8941_wled {
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
@@ -237,20 +235,10 @@ pm8841_s1: s1 {
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <500000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
        };
 
        regulators-1 {
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi 
b/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi
index 
8459a840d9ffee9da2f9a4ad8fd5a1419a3eb5a7..2a82ddce94a28eb1b50fdaffd5ba5de86e165156
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi
@@ -8,6 +8,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,msm8974.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/reset/qcom,gcc-msm8974.h>
 
 / {
@@ -146,6 +147,40 @@ rpmcc: clock-controller {
                                        clocks = <&xo_board>;
                                        clock-names = "xo";
                                };
+
+                               rpmpd: power-controller {
+                                       compatible = "qcom,msm8974-rpmpd";
+                                       #power-domain-cells = <1>;
+                                       operating-points-v2 = 
<&rpmpd_opp_table>;
+
+                                       rpmpd_opp_table: opp-table {
+                                               compatible = 
"operating-points-v2";
+
+                                               rpmpd_opp_ret: opp1 {
+                                                       opp-level = <1>;
+                                               };
+
+                                               rpmpd_opp_svs_krait: opp2 {
+                                                       opp-level = <2>;
+                                               };
+
+                                               rpmpd_opp_svs_soc: opp3 {
+                                                       opp-level = <3>;
+                                               };
+
+                                               rpmpd_opp_nom: opp4 {
+                                                       opp-level = <4>;
+                                               };
+
+                                               rpmpd_opp_turbo: opp5 {
+                                                       opp-level = <5>;
+                                               };
+
+                                               rpmpd_opp_super_turbo: opp6 {
+                                                       opp-level = <6>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
@@ -743,6 +778,9 @@ pronto: remoteproc@fb204000 {
                                              <&wcnss_smp2p_in 3 
IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "wdog", "fatal", "ready", "handover", 
"stop-ack";
 
+                       power-domains = <&rpmpd MSM8974_VDDCX>;
+                       power-domain-names = "cx";
+
                        qcom,smem-states = <&wcnss_smp2p_out 0>;
                        qcom,smem-state-names = "stop";
 
@@ -1545,6 +1583,9 @@ remoteproc_mss: remoteproc@fc880000 {
                        resets = <&gcc GCC_MSS_RESTART>;
                        reset-names = "mss_restart";
 
+                       power-domains = <&rpmpd MSM8974_VDDCX>;
+                       power-domain-names = "cx";
+
                        qcom,halt-regs = <&tcsr_mutex 0x1180 0x1200 0x1280>;
 
                        qcom,smem-states = <&modem_smp2p_out 0>;
@@ -2208,6 +2249,9 @@ remoteproc_adsp: remoteproc@fe200000 {
                        clocks = <&xo_board>;
                        clock-names = "xo";
 
+                       power-domains = <&rpmpd MSM8974_VDDCX>;
+                       power-domain-names = "cx";
+
                        memory-region = <&adsp_region>;
 
                        qcom,smem-states = <&adsp_smp2p_out 0>;
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-fairphone-fp2.dts 
b/arch/arm/boot/dts/qcom/qcom-msm8974pro-fairphone-fp2.dts
index 
fe227fd3f908e219e20bffe3561390ca6568468e..a081aeadd1d4d9539d38588811be8ac5ba0b79a4
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-fairphone-fp2.dts
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-fairphone-fp2.dts
@@ -156,7 +156,6 @@ &pronto {
        status = "okay";
 
        vddmx-supply = <&pm8841_s1>;
-       vddcx-supply = <&pm8841_s2>;
        vddpx-supply = <&pm8941_s3>;
 
        pinctrl-names = "default";
@@ -181,12 +180,10 @@ wcnss {
 
 &remoteproc_adsp {
        status = "okay";
-       cx-supply = <&pm8841_s2>;
 };
 
 &remoteproc_mss {
        status = "okay";
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
@@ -201,11 +198,6 @@ pm8841_s1: s1 {
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts 
b/arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts
index 
b896cc1ad6f7d4b3f8e70ad4460867b04519a6d9..402372834c53d6ef71a72156d1be7d30ff1feee5
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts
@@ -70,7 +70,6 @@ &pm8941_vib {
 
 &pronto {
        vddmx-supply = <&pm8841_s1>;
-       vddcx-supply = <&pm8841_s2>;
        vddpx-supply = <&pm8941_s3>;
 
        pinctrl-0 = <&wcnss_pin_a>;
@@ -104,20 +103,10 @@ pm8841_s1: s1 {
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <815000>;
-                       regulator-max-microvolt = <900000>;
-               };
        };
 
        regulators-1 {
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-oneplus-bacon.dts 
b/arch/arm/boot/dts/qcom/qcom-msm8974pro-oneplus-bacon.dts
index 
4c8edadea0ac63db668dbd666fbb8d92e23232b7..090774e05451e1b5c7cd6d1049760da651cc83b4
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-oneplus-bacon.dts
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-oneplus-bacon.dts
@@ -213,7 +213,6 @@ &pm8941_vib {
 
 &pronto {
        vddmx-supply = <&pm8841_s1>;
-       vddcx-supply = <&pm8841_s2>;
        vddpx-supply = <&pm8941_s3>;
 
        pinctrl-names = "default";
@@ -239,8 +238,6 @@ wcnss {
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
-
        status = "okay";
 };
 
@@ -253,12 +250,6 @@ pm8841_s1: s1 {
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <875000>;
-                       regulator-max-microvolt = <1050000>;
-                       regulator-always-on;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi 
b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
index 
d3959741d2ea9e2a3dace149034d42353fbe9828..56a1a25f3df38bf4a9ba5ea4ad9e8a2d1d1c0a95
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
@@ -453,12 +453,10 @@ ramoops@3e8e0000 {
 
 &remoteproc_adsp {
        status = "okay";
-       cx-supply = <&pma8084_s2>;
 };
 
 &remoteproc_mss {
        status = "okay";
-       cx-supply = <&pma8084_s2>;
        mss-supply = <&pma8084_s6>;
        mx-supply = <&pma8084_s1>;
        pll-supply = <&pma8084_l12>;
@@ -474,11 +472,6 @@ pma8084_s1: s1 {
                        regulator-always-on;
                };
 
-               pma8084_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pma8084_s3: s3 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1300000>;
@@ -648,6 +641,10 @@ pma8084_l27: l27 {
        };
 };
 
+&rpmpd {
+       compatible = "qcom,msm8974pro-pma8084-rpmpd";
+};
+
 &sdhc_1 {
        status = "okay";
 
diff --git 
a/arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi 
b/arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi
index 
6af7c71c715847f137ec2da41d70f679a8e1c04b..3d2de30b495e6e6176eb38b95ec67634fbcb29ca
 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi
@@ -207,12 +207,10 @@ &pm8941_vib {
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
@@ -228,20 +226,10 @@ pm8841_s1: s1 {
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <500000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
        };
 
        regulators-1 {

-- 
2.50.0


Reply via email to