• Axel Lin's avatar
    regulator: twl: Fix the formula to calculate vsel and voltage for twl6030ldo · a3cb80f4
    Axel Lin authored
    In twl6030ldo_set_voltage, current code use below formula to calculate vsel:
            vsel = (min_uV/1000 - 1000)/100 + 1;
    This is worng because when min_uV is 1000000 uV, vsel is 1.
    It should be 0 in this case.
    Fix it by change the equation to: (This equation is common for linear mapping)
            vsel = DIV_ROUND_UP(min_uV - rdev->desc->min_uV, rdev->desc->uV_step);
    
    In twl6030ldo_get_voltage, current code use below formula to calculate voltage:
            mV = 1000mv + 100mv * (vsel - 1)
    This is worng because when vsel is 0, mV is 900mV. Note the min_uV is 1000mV.
    Fix it by change the equation to: (This equation is common for linear mapping)
            return rdev->desc->min_uV + vsel * rdev->desc->uV_step;
    Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    a3cb80f4
twl-regulator.c 33.6 KB