• S
    regulator: core: Propagate voltage changes to supply regulators · fc42112c
    Sascha Hauer 提交于
    Until now changing the voltage of a regulator only ever effected the
    regulator itself, but never its supplies. It's a common pattern though
    to put LDO regulators behind switching regulators. The switching
    regulators efficiently drop the input voltage but have a high ripple on
    their output. The output is then cleaned up by the LDOs. For higher
    energy efficiency the voltage drop at the LDOs should be minimized. For
    this scenario we need to propagate the voltage change to the supply
    regulators. Another scenario where voltage propagation is desired is
    a regulator which only consists of a switch and thus cannot regulate
    voltages itself. In this case we can pass setting voltages to the
    supply.
    
    This patch adds support for voltage propagation. We do voltage
    propagation when the current regulator has a minimum dropout voltage
    specified or if the current regulator lacks a get_voltage operation
    (indicating it's a switch and not a regulator).
    
    Changing the supply voltage must be done carefully. When we are
    increasing the current regulators output we must first increase the
    supply voltage and then the regulator itself. When we are decreasing the
    current regulators voltage we must decrease the supply voltage after
    changing the current regulators voltage.
    Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: NMark Brown <broonie@kernel.org>
    fc42112c
core.c 111.4 KB