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)
 {