diff --git a/drivers/mfd/rk808.c b/drivers/mfd/rk808.c index 168dfcf31203..e53d2b36c59c 100644 --- a/drivers/mfd/rk808.c +++ b/drivers/mfd/rk808.c @@ -784,14 +784,22 @@ static void rk817_shutdown_prepare(void) int ret; struct rk808 *rk808 = i2c_get_clientdata(rk808_i2c_client); - /* close rtc int when power off */ + /* close int when power off */ regmap_update_bits(rk808->regmap, RK817_INT_STS_MSK_REG0, - (0x3 << 5), (0x3 << 5)); + 0xff, 0xff); + regmap_update_bits(rk808->regmap, + RK817_INT_STS_MSK_REG1, + 0xff, 0xff); + regmap_update_bits(rk808->regmap, + RK817_INT_STS_MSK_REG2, + 0xff, 0xff); regmap_update_bits(rk808->regmap, RK817_RTC_INT_REG, (0x3 << 2), (0x0 << 2)); + dev_info(&rk808_i2c_client->dev, "disabled int when device shutdown!\n"); + if (rk808->pins && rk808->pins->p && rk808->pins->power_off) { ret = regmap_update_bits(rk808->regmap, RK817_SYS_CFG(3),