diff mbox

[U-Boot,09/10] sunxi: Implement poweroff support for axp818 pmic

Message ID 1462156095-9388-9-git-send-email-wens@csie.org
State Accepted
Commit 511992695de9309b53a291caa5ff9bce62d44ae4
Delegated to: Hans de Goede
Headers show

Commit Message

Chen-Yu Tsai May 2, 2016, 2:28 a.m. UTC
Adds poweroff support for axp818 pmic.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 drivers/power/Kconfig  |  1 +
 drivers/power/axp818.c | 11 +++++++++++
 include/axp818.h       |  3 +++
 3 files changed, 15 insertions(+)
diff mbox

Patch

diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index 02cb8e7ba687..d1375369c195 100644
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -44,6 +44,7 @@  config AXP221_POWER
 config AXP818_POWER
 	boolean "axp818 pmic support"
 	depends on MACH_SUN8I_A83T
+	select CMD_POWEROFF
 	---help---
 	Say y here to enable support for the axp818 pmic found on
 	A83T dev board.
diff --git a/drivers/power/axp818.c b/drivers/power/axp818.c
index bf6ecd6be597..af4d7a69032a 100644
--- a/drivers/power/axp818.c
+++ b/drivers/power/axp818.c
@@ -255,3 +255,14 @@  int axp_init(void)
 
 	return 0;
 }
+
+int do_poweroff(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	pmic_bus_write(AXP818_SHUTDOWN, AXP818_SHUTDOWN_POWEROFF);
+
+	/* infinite loop during shutdown */
+	while (1) {}
+
+	/* not reached */
+	return 0;
+}
diff --git a/include/axp818.h b/include/axp818.h
index f7f343a194ab..959774c76fa6 100644
--- a/include/axp818.h
+++ b/include/axp818.h
@@ -55,6 +55,9 @@ 
 #define AXP818_ALDO2_CTRL	0x29
 #define AXP818_ALDO3_CTRL	0x2a
 
+#define AXP818_SHUTDOWN		0x32
+#define AXP818_SHUTDOWN_POWEROFF	(1 << 7)
+
 /* For axp_gpio.c */
 #define AXP_POWER_STATUS		0x00
 #define AXP_POWER_STATUS_VBUS_PRESENT		(1 << 5)