regulator: rk808: rk816: fix up the DCDC and LDO setting off in sleep mode

Change-Id: I1022a7a8951a3115ac01a43f2165b5eac6202ab4
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
This commit is contained in:
shengfei Xu 2017-12-06 15:04:21 +08:00 committed by Tao Huang
commit 7051792ae3

View file

@ -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,