• Maciej Purski's avatar
    regulator: core: Change voltage setting path · 456e7cdf
    Maciej Purski authored
    On Odroid XU3/4 and other Exynos5422 based boards there is a case, that
    different devices on the board are supplied by different regulators
    with non-fixed voltages. If one of these devices temporarily requires
    higher voltage, there might occur a situation that the spread between
    two devices' voltages is so high, that there is a risk of changing
    'high' and 'low' states on the interconnection between devices powered
    by those regulators.
    
    Uncoupled regulators should be a special case of coupled regulators, so
    they should share a common voltage setting path. When enabling,
    disabling or setting voltage of a coupled regulator, all coupled
    regulators should be locked. Regulator's supplies should be locked, when
    setting voltage of a single regulator. Enabling a coupled regulator or
    setting its voltage should not be possible if some of its coupled
    regulators, has not been registered.
    
    Add function for locking coupled regulators and supplies. Extract
    a new function regulator_set_voltage_rdev() from
    regulator_set_voltage_unlocked(), which is called when setting
    voltage of a single regulator.
    Signed-off-by: default avatarMaciej Purski <m.purski@samsung.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    456e7cdf
core.c 130 KB