diff --git a/drivers/regulator/rk808-regulator.c b/drivers/regulator/rk808-regulator.c index b78ebd2e3524..7c59fb1ea657 100644 --- a/drivers/regulator/rk808-regulator.c +++ b/drivers/regulator/rk808-regulator.c @@ -386,18 +386,13 @@ static int rk816_set_suspend_enable(struct regulator_dev *rdev) if (rdev->desc->id <= RK816_ID_DCDC4) { reg = rdev->desc->enable_reg + RK816_DCDC_SLP_EN_REG_OFFSET; - val = 1 << rdev->desc->id; - } - - if ((rdev->desc->id > RK816_ID_DCDC4) && - (rdev->desc->id <= RK816_ID_LDO4)) { + val = 1 << rdev->desc->id; + } else if ((rdev->desc->id > RK816_ID_DCDC4) && + (rdev->desc->id <= RK816_ID_LDO4)) { reg = rdev->desc->enable_reg - RK816_LDO1_4_SLP_EN_REG_OFFSET; val = 1 << (rdev->desc->id - RK816_ID_LDO1); - } - - if ((rdev->desc->id > RK816_ID_LDO4) && - (rdev->desc->id <= RK816_ID_LDO6)) { + } else { reg = rdev->desc->enable_reg - RK816_LDO5_6_SLP_EN_REG_OFFSET; val = 1 << (rdev->desc->id - RK816_ID_LDO1); @@ -412,21 +407,20 @@ static int rk816_set_suspend_disable(struct regulator_dev *rdev) { unsigned int reg, val; - if (rdev->desc->id <= RK816_ID_DCDC4) + if (rdev->desc->id <= RK816_ID_DCDC4) { reg = rdev->desc->enable_reg + RK816_DCDC_SLP_EN_REG_OFFSET; - - if ((rdev->desc->id > RK816_ID_DCDC4) && - (rdev->desc->id <= RK816_ID_LDO4)) + val = 1 << rdev->desc->id; + } else if ((rdev->desc->id > RK816_ID_DCDC4) && + (rdev->desc->id <= RK816_ID_LDO4)) { reg = rdev->desc->enable_reg - RK816_LDO1_4_SLP_EN_REG_OFFSET; - - if ((rdev->desc->id > RK816_ID_LDO4) && - (rdev->desc->id <= RK816_ID_LDO6)) + val = 1 << (rdev->desc->id - RK816_ID_LDO1); + } else { reg = rdev->desc->enable_reg - RK816_LDO5_6_SLP_EN_REG_OFFSET; - - val = 1 << (rdev->desc->id % 8); + val = 1 << (rdev->desc->id - RK816_ID_LDO1); + } return regmap_update_bits(rdev->regmap, reg, val,