From ef343c530a761e891cbb777dc4c0d359042b651c Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=BC=A0=E6=99=B4?= Date: Thu, 23 Oct 2014 16:59:08 +0800 Subject: [PATCH] rk312x:rt5036:support power off when charge --- drivers/mfd/rt5036-misc.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/mfd/rt5036-misc.c b/drivers/mfd/rt5036-misc.c index 9dd6ad6db022..3a3bd7c2df07 100755 --- a/drivers/mfd/rt5036-misc.c +++ b/drivers/mfd/rt5036-misc.c @@ -25,6 +25,7 @@ #include #include +#include static struct i2c_client *g_shdn; @@ -71,9 +72,17 @@ EXPORT_SYMBOL(rt5036_vin_exist); static bool rt_pm_off; void rt5036_chip_shutdown(void) { - if (g_shdn) { - rt5036_set_bits(g_shdn, RT5036_REG_MISC3, RT5036_CHIPSHDN_MASK); - rt5036_clr_bits(g_shdn, RT5036_REG_MISC3, RT5036_CHIPSHDN_MASK); + pr_info("%s\n", __func__); + if (rt5036_vin_exist()) { + arm_pm_restart('h', "charge"); + } else { + if (g_shdn) { + pr_info("chip enter shutdown process\n"); + rt5036_set_bits(g_shdn, RT5036_REG_MISC3, + RT5036_CHIPSHDN_MASK); + rt5036_clr_bits(g_shdn, RT5036_REG_MISC3, + RT5036_CHIPSHDN_MASK); + } } } EXPORT_SYMBOL(rt5036_chip_shutdown); -- 2.34.1