On 09/09/2022 13:25, Linus Walleij wrote: > On recent kernels, the PM8058 L16 (or any other PM8058 LDO-regulator) > does not come up if they are supplied by an SMPS-regulator. This > is not very strange since the regulators are registered in a long > array and the L-regulators are registered before the S-regulators, > and if an L-regulator defers, it will never get around to registering > the S-regulator that it needs. > > See arch/arm/boot/dts/qcom-apq8060-dragonboard.dts: > > pm8058-regulators { > (...) > vdd_l13_l16-supply = <&pm8058_s4>; > (...) > > Ooops. > > Fix this by moving the PM8058 S-regulators first in the array. > > Do the same for the PM8901 S-regulators (though this is currently > not causing any problems with out device trees) so that the pattern > of registration order is the same on all PMnnnn chips. > > Fixes: 087a1b5cdd55 ("regulator: qcom: Rework to single platform device") > Cc: stable@xxxxxxxxxxxxxxx > Cc: Andy Gross <agross@xxxxxxxxxx> > Cc: Bjorn Andersson <andersson@xxxxxxxxxx> > Cc: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxx> > Cc: linux-arm-msm@xxxxxxxxxxxxxxx > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > drivers/regulator/qcom_rpm-regulator.c | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) > > diff --git a/drivers/regulator/qcom_rpm-regulator.c b/drivers/regulator/qcom_rpm-regulator.c > index 7f9d66ac37ff..3c41b71a1f52 100644 > --- a/drivers/regulator/qcom_rpm-regulator.c > +++ b/drivers/regulator/qcom_rpm-regulator.c > @@ -802,6 +802,12 @@ static const struct rpm_regulator_data rpm_pm8018_regulators[] = { > }; > > static const struct rpm_regulator_data rpm_pm8058_regulators[] = { > + { "s0", QCOM_RPM_PM8058_SMPS0, &pm8058_smps, "vdd_s0" }, > + { "s1", QCOM_RPM_PM8058_SMPS1, &pm8058_smps, "vdd_s1" }, > + { "s2", QCOM_RPM_PM8058_SMPS2, &pm8058_smps, "vdd_s2" }, > + { "s3", QCOM_RPM_PM8058_SMPS3, &pm8058_smps, "vdd_s3" }, > + { "s4", QCOM_RPM_PM8058_SMPS4, &pm8058_smps, "vdd_s4" }, > + Would be great to have here a comment like "S-regulators (being used as supplies) must come before the rest". Same also in second table. We like to re-order some things from time to time and no one would think about checking Git history for any issues with it. Best regards, Krzysztof