Message ID | 1578401755-26211-1-git-send-email-loic.poulain@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64: dts: apq8096-db820c: Fix VDD core voltage | expand |
On Tue 07 Jan 04:55 PST 2020, Loic Poulain wrote: > APQ8096 has its VDD APC (Power for quad Kryo applications > microprocessors) powered by PM8996 PMIC S9, S10, S11 tri-phase > regulators (gang). The bootloader may have configured these > regulators with non sustainable default values, leading to sporadic > hangs under CPU stress tests (cpufreq-bench). Ideally we should enable > voltage scaling along with frequency scaling, but for now just set the > regulator gang value to a sane voltage, capable of supporting highest > frequencies (turbo). > > Signed-off-by: Loic Poulain <loic.poulain@linaro.org> Thanks for the update Loic, this looks good, so I've picked it up for 5.6 Regards, Bjorn > --- > v2: Move pm8994_spmi_regulators node to pm8994 dtsi > Move syscon to msm8996 dtsi > lower case for addresses > > arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 16 ++++++++++++++++ > arch/arm64/boot/dts/qcom/msm8996.dtsi | 5 +++++ > arch/arm64/boot/dts/qcom/pm8994.dtsi | 4 ++++ > 3 files changed, 25 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi > index dba3488..89c7b19 100644 > --- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi > +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi > @@ -669,6 +669,22 @@ > }; > }; > > +&pm8994_spmi_regulators { > + qcom,saw-reg = <&saw3>; > + s9 { > + qcom,saw-slave; > + }; > + s10 { > + qcom,saw-slave; > + }; > + s11 { > + qcom,saw-leader; > + regulator-always-on; > + regulator-min-microvolt = <1230000>; > + regulator-max-microvolt = <1230000>; > + }; > +}; > + > &spmi_bus { > pmic@0 { > pon@800 { > diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi > index 4ca2e7b..715f26e 100644 > --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi > +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi > @@ -611,6 +611,11 @@ > reg = <0x7a0000 0x18000>; > }; > > + saw3: syscon@9a10000 { > + compatible = "syscon"; > + reg = <0x09a10000 0x1000>; > + }; > + > intc: interrupt-controller@9bc0000 { > compatible = "qcom,msm8996-gic-v3", "arm,gic-v3"; > #interrupt-cells = <3>; > diff --git a/arch/arm64/boot/dts/qcom/pm8994.dtsi b/arch/arm64/boot/dts/qcom/pm8994.dtsi > index 76b5a3e..7e4f777 100644 > --- a/arch/arm64/boot/dts/qcom/pm8994.dtsi > +++ b/arch/arm64/boot/dts/qcom/pm8994.dtsi > @@ -85,5 +85,9 @@ > reg = <0x1 SPMI_USID>; > #address-cells = <1>; > #size-cells = <0>; > + > + pm8994_spmi_regulators: regulators { > + compatible = "qcom,pm8994-regulators"; > + }; > }; > }; > -- > 2.7.4 >
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi index dba3488..89c7b19 100644 --- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi @@ -669,6 +669,22 @@ }; }; +&pm8994_spmi_regulators { + qcom,saw-reg = <&saw3>; + s9 { + qcom,saw-slave; + }; + s10 { + qcom,saw-slave; + }; + s11 { + qcom,saw-leader; + regulator-always-on; + regulator-min-microvolt = <1230000>; + regulator-max-microvolt = <1230000>; + }; +}; + &spmi_bus { pmic@0 { pon@800 { diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi index 4ca2e7b..715f26e 100644 --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi @@ -611,6 +611,11 @@ reg = <0x7a0000 0x18000>; }; + saw3: syscon@9a10000 { + compatible = "syscon"; + reg = <0x09a10000 0x1000>; + }; + intc: interrupt-controller@9bc0000 { compatible = "qcom,msm8996-gic-v3", "arm,gic-v3"; #interrupt-cells = <3>; diff --git a/arch/arm64/boot/dts/qcom/pm8994.dtsi b/arch/arm64/boot/dts/qcom/pm8994.dtsi index 76b5a3e..7e4f777 100644 --- a/arch/arm64/boot/dts/qcom/pm8994.dtsi +++ b/arch/arm64/boot/dts/qcom/pm8994.dtsi @@ -85,5 +85,9 @@ reg = <0x1 SPMI_USID>; #address-cells = <1>; #size-cells = <0>; + + pm8994_spmi_regulators: regulators { + compatible = "qcom,pm8994-regulators"; + }; }; };
APQ8096 has its VDD APC (Power for quad Kryo applications microprocessors) powered by PM8996 PMIC S9, S10, S11 tri-phase regulators (gang). The bootloader may have configured these regulators with non sustainable default values, leading to sporadic hangs under CPU stress tests (cpufreq-bench). Ideally we should enable voltage scaling along with frequency scaling, but for now just set the regulator gang value to a sane voltage, capable of supporting highest frequencies (turbo). Signed-off-by: Loic Poulain <loic.poulain@linaro.org> --- v2: Move pm8994_spmi_regulators node to pm8994 dtsi Move syscon to msm8996 dtsi lower case for addresses arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 16 ++++++++++++++++ arch/arm64/boot/dts/qcom/msm8996.dtsi | 5 +++++ arch/arm64/boot/dts/qcom/pm8994.dtsi | 4 ++++ 3 files changed, 25 insertions(+)