Skip to content
  • Olliver Schinagl's avatar
    power: axp209: Limit inrush current for broken boards · ef52605e
    Olliver Schinagl authored and Jagan Teki's avatar Jagan Teki committed
    Some boards feature a capacitance on LDO3's output that is too large,
    causing inrush currents which as a result, shut down the AXP209. This
    has been reported before, without knowing the actual cause.
    
    A fix appeared to be done with
    commit 0e6e34ac
    
     ("sunxi: Olimex A20 boards: Enable LDO3 and LDO4 regulators").
    
    The description there is a bit misleading, the kernel does not hang
    during AXP209 initialization, the PMIC shuts down, causing voltages to
    drop and thus the whole system freezes.
    
    While the AXP209 does have the ability to ramp up the voltage slowly, to
    reduce these inrush currents, the voltage rate control (VRC) however is
    not applicable when switching on the LDO3 output. Only when going from
    an enabled lower voltage setting, to a higher voltage setting is the VRC
    in effect.
    
    To work around this problem, we set LDO3 to the lowest possible setting
    of 0.7 V if it was not yet enabled, and then let the VRC (if enabled) do
    its thing. It should be noted, that for some undocumented reason, there
    is a short delay needed between setting the LDO3 voltage register and
    enabling the power. One would expect that this delay ought to be just
    after enabling the output power at 0.7 V, but this did not work.
    
    Signed-off-by: default avatarOlliver Schinagl <oliver@schinagl.nl>
    Signed-off-by: default avatarPriit Laes <plaes@plaes.org>
    Acked-by: Maxime Ripard's avatarMaxime Ripard <maxime.ripard@bootlin.com>
    ef52605e