On Tue, Oct 8, 2024 at 6:30 AM Andre Przywara <andre.przywara@xxxxxxx> wrote: > > The DCDC5 voltage rail in the X-Powers AXP809 PMIC has a resolution of > 50mV, so the currently enforced limits of 1.475 and 1.525 volts cannot > be set, when the existing regulator value is beyond this range. > > This will lead to the whole regulator driver to give up and fail > probing, which in turn will hang the system, as essential devices depend > on the PMIC. > In this case a bug in U-Boot set the voltage to 1.75V (meant for DCDC4), > and the AXP driver's attempt to correct this lead to this error: > ================== > [ 4.447653] axp20x-rsb sunxi-rsb-3a3: AXP20X driver loaded > [ 4.450066] vcc-dram: Bringing 1750000uV into 1575000-1575000uV > [ 4.460272] vcc-dram: failed to apply 1575000-1575000uV constraint: -EINVAL > [ 4.474788] axp20x-regulator axp20x-regulator.0: Failed to register dcdc5 > [ 4.482276] axp20x-regulator axp20x-regulator.0: probe with driver axp20x-regulator failed with error -22 > ================== > > Set the limits to values that can be programmed, so any correction will > be successful. > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> Maybe Fixes: 1e1dea72651b ("ARM: dts: sun9i: cubieboard4: Add AXP809 PMIC device node and regulators") What do you think? I can add it when applying. ChenYu > --- > arch/arm/boot/dts/allwinner/sun9i-a80-cubieboard4.dts | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/dts/allwinner/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/allwinner/sun9i-a80-cubieboard4.dts > index c8ca8cb7f5c94..52ad95a2063aa 100644 > --- a/arch/arm/boot/dts/allwinner/sun9i-a80-cubieboard4.dts > +++ b/arch/arm/boot/dts/allwinner/sun9i-a80-cubieboard4.dts > @@ -280,8 +280,8 @@ reg_dcdc4: dcdc4 { > > reg_dcdc5: dcdc5 { > regulator-always-on; > - regulator-min-microvolt = <1425000>; > - regulator-max-microvolt = <1575000>; > + regulator-min-microvolt = <1450000>; > + regulator-max-microvolt = <1550000>; > regulator-name = "vcc-dram"; > }; > > -- > 2.46.2 >