diff mbox series

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

Message ID eae00dced755376239401b18b38e4553200dc517.1583740881.git.baolin.wang7@gmail.com (mailing list archive)
State Not Applicable, archived
Headers show
Series Some optimization for SC27XX poweroff driver | expand

Commit Message

Baolin Wang March 9, 2020, 8:18 a.m. UTC
From: Sherry Zong <sherry.zong@unisoc.com>

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@unisoc.com>
Signed-off-by: Baolin Wang <baolin.wang7@gmail.com>
---
 drivers/power/reset/sc27xx-poweroff.c | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

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);
 }