From: zhangqing <zhangqing@rock-chips.com> Date: Wed, 15 Jul 2015 17:35:55 +0000 (-0700) Subject: rk: pmic: rk818: add interface to set ldo sleep state. X-Git-Tag: firefly_0821_release~3897 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ea6b0ae3ddc164dd947238befcde29fc44b32cb6;p=firefly-linux-kernel-4.4.55.git rk: pmic: rk818: add interface to set ldo sleep state. add interface to set ldo sleep state, which hope can dynamically modify the ldo sleep state. Signed-off-by: chenjianhong <chenjianhong@rock-chips.com> --- diff --git a/drivers/mfd/rk818.c b/drivers/mfd/rk818.c index 5b69cdeba18c..ff24a2f87f25 100755 --- a/drivers/mfd/rk818.c +++ b/drivers/mfd/rk818.c @@ -278,6 +278,37 @@ static int rk818_ldo_suspend_disable(struct regulator_dev *dev) return rk818_set_bits(rk818, RK818_SLEEP_SET_OFF_REG2, 1 << ldo, 1 << ldo); } + +int rk818_ldo_slp_enable(int ldo_id) +{ + int ldo = ldo_id - 1; + + if (ldo == 8) + return rk818_set_bits(g_rk818, RK818_SLEEP_SET_OFF_REG1, + 1 << 5, 0); /*ldo9*/ + else if (ldo == 9) + return rk818_set_bits(g_rk818, RK818_SLEEP_SET_OFF_REG1, + 1 << 6, 0); /*ldo10 switch*/ + else + return rk818_set_bits(g_rk818, RK818_SLEEP_SET_OFF_REG2, + 1 << ldo, 0); +} + +int rk818_ldo_slp_disable(int ldo_id) +{ + int ldo = ldo_id - 1; + + if (ldo == 8) + return rk818_set_bits(g_rk818, RK818_SLEEP_SET_OFF_REG1, + 1 << 5, 1 << 5); /*ldo9*/ + else if (ldo == 9) + return rk818_set_bits(g_rk818, RK818_SLEEP_SET_OFF_REG1, + 1 << 6, 1 << 6); /*ldo10 switch*/ + else + return rk818_set_bits(g_rk818, RK818_SLEEP_SET_OFF_REG2, + 1 << ldo, 1 << ldo); +} + static int rk818_ldo_set_sleep_voltage(struct regulator_dev *dev, int uV) {