diff mbox series

arm64: dts: apq8096-db820c: Fix VDD core voltage

Message ID 1577785957-31291-1-git-send-email-loic.poulain@linaro.org (mailing list archive)
State Superseded
Headers show
Series arm64: dts: apq8096-db820c: Fix VDD core voltage | expand

Commit Message

Loic Poulain Dec. 31, 2019, 9:52 a.m. UTC
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-becnh). 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>
---
 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

Comments

Bjorn Andersson Jan. 6, 2020, 8:58 a.m. UTC | #1
On Tue 31 Dec 01:52 PST 2019, 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-becnh). 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).
> 

I wasn't able to boot my db820c with the previous attempts to do opp
based voltage scaling, but this seems to work (booted twice
successfully).

> Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
> ---
>  arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
> index dba3488..8cde693 100644
> --- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
> +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
> @@ -493,6 +493,11 @@
>  				core-vcc-supply = <&pm8994_s4>;
>  			};
>  		};
> +
> +		saw3: syscon@9A10000 {

This node should live in msm8996.dtsi.

> +			compatible = "syscon";
> +			reg = <0x9A10000 0x1000>;

Please pad address to 8 digits, make 'A' lowercase and sort it among the
other nodes by address.

> +		};
>  	};
>  
>  
> @@ -681,6 +686,25 @@
>  			};
>  		};
>  	};
> +
> +	pmic@1 {
> +		spm-regulators {

This node represents the SPMI regulators, although the ganging relates
to the SPM. Please define an "empty":

pm8994_spmi_regulators: regulators {
	compatible = "qcom,pm8994-regulators";
};

In pm8994.dtsi, then add the rest here by extending
&pm8994_spmi_regulators in db820c.dtsi (sorted by label name)

Regards,
Bjorn

> +			compatible = "qcom,pm8994-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>;
> +			};
> +		};
> +	};
>  };
>  
>  &sound {
> -- 
> 2.7.4
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
index dba3488..8cde693 100644
--- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
+++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
@@ -493,6 +493,11 @@ 
 				core-vcc-supply = <&pm8994_s4>;
 			};
 		};
+
+		saw3: syscon@9A10000 {
+			compatible = "syscon";
+			reg = <0x9A10000 0x1000>;
+		};
 	};
 
 
@@ -681,6 +686,25 @@ 
 			};
 		};
 	};
+
+	pmic@1 {
+		spm-regulators {
+			compatible = "qcom,pm8994-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>;
+			};
+		};
+	};
 };
 
 &sound {