Message ID | 20220825164205.4060647-1-dianders@chromium.org |
---|---|
Headers | show |
Series | arm64: dts: qcom: Fix broken regulator spec on RPMH boards | expand |
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: 519183af39b2 ("arm64: dts: qcom: add SA8540P and ADP") > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Konrad > > arch/arm64/boot/dts/qcom/sa8295p-adp.dts | 45 ++++++++++++++++++++++++ > 1 file changed, 45 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sa8295p-adp.dts b/arch/arm64/boot/dts/qcom/sa8295p-adp.dts > index 9398f0349944..6d05cb54e32f 100644 > --- a/arch/arm64/boot/dts/qcom/sa8295p-adp.dts > +++ b/arch/arm64/boot/dts/qcom/sa8295p-adp.dts > @@ -36,6 +36,9 @@ vreg_l3a: ldo3 { > 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_l5a: ldo5 { > @@ -44,6 +47,9 @@ vreg_l5a: ldo5 { > 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_l7a: ldo7 { > @@ -52,6 +58,9 @@ vreg_l7a: ldo7 { > 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_l13a: ldo13 { > @@ -60,6 +69,9 @@ vreg_l13a: 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>; > }; > }; > > @@ -73,6 +85,9 @@ vreg_l1c: ldo1 { > 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_l2c: ldo2 { > @@ -81,6 +96,9 @@ vreg_l2c: ldo2 { > 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_l3c: ldo3 { > @@ -89,6 +107,9 @@ vreg_l3c: 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_l4c: ldo4 { > @@ -97,6 +118,9 @@ vreg_l4c: ldo4 { > 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_l6c: ldo6 { > @@ -105,6 +129,9 @@ vreg_l6c: ldo6 { > 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: ldo7 { > @@ -113,6 +140,9 @@ vreg_l7c: ldo7 { > 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_l10c: ldo10 { > @@ -121,6 +151,9 @@ vreg_l10c: ldo10 { > 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_l17c: ldo17 { > @@ -129,6 +162,9 @@ vreg_l17c: ldo17 { > 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>; > }; > }; > > @@ -142,6 +178,9 @@ vreg_l3g: 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_l7g: ldo7 { > @@ -150,6 +189,9 @@ vreg_l7g: ldo7 { > 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_l8g: ldo8 { > @@ -158,6 +200,9 @@ vreg_l8g: ldo8 { > 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>; > }; > }; > };
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: 32c231385ed4 ("arm64: dts: qcom: sc8280xp: add Lenovo Thinkpad X13s devicetree") > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Konrad > > .../qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 30 +++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts > index 16c6e4d920bb..0c2534b4ec24 100644 > --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts > @@ -80,6 +80,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; > }; > > @@ -89,6 +92,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 { > @@ -97,6 +103,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; > regulator-always-on; // FIXME: VDD_A_EDP_0_0P9 > }; > @@ -112,6 +121,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_l12c: ldo12 { > @@ -120,6 +132,9 @@ vreg_l12c: ldo12 { > 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_l13c: ldo13 { > @@ -128,6 +143,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>; > }; > }; > > @@ -143,6 +161,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 { > @@ -151,6 +172,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_l7d: ldo7 { > @@ -159,6 +183,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 { > @@ -167,6 +194,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: 69cdb97ef652 ("arm64: dts: qcom: sm8250: Add support for SONY Xperia 1 II / 5 II (Edo platform)") > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Konrad > > arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi b/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi > index 549e0a2aa9fe..5428aab3058d 100644 > --- a/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi > @@ -317,6 +317,9 @@ vreg_l6c_2p9: ldo6 { > 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_l7c_2p85: ldo7 { > @@ -339,6 +342,9 @@ vreg_l9c_2p9: ldo9 { > 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_l10c_3p3: ldo10 {
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