From a78d66672aa08f3fb3972d884cfe5709d5fa15fd Mon Sep 17 00:00:00 2001
From: Przemyslaw Marczak
Date: Fri, 21 Mar 2014 11:48:54 +0100
Subject: [PATCH] trats2: add implementation of board_poweroff() and
CONFIG_CMD_POWEROFF
This change adds implementation of function board_poweroff() which
turns off the device off by setting PSHOLD gpio to low state which
is a power off signal for main PMIC.
Change-Id: Iae97fb81d7e7e243079ac18d03f4fd917c50b62e
Signed-off-by: Przemyslaw Marczak
---
board/samsung/trats2/trats2.c | 17 +++++++++++++++++
include/configs/trats2.h | 1 +
2 files changed, 18 insertions(+)
diff --git a/board/samsung/trats2/trats2.c b/board/samsung/trats2/trats2.c
index a7377497e5..03f1d7d68b 100644
--- a/board/samsung/trats2/trats2.c
+++ b/board/samsung/trats2/trats2.c
@@ -431,3 +431,20 @@ void exynos_lcd_misc_init(vidinfo_t *vid)
#endif
}
#endif /* LCD */
+
+#ifdef CONFIG_CMD_POWEROFF
+void board_poweroff(void)
+{
+ unsigned int val;
+ struct exynos4x12_power *power =
+ (struct exynos4x12_power *)samsung_get_base_power();
+
+ val = readl(&power->ps_hold_control);
+ val |= EXYNOS_PS_HOLD_CONTROL_EN_OUTPUT; /* set to output */
+ val &= ~EXYNOS_PS_HOLD_CONTROL_DATA_HIGH; /* set state to low */
+ writel(val, &power->ps_hold_control);
+
+ while (1);
+ /* Should not reach here */
+}
+#endif
diff --git a/include/configs/trats2.h b/include/configs/trats2.h
index 8c33cdb4e8..7346b0e745 100644
--- a/include/configs/trats2.h
+++ b/include/configs/trats2.h
@@ -194,6 +194,7 @@ int get_soft_i2c_sda_pin(void);
#define CONFIG_POWER_MUIC_MAX77693
#define CONFIG_POWER_FG_MAX77693
#define CONFIG_POWER_BATTERY_TRATS2
+#define CONFIG_CMD_POWEROFF
/* Security subsystem - enable hw_rand() */
#define CONFIG_EXYNOS_ACE_SHA
--
2.34.1