OSDN Git Service

arm64: dts: qcom: msm8916: Fix regulator constraints
authorStephan Gerhold <stephan@gerhold.net>
Wed, 17 May 2023 18:48:42 +0000 (20:48 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 25 May 2023 04:50:47 +0000 (21:50 -0700)
The regulator constraints for most MSM8916 devices (except DB410c) were
originally taken from Qualcomm's msm-3.10 vendor device tree (for lack
of better documentation). Unfortunately it turns out that Qualcomm's
voltages are slightly off as well and do not match the voltage
constraints applied by the RPM firmware.

This means that we sometimes request a specific voltage but the RPM
firmware actually applies a much lower or higher voltage. This is
particularly critical for pm8916_l11 which is used as SD card VMMC
regulator: The SD card can choose a voltage from the current range of
1.8 - 2.95V. If it chooses to run at 1.8V we pretend that this is fine
but the RPM firmware will still silently end up configuring 2.95V.
This can be easily reproduced with a multimeter or by checking the
SPMI hardware registers of the regulator.

Fix this by making the voltages match the actual "specified range" in
the PM8916 Device Specification which is enforced by the RPM firmware.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230510-msm8916-regulators-v1-3-54d4960a05fc@gerhold.net
13 files changed:
arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dts
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts
arch/arm64/boot/dts/qcom/msm8916-gplus-fl8005a.dts
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dts
arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-gt5-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dts
arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi
arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dts

index 13cd9ad..0d51780 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-system-load = <200000>;
                regulator-allow-set-load;
index fecb699..ddd64cc 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-allow-set-load;
                regulator-system-load = <200000>;
index 91284a1..9824575 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-allow-set-load;
                regulator-system-load = <200000>;
index 525ec76..9584d27 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-system-load = <200000>;
                regulator-allow-set-load;
index 5b1bac8..baa7bb8 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-allow-set-load;
                regulator-system-load = <200000>;
index f1dd625..68d1b76 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-allow-set-load;
                regulator-system-load = <200000>;
index 6046e2c..1e0c087 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-allow-set-load;
                regulator-system-load = <200000>;
index 16d6774..b362a76 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-allow-set-load;
                regulator-system-load = <200000>;
index 74ffd04..4464bee 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-system-load = <200000>;
                regulator-allow-set-load;
index adeee08..6e231e9 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-allow-set-load;
                regulator-system-load = <200000>;
index 1a41a4d..fa5b330 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-allow-set-load;
                regulator-system-load = <200000>;
index 08ecd90..259c466 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };
 
        l11 {
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <2950000>;
                regulator-max-microvolt = <2950000>;
                regulator-system-load = <200000>;
                regulator-allow-set-load;
index ac56c75..78020a0 100644 (file)
        vdd_l7-supply = <&pm8916_s4>;
 
        s3 {
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1300000>;
+               regulator-min-microvolt = <1250000>;
+               regulator-max-microvolt = <1350000>;
        };
 
        s4 {
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <2100000>;
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <2150000>;
        };
 
        l1 {
        };
 
        l8 {
-               regulator-min-microvolt = <2850000>;
+               regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
        };
 
        };
 
        l10 {
-               regulator-min-microvolt = <2700000>;
+               regulator-min-microvolt = <2800000>;
                regulator-max-microvolt = <2800000>;
        };