summaryrefslogtreecommitdiff
path: root/drivers/mfd/rk808.c
diff options
context:
space:
mode:
authorJoseph Chen <chenjh@rock-chips.com>2017-11-21 10:25:36 +0800
committerTao Huang <huangtao@rock-chips.com>2017-11-22 09:21:15 +0800
commit9ad17c3dbf6473f711003c8f07b7a321f7ebec27 (patch)
tree7597f7cc5581253ef97ca8081ad3fb35f83d8023 /drivers/mfd/rk808.c
parent3599b496986fe2c8ae23d6a152f3b2c3e6e260fa (diff)
mfd: rk808: add rk816 suspend/resume registers setting
set 3.4v interrupt signal assert when suspend, set 3.0v shutdown signal assert when resume. Change-Id: Ie91d8ce6a79e5ea50b654ea52c3ed8acf047f8fb Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Diffstat (limited to 'drivers/mfd/rk808.c')
-rw-r--r--drivers/mfd/rk808.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/mfd/rk808.c b/drivers/mfd/rk808.c
index 4ab58ce8f85b..2a2b1767986d 100644
--- a/drivers/mfd/rk808.c
+++ b/drivers/mfd/rk808.c
@@ -325,6 +325,18 @@ static const struct rk808_reg_data rk816_pre_init_reg[] = {
{ RK816_DCDC_EN_REG2, BOOST_EN_MASK, BOOST_DISABLE },
};
+static struct rk808_reg_data rk816_suspend_reg[] = {
+ /* set bat 3.4v low and act irq */
+ { RK816_VB_MON_REG, VBAT_LOW_VOL_MASK | VBAT_LOW_ACT_MASK,
+ RK816_VBAT_LOW_3V4 | EN_VBAT_LOW_IRQ },
+};
+
+static struct rk808_reg_data rk816_resume_reg[] = {
+ /* set bat 3.0v low and act shutdown*/
+ { RK816_VB_MON_REG, VBAT_LOW_VOL_MASK | VBAT_LOW_ACT_MASK,
+ RK816_VBAT_LOW_3V0 | EN_VABT_LOW_SHUT_DOWN },
+};
+
static const struct regmap_irq rk816_irqs[] = {
/* INT_STS */
[RK816_IRQ_PWRON_FALL] = {
@@ -776,6 +788,10 @@ static int rk808_probe(struct i2c_client *client,
pm_shutdown_fn = rk816_shutdown;
on_source = RK816_ON_SOURCE_REG;
off_source = RK816_OFF_SOURCE_REG;
+ suspend_reg = rk816_suspend_reg;
+ suspend_reg_num = ARRAY_SIZE(rk816_suspend_reg);
+ resume_reg = rk816_resume_reg;
+ resume_reg_num = ARRAY_SIZE(rk816_resume_reg);
break;
case RK808_ID:
cell = rk808s;