[PATCH 1/3] power: reset: sc27xx: Power off the external subsystems' connection

From: Baolin Wang
Date: Mon Mar 09 2020 - 04:19:13 EST


From: Sherry Zong <sherry.zong@xxxxxxxxxx>

When powering off the whole system, we should power off some external
subsystems' connection firstly, otherwise some external subsystems
will hold some power and result in powering down abnormally.

Signed-off-by: Sherry Zong <sherry.zong@xxxxxxxxxx>
Signed-off-by: Baolin Wang <baolin.wang7@xxxxxxxxx>
---
drivers/power/reset/sc27xx-poweroff.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/power/reset/sc27xx-poweroff.c b/drivers/power/reset/sc27xx-poweroff.c
index 29fb08b..2bedd4c 100644
--- a/drivers/power/reset/sc27xx-poweroff.c
+++ b/drivers/power/reset/sc27xx-poweroff.c
@@ -13,6 +13,8 @@

#define SC27XX_PWR_PD_HW 0xc2c
#define SC27XX_PWR_OFF_EN BIT(0)
+#define SC27XX_SLP_CTRL 0xdf0
+#define SC27XX_LDO_XTL_EN BIT(3)

static struct regmap *regmap;

@@ -40,6 +42,9 @@ static void sc27xx_poweroff_shutdown(void)

static void sc27xx_poweroff_do_poweroff(void)
{
+ /* Disable the external subsys connection's power firstly */
+ regmap_write(regmap, SC27XX_SLP_CTRL, SC27XX_LDO_XTL_EN);
+
regmap_write(regmap, SC27XX_PWR_PD_HW, SC27XX_PWR_OFF_EN);
}

--
1.9.1