Message ID | 20220825164205.4060647-1-dianders@chromium.org |
---|---|
Headers | show |
Series | arm64: dts: qcom: Fix broken regulator spec on RPMH boards | expand |
On Thu, Aug 25, 2022 at 09:41:59AM -0700, Douglas Anderson wrote: > This board uses RPMH, specifies "regulator-allow-set-load" for LDOs, > but doesn't specify any modes with "regulator-allowed-modes". > > Prior to commit efb0cb50c427 ("regulator: qcom-rpmh: Implement > get_optimum_mode(), not set_load()") the above meant that we were able > to set either LPM or HPM mode. After that commit (and fixes [1]) we'll > be stuck at the initial mode. Discussion of this has resulted in the > decision that the old dts files were wrong and should be fixed to > fully restore old functionality. > > Let's re-enable the old functionality by fixing the dts. > > [1] https://lore.kernel.org/r/20220824142229.RFT.v2.2.I6f77860e5cd98bf5c67208fa9edda4a08847c304@changeid > > Fixes: 5b85e8f2225c ("arm64: dts: qcom: sa8155p-adp: Add base dts file") > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- > > arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/sa8155p-adp.dts b/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > index ba547ca9fc6b..ddb9cb182152 100644 > --- a/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > +++ b/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > @@ -43,7 +43,6 @@ vreg_s4a_1p8: smps4 { > > regulator-always-on; > regulator-boot-on; > - regulator-allow-set-load; I could see this deserving its own commit or a line in the commit message, but not a big deal to me: Reviewed-by: Andrew Halaney <ahalaney@redhat.com> > > vin-supply = <&vreg_3p3>; > }; > @@ -137,6 +136,9 @@ vreg_l5a_0p88: ldo5 { > regulator-max-microvolt = <880000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7a_1p8: ldo7 { > @@ -152,6 +154,9 @@ vreg_l10a_2p96: ldo10 { > regulator-max-microvolt = <2960000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l11a_0p8: ldo11 { > @@ -258,6 +263,9 @@ vreg_l5c_1p2: ldo5 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7c_1p8: ldo7 { > @@ -273,6 +281,9 @@ vreg_l8c_1p2: ldo8 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l10c_3p3: ldo10 { > -- > 2.37.2.672.g94769d06f0-goog >
On Thu, Aug 25, 2022 at 09:42:01AM -0700, Douglas Anderson wrote: > This board uses RPMH, specifies "regulator-allow-set-load" for LDOs, > but doesn't specify any modes with "regulator-allowed-modes". > > Prior to commit efb0cb50c427 ("regulator: qcom-rpmh: Implement > get_optimum_mode(), not set_load()") the above meant that we were able > to set either LPM or HPM mode. After that commit (and fixes [1]) we'll > be stuck at the initial mode. Discussion of this has resulted in the > decision that the old dts files were wrong and should be fixed to > fully restore old functionality. > > Let's re-enable the old functionality by fixing the dts. > > [1] https://lore.kernel.org/r/20220824142229.RFT.v2.2.I6f77860e5cd98bf5c67208fa9edda4a08847c304@changeid > > Fixes: ccd3517faf18 ("arm64: dts: qcom: sc8280xp: Add reference device") > Signed-off-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Andrew Halaney <ahalaney@redhat.com> > --- > > arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 33 +++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts > index d6f272c71a47..f64d58e371bd 100644 > --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts > @@ -88,6 +88,9 @@ vreg_l3b: ldo3 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > regulator-boot-on; > regulator-always-on; > }; > @@ -98,6 +101,9 @@ vreg_l4b: ldo4 { > regulator-max-microvolt = <912000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l6b: ldo6 { > @@ -106,6 +112,9 @@ vreg_l6b: ldo6 { > regulator-max-microvolt = <880000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > regulator-boot-on; > }; > }; > @@ -120,6 +129,9 @@ vreg_l1c: ldo1 { > regulator-max-microvolt = <1800000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7c: ldo7 { > @@ -128,6 +140,9 @@ vreg_l7c: ldo7 { > regulator-max-microvolt = <2504000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l13c: ldo13 { > @@ -136,6 +151,9 @@ vreg_l13c: ldo13 { > regulator-max-microvolt = <3072000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > }; > > @@ -151,6 +169,9 @@ vreg_l3d: ldo3 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l4d: ldo4 { > @@ -159,6 +180,9 @@ vreg_l4d: ldo4 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l6d: ldo6 { > @@ -167,6 +191,9 @@ vreg_l6d: ldo6 { > regulator-max-microvolt = <880000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7d: ldo7 { > @@ -175,6 +202,9 @@ vreg_l7d: ldo7 { > regulator-max-microvolt = <3072000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l9d: ldo9 { > @@ -183,6 +213,9 @@ vreg_l9d: ldo9 { > regulator-max-microvolt = <912000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > }; > }; > -- > 2.37.2.672.g94769d06f0-goog >
On Thu, Aug 25, 2022 at 09:42:05AM -0700, Douglas Anderson wrote: > This board uses RPMH, specifies "regulator-allow-set-load" for LDOs, > but doesn't specify any modes with "regulator-allowed-modes". > > Prior to commit efb0cb50c427 ("regulator: qcom-rpmh: Implement > get_optimum_mode(), not set_load()") the above meant that we were able > to set either LPM or HPM mode. After that commit (and fixes [1]) we'll > be stuck at the initial mode. Discussion of this has resulted in the > decision that the old dts files were wrong and should be fixed to > fully restore old functionality. > > Let's re-enable the old functionality by fixing the dts. > > [1] https://lore.kernel.org/r/20220824142229.RFT.v2.2.I6f77860e5cd98bf5c67208fa9edda4a08847c304@changeid > > Fixes: 9208c19f2124 ("arm64: dts: qcom: Introduce SM8350 HDK") > Signed-off-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Andrew Halaney <ahalaney@redhat.com> > --- > > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 0fcf5bd88fc7..69ae6503c2f6 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -107,6 +107,9 @@ vreg_l5b_0p88: ldo5 { > regulator-max-microvolt = <888000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l6b_1p2: ldo6 { > @@ -115,6 +118,9 @@ vreg_l6b_1p2: ldo6 { > regulator-max-microvolt = <1208000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7b_2p96: ldo7 { > @@ -123,6 +129,9 @@ vreg_l7b_2p96: ldo7 { > regulator-max-microvolt = <2504000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l9b_1p2: ldo9 { > @@ -131,6 +140,9 @@ vreg_l9b_1p2: ldo9 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > }; > > -- > 2.37.2.672.g94769d06f0-goog >
Hi, On Thu, Aug 25, 2022 at 2:31 PM Andrew Halaney <ahalaney@redhat.com> wrote: > > On Thu, Aug 25, 2022 at 09:41:59AM -0700, Douglas Anderson wrote: > > This board uses RPMH, specifies "regulator-allow-set-load" for LDOs, > > but doesn't specify any modes with "regulator-allowed-modes". > > > > Prior to commit efb0cb50c427 ("regulator: qcom-rpmh: Implement > > get_optimum_mode(), not set_load()") the above meant that we were able > > to set either LPM or HPM mode. After that commit (and fixes [1]) we'll > > be stuck at the initial mode. Discussion of this has resulted in the > > decision that the old dts files were wrong and should be fixed to > > fully restore old functionality. > > > > Let's re-enable the old functionality by fixing the dts. > > > > [1] https://lore.kernel.org/r/20220824142229.RFT.v2.2.I6f77860e5cd98bf5c67208fa9edda4a08847c304@changeid > > > > Fixes: 5b85e8f2225c ("arm64: dts: qcom: sa8155p-adp: Add base dts file") > > Signed-off-by: Douglas Anderson <dianders@chromium.org> > > --- > > > > arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 13 ++++++++++++- > > 1 file changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/arch/arm64/boot/dts/qcom/sa8155p-adp.dts b/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > > index ba547ca9fc6b..ddb9cb182152 100644 > > --- a/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > > +++ b/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > > @@ -43,7 +43,6 @@ vreg_s4a_1p8: smps4 { > > > > regulator-always-on; > > regulator-boot-on; > > - regulator-allow-set-load; > > I could see this deserving its own commit or a line in the commit > message, but not a big deal to me: > > Reviewed-by: Andrew Halaney <ahalaney@redhat.com> Ah right. I mentioned it in the cover letter but forgot to mention it in this commit message. I'll assume that this isn't a big deal but if Bjorn wants a quick spin with this mentioned in the commit message (or broken into a separate commit) then I can do so. I'll wait for direction before spinning, though. -Doug
On Thu, Aug 25, 2022 at 09:41:58AM -0700, Douglas Anderson wrote: > Prior to commit efb0cb50c427 ("regulator: qcom-rpmh: Implement > get_optimum_mode(), not set_load()") several boards were able to > change their regulator mode even though they had nothing listed in > "regulator-allowed-modes". After that commit (and fixes [1]) we'll be > stuck at the initial mode. Discussion of this (again, see [1]) has > resulted in the decision that the old dts files were wrong and should > be fixed to fully restore old functionality. > > This series attempts to fix everyone. I've kept each board in a > separate patch to make stable / backports work easier. > > Affected boards were found with: > rpmh_users=$(git grep -l -i rpmh -- arch/arm*/boot/dts/qcom) > set_modes=$(grep -l regulator-allow-set-load ${rpmh_users}) > but_no_allowed_modes=$(grep -l -v regulator-allowed-modes ${set_modes}) > > Fix was applied with: > for f in ${but_no_allowed_modes}; do > sed -i~ -e \ > 's/^\(\s*\)regulator-allow-set-load;/\1regulator-allow-set-load;\n\1regulator-allowed-modes =\n\1 <RPMH_REGULATOR_MODE_LPM\n\1 RPMH_REGULATOR_MODE_HPM>;/'\ > $f > done > > Then results were manually inspected. In one board I removed a > "regulator-allow-set-load" from a fixed regulator since that was > clearly wrong. > > [1] https://lore.kernel.org/r/20220824142229.RFT.v2.2.I6f77860e5cd98bf5c67208fa9edda4a08847c304@changeid > > > Douglas Anderson (7): > arm64: dts: qcom: sa8155p-adp: Specify which LDO modes are allowed > arm64: dts: qcom: sa8295p-adp: Specify which LDO modes are allowed > arm64: dts: qcom: sc8280xp-crd: Specify which LDO modes are allowed These two should be rebased on https://lore.kernel.org/all/20220803121942.30236-1-johan+linaro@kernel.org/ which disallows mode-switching for all but the UFS regulators (this series addresses the DP PHY LPM regression we've discussed elsewhere). > arm64: dts: qcom: sc8280xp-thinkpad-x13s: Specify which LDO modes are > allowed And this one should not be needed at all with the above series applied. > arm64: dts: qcom: sm8150-xperia-kumano: Specify which LDO modes are > allowed > arm64: dts: qcom: sm8250-xperia-edo: Specify which LDO modes are > allowed > arm64: dts: qcom: sm8350-hdk: Specify which LDO modes are allowed Johan
On 25.08.2022 18:41, Douglas Anderson wrote: > This board uses RPMH, specifies "regulator-allow-set-load" for LDOs, > but doesn't specify any modes with "regulator-allowed-modes". > > Prior to commit efb0cb50c427 ("regulator: qcom-rpmh: Implement > get_optimum_mode(), not set_load()") the above meant that we were able > to set either LPM or HPM mode. After that commit (and fixes [1]) we'll > be stuck at the initial mode. Discussion of this has resulted in the > decision that the old dts files were wrong and should be fixed to > fully restore old functionality. > > Let's re-enable the old functionality by fixing the dts. > > [1] https://lore.kernel.org/r/20220824142229.RFT.v2.2.I6f77860e5cd98bf5c67208fa9edda4a08847c304@changeid > > Fixes: 5b85e8f2225c ("arm64: dts: qcom: sa8155p-adp: Add base dts file") > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Konrad > > arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/sa8155p-adp.dts b/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > index ba547ca9fc6b..ddb9cb182152 100644 > --- a/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > +++ b/arch/arm64/boot/dts/qcom/sa8155p-adp.dts > @@ -43,7 +43,6 @@ vreg_s4a_1p8: smps4 { > > regulator-always-on; > regulator-boot-on; > - regulator-allow-set-load; > > vin-supply = <&vreg_3p3>; > }; > @@ -137,6 +136,9 @@ vreg_l5a_0p88: ldo5 { > regulator-max-microvolt = <880000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7a_1p8: ldo7 { > @@ -152,6 +154,9 @@ vreg_l10a_2p96: ldo10 { > regulator-max-microvolt = <2960000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l11a_0p8: ldo11 { > @@ -258,6 +263,9 @@ vreg_l5c_1p2: ldo5 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7c_1p8: ldo7 { > @@ -273,6 +281,9 @@ vreg_l8c_1p2: ldo8 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l10c_3p3: ldo10 {
On 25.08.2022 18:42, Douglas Anderson wrote: > This board uses RPMH, specifies "regulator-allow-set-load" for LDOs, > but doesn't specify any modes with "regulator-allowed-modes". > > Prior to commit efb0cb50c427 ("regulator: qcom-rpmh: Implement > get_optimum_mode(), not set_load()") the above meant that we were able > to set either LPM or HPM mode. After that commit (and fixes [1]) we'll > be stuck at the initial mode. Discussion of this has resulted in the > decision that the old dts files were wrong and should be fixed to > fully restore old functionality. > > Let's re-enable the old functionality by fixing the dts. > > [1] https://lore.kernel.org/r/20220824142229.RFT.v2.2.I6f77860e5cd98bf5c67208fa9edda4a08847c304@changeid > > Fixes: ccd3517faf18 ("arm64: dts: qcom: sc8280xp: Add reference device") > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Konrad > > arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 33 +++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts > index d6f272c71a47..f64d58e371bd 100644 > --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts > @@ -88,6 +88,9 @@ vreg_l3b: ldo3 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > regulator-boot-on; > regulator-always-on; > }; > @@ -98,6 +101,9 @@ vreg_l4b: ldo4 { > regulator-max-microvolt = <912000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l6b: ldo6 { > @@ -106,6 +112,9 @@ vreg_l6b: ldo6 { > regulator-max-microvolt = <880000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > regulator-boot-on; > }; > }; > @@ -120,6 +129,9 @@ vreg_l1c: ldo1 { > regulator-max-microvolt = <1800000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7c: ldo7 { > @@ -128,6 +140,9 @@ vreg_l7c: ldo7 { > regulator-max-microvolt = <2504000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l13c: ldo13 { > @@ -136,6 +151,9 @@ vreg_l13c: ldo13 { > regulator-max-microvolt = <3072000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > }; > > @@ -151,6 +169,9 @@ vreg_l3d: ldo3 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l4d: ldo4 { > @@ -159,6 +180,9 @@ vreg_l4d: ldo4 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l6d: ldo6 { > @@ -167,6 +191,9 @@ vreg_l6d: ldo6 { > regulator-max-microvolt = <880000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7d: ldo7 { > @@ -175,6 +202,9 @@ vreg_l7d: ldo7 { > regulator-max-microvolt = <3072000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l9d: ldo9 { > @@ -183,6 +213,9 @@ vreg_l9d: ldo9 { > regulator-max-microvolt = <912000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > }; > };
On 25.08.2022 18:42, Douglas Anderson wrote: > This board uses RPMH, specifies "regulator-allow-set-load" for LDOs, > but doesn't specify any modes with "regulator-allowed-modes". > > Prior to commit efb0cb50c427 ("regulator: qcom-rpmh: Implement > get_optimum_mode(), not set_load()") the above meant that we were able > to set either LPM or HPM mode. After that commit (and fixes [1]) we'll > be stuck at the initial mode. Discussion of this has resulted in the > decision that the old dts files were wrong and should be fixed to > fully restore old functionality. > > Let's re-enable the old functionality by fixing the dts. > > [1] https://lore.kernel.org/r/20220824142229.RFT.v2.2.I6f77860e5cd98bf5c67208fa9edda4a08847c304@changeid > > Fixes: 9208c19f2124 ("arm64: dts: qcom: Introduce SM8350 HDK") > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Konrad > > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 0fcf5bd88fc7..69ae6503c2f6 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -107,6 +107,9 @@ vreg_l5b_0p88: ldo5 { > regulator-max-microvolt = <888000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l6b_1p2: ldo6 { > @@ -115,6 +118,9 @@ vreg_l6b_1p2: ldo6 { > regulator-max-microvolt = <1208000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l7b_2p96: ldo7 { > @@ -123,6 +129,9 @@ vreg_l7b_2p96: ldo7 { > regulator-max-microvolt = <2504000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > > vreg_l9b_1p2: ldo9 { > @@ -131,6 +140,9 @@ vreg_l9b_1p2: ldo9 { > regulator-max-microvolt = <1200000>; > regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > regulator-allow-set-load; > + regulator-allowed-modes = > + <RPMH_REGULATOR_MODE_LPM > + RPMH_REGULATOR_MODE_HPM>; > }; > }; >
Hi, On Fri, Aug 26, 2022 at 12:02 AM Johan Hovold <johan@kernel.org> wrote: > > > Douglas Anderson (7): > > arm64: dts: qcom: sa8155p-adp: Specify which LDO modes are allowed > > > arm64: dts: qcom: sa8295p-adp: Specify which LDO modes are allowed > > arm64: dts: qcom: sc8280xp-crd: Specify which LDO modes are allowed > > These two should be rebased on > > https://lore.kernel.org/all/20220803121942.30236-1-johan+linaro@kernel.org/ > > which disallows mode-switching for all but the UFS regulators (this > series addresses the DP PHY LPM regression we've discussed elsewhere). > > > arm64: dts: qcom: sc8280xp-thinkpad-x13s: Specify which LDO modes are > > allowed > > And this one should not be needed at all with the above series applied. > > > arm64: dts: qcom: sm8150-xperia-kumano: Specify which LDO modes are > > allowed > > arm64: dts: qcom: sm8250-xperia-edo: Specify which LDO modes are > > allowed > > arm64: dts: qcom: sm8350-hdk: Specify which LDO modes are allowed Thanks! v2 has been sent and it's rebased upon your series: https://lore.kernel.org/r/20220829164952.2672848-1-dianders@chromium.org