From adb91abb82d6605779f9794c72c49a5f566d73d4 Mon Sep 17 00:00:00 2001 From: Joseph Chen Date: Tue, 21 Nov 2017 10:27:59 +0800 Subject: [PATCH] mfd: rk808: add rk818 suspend/resume registers setting set 3.4v interrupt signal assert when suspend, set 3.0v shutdown signal assert when resume. Change-Id: Id15b721bbdc9665a18cf9946b92c435a23f1666c Signed-off-by: Joseph Chen --- drivers/mfd/rk808.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/mfd/rk808.c b/drivers/mfd/rk808.c index 3ec6e1a6e9d2..20685ee2ed94 100644 --- a/drivers/mfd/rk808.c +++ b/drivers/mfd/rk808.c @@ -432,6 +432,18 @@ static const struct regmap_irq rk816_irqs[] = { }, }; +static struct rk808_reg_data rk818_suspend_reg[] = { + /* set bat 3.4v low and act irq */ + { RK808_VB_MON_REG, VBAT_LOW_VOL_MASK | VBAT_LOW_ACT_MASK, + RK808_VBAT_LOW_3V4 | EN_VBAT_LOW_IRQ }, +}; + +static struct rk808_reg_data rk818_resume_reg[] = { + /* set bat 3.0v low and act shutdown */ + { RK808_VB_MON_REG, VBAT_LOW_VOL_MASK | VBAT_LOW_ACT_MASK, + RK808_VBAT_LOW_3V0 | EN_VABT_LOW_SHUT_DOWN }, +}; + static const struct regmap_irq rk818_irqs[] = { /* INT_STS */ [RK818_IRQ_VOUT_LO] = { @@ -807,6 +819,10 @@ static int rk808_probe(struct i2c_client *client, cells = rk818s; nr_cells = ARRAY_SIZE(rk818s); pm_pwroff_fn = rk818_device_shutdown; + suspend_reg = rk818_suspend_reg; + suspend_reg_num = ARRAY_SIZE(rk818_suspend_reg); + resume_reg = rk818_resume_reg; + resume_reg_num = ARRAY_SIZE(rk818_resume_reg); break; default: dev_err(&client->dev, "Unsupported RK8XX ID %lu\n",