summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorwahsu <wahsu@nvidia.com>2014-04-21 20:09:58 +0530
committerMandar Padmawar <mpadmawar@nvidia.com>2014-04-23 07:54:01 -0700
commit7defa0956f380999706574d21613444f59a81a14 (patch)
treeec89955ad21addb920c3abe84419ba6e42764b6e /drivers/power
parentdfc5b4a3b1e57fffcc59db8d81b837db975261c5 (diff)
power: reset: palmas: configure system for reset before issuing reset
Configure the Palmas for SW cold reset before issuing the COLDRST_SW. bug 1483874 Change-Id: Ic375e5225f7c88982fbaed33dfd3c3b4f24208e7 Signed-off-by: wahsu <wahsu@nvidia.com> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-on: http://git-master/r/398999 (cherry picked from commit 11ed317a31f17ab28c8f3f72eb463f12cbbcbb4a) Reviewed-on: http://git-master/r/400007
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/reset/palmas-poweroff.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/power/reset/palmas-poweroff.c b/drivers/power/reset/palmas-poweroff.c
index aa55882f2d58..6108d1a72c9d 100644
--- a/drivers/power/reset/palmas-poweroff.c
+++ b/drivers/power/reset/palmas-poweroff.c
@@ -205,6 +205,15 @@ static void palmas_power_reset(void *drv_data)
}
ret = palmas_update_bits(palmas, PALMAS_PMU_CONTROL_BASE,
+ PALMAS_SWOFF_COLDRST, PALMAS_SWOFF_COLDRST_SW_RST,
+ PALMAS_SWOFF_COLDRST_SW_RST);
+ if (ret < 0) {
+ dev_err(palmas_pm->dev,
+ "SWOFF_COLDRST update failed: %d\n", ret);
+ goto reset_direct;
+ }
+
+ ret = palmas_update_bits(palmas, PALMAS_PMU_CONTROL_BASE,
PALMAS_DEV_CTRL, PALMAS_DEV_CTRL_SW_RST,
PALMAS_DEV_CTRL_SW_RST);
if (ret < 0) {
@@ -218,6 +227,9 @@ static void palmas_power_reset(void *drv_data)
reset_direct:
dev_info(palmas_pm->dev, "Power reset the device\n");
palmas_update_bits(palmas, PALMAS_PMU_CONTROL_BASE,
+ PALMAS_SWOFF_COLDRST, PALMAS_SWOFF_COLDRST_SW_RST,
+ PALMAS_SWOFF_COLDRST_SW_RST);
+ palmas_update_bits(palmas, PALMAS_PMU_CONTROL_BASE,
PALMAS_DEV_CTRL, 0x2, 0x2);
}