]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
power: max77620: power off the device with SFT_RST
authorLaxman Dewangan <ldewangan@nvidia.com>
Thu, 27 Aug 2015 10:41:36 +0000 (16:11 +0530)
committermobile promotions <svcmobile_promotions@nvidia.com>
Fri, 28 Aug 2015 23:41:53 +0000 (16:41 -0700)
Power off device using SFT_RST = 1 and SFT_RST_WK=0 instead of
SFT_RST=1 and PWR_OFF =1.

This will avoid PMIC malfunctioning sometime and cause system to
not power on by power key.

bug 1676570

Change-Id: I58aaed9834e2a7f6458a1107b7950f2c5fcc162a
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/790321

drivers/power/reset/max77620-poweroff.c

index ccd8c5b50b1239acd1c752fe535f46e7de2294e6..dc2734d6425716f28d46ddcbe6aecc36c3c00c3c 100644 (file)
@@ -236,13 +236,19 @@ static void max77620_pm_power_off(void *drv_data)
        if (max77620_poweroff->need_rtc_power_on)
                max77620_auto_power_on(max77620_poweroff);
 
+       ret = max77620_reg_update(max77620_poweroff->max77620->dev,
+               MAX77620_PWR_SLAVE, MAX77620_REG_ONOFFCNFG2,
+               MAX77620_ONOFFCNFG2_SFT_RST_WK, 0);
+       if (ret < 0)
+               dev_err(max77620_poweroff->dev,
+                       "ONOFFCNFG2 update for SFT_RST_WK failed, %d\n", ret);
+
        ret = max77620_reg_update(max77620_poweroff->max77620->dev,
                MAX77620_PWR_SLAVE, MAX77620_REG_ONOFFCNFG1,
-               MAX77620_ONOFFCNFG1_PWR_OFF | MAX77620_ONOFFCNFG1_SFT_RST,
-               MAX77620_ONOFFCNFG1_PWR_OFF | MAX77620_ONOFFCNFG1_SFT_RST);
+               MAX77620_ONOFFCNFG1_SFT_RST, MAX77620_ONOFFCNFG1_SFT_RST);
        if (ret < 0)
                dev_err(max77620_poweroff->dev,
-                       "REG_ONOFFCNFG1 update failed, %d\n", ret);
+                       "ONOFFCNFG1 update for SFT_RST failed, %d\n", ret);
 }
 
 static void max77620_pm_power_reset(void *drv_data)