Commit 35575082 authored by Stephan Gerhold's avatar Stephan Gerhold Committed by Bjorn Andersson

arm64: dts: qcom: msm8916: Fix regulator constraints

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: default avatarStephan Gerhold <stephan@gerhold.net>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230510-msm8916-regulators-v1-3-54d4960a05fc@gerhold.net
parent 5500f823
......@@ -159,13 +159,13 @@ &smd_rpm_regulators {
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 {
......@@ -199,7 +199,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -209,12 +209,12 @@ l9 {
};
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;
......
......@@ -201,13 +201,13 @@ &smd_rpm_regulators {
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 {
......@@ -241,7 +241,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -251,12 +251,12 @@ l9 {
};
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>;
......
......@@ -169,13 +169,13 @@ &smd_rpm_regulators {
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 {
......@@ -209,7 +209,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -219,12 +219,12 @@ l9 {
};
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>;
......
......@@ -159,13 +159,13 @@ &smd_rpm_regulators {
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 {
......@@ -199,7 +199,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -209,12 +209,12 @@ l9 {
};
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;
......
......@@ -322,13 +322,13 @@ &smd_rpm_regulators {
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 {
......@@ -372,12 +372,12 @@ l9 {
};
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>;
......
......@@ -273,13 +273,13 @@ &smd_rpm_regulators {
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 {
......@@ -313,7 +313,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -323,12 +323,12 @@ l9 {
};
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>;
......
......@@ -155,13 +155,13 @@ &smd_rpm_regulators {
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 {
......@@ -195,7 +195,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -205,12 +205,12 @@ l9 {
};
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>;
......
......@@ -285,13 +285,13 @@ &smd_rpm_regulators {
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 {
......@@ -325,7 +325,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -335,12 +335,12 @@ l9 {
};
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>;
......
......@@ -168,13 +168,13 @@ &smd_rpm_regulators {
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 {
......@@ -208,7 +208,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -218,12 +218,12 @@ l9 {
};
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;
......
......@@ -134,13 +134,13 @@ &smd_rpm_regulators {
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 {
......@@ -174,7 +174,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -184,12 +184,12 @@ l9 {
};
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>;
......
......@@ -326,13 +326,13 @@ &smd_rpm_regulators {
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 {
......@@ -366,7 +366,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -376,12 +376,12 @@ l9 {
};
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>;
......
......@@ -132,13 +132,13 @@ &smd_rpm_regulators {
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 {
......@@ -172,7 +172,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -182,12 +182,12 @@ l9 {
};
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;
......
......@@ -194,13 +194,13 @@ &smd_rpm_regulators {
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 {
......@@ -234,7 +234,7 @@ l7 {
};
l8 {
regulator-min-microvolt = <2850000>;
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
......@@ -244,7 +244,7 @@ l9 {
};
l10 {
regulator-min-microvolt = <2700000>;
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment