@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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>;
@@ -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>;
@@ -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 {
@@ -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>;
@@ -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";
@@ -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 {
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> --- .../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(-)