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 13cd9ad167df745287680195a0519a11db81b856..0d517804e44ed26cd55b06d4299ab3aae6e76c08 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 fecb69944cfa38ca3dfa5586dfd4f031d04afc67..ddd64cc46998307660b8f2c018e544a18ff76629 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 91284a1d0966f1f84453abbd8b7ff898101a2005..982457503a3cc84d8540ac011dda1ed485234ced 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 525ec76efeeb78db7b8f336c1301064dc5f27d81..9584d271c5260c7792982e37ee1573958c023cd2 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 5b1bac8f51220e28cf2702359ba2de9b35fb41da..baa7bb86cdd5b4e25ca0e208ee0546eb7a16851b 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 f1dd625e1822782e7ca874f80891c12f1e361a4d..68d1b76aaf772bafe950e0c3ab53f409fac43764 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 6046e2c1f1586fa5d8926b3acd6261224aaef2d6..1e0c08770371adfd5d2cc81111fd140999787016 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 16d67749960e0471a236d030526bdcb9e4f62da0..b362a76eebc94191866578c90c40e78711ea4d16 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 74ffd04db8d84c5f22b465182e66be1324736247..4464beeeaab1276e50665ebab5b9870dfa6ec4d2 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 adeee0830e7680df17f1ec5bb66390c456b6ebe6..6e231e92e675652069bc30fea61e7ffd0c70af73 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 1a41a4db874daeac500314e5579c239c34a03232..fa5b330aaeaee7699843bc680bc92f9234cdb40e 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 08ecd901c1af65f779ee1444336367636104ca37..259c4660bb0fc21b86a06ea8abf2f90b496d0af3 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 ac56c7595f78a5b40ec1bd9622d72669f0bbf9b6..78020a0db4e4889826723405e81bdb5b73c28cb4 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>;
        };