diff mbox

[U-Boot] am57xx: Set tps659038 PMIC GPIO7 pad mux value to POWERHOLD

Message ID 1480498373-9497-1-git-send-email-j-keerthy@ti.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

J, KEERTHY Nov. 30, 2016, 9:32 a.m. UTC
The GPIO7 pad mux should be programmed to POWERHOLD value
as per board design. In cases where the PMIC is shut off the
mux is set to GPIO7 mode. So during initialization to be on the
safer side set the mode to POWERHOLD.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 board/ti/am57xx/board.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Tom Rini Dec. 1, 2016, 3:32 p.m. UTC | #1
On Wed, Nov 30, 2016 at 03:02:53PM +0530, Keerthy wrote:

> The GPIO7 pad mux should be programmed to POWERHOLD value
> as per board design. In cases where the PMIC is shut off the
> mux is set to GPIO7 mode. So during initialization to be on the
> safer side set the mode to POWERHOLD.
> 
> Signed-off-by: Keerthy <j-keerthy@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>
Tom Rini Dec. 12, 2016, 1:35 p.m. UTC | #2
On Wed, Nov 30, 2016 at 03:02:53PM +0530, Keerthy wrote:

> The GPIO7 pad mux should be programmed to POWERHOLD value
> as per board design. In cases where the PMIC is shut off the
> mux is set to GPIO7 mode. So during initialization to be on the
> safer side set the mode to POWERHOLD.
> 
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
index f3e3f0b..5fd39bd 100644
--- a/board/ti/am57xx/board.c
+++ b/board/ti/am57xx/board.c
@@ -49,6 +49,9 @@  DECLARE_GLOBAL_DATA_PTR;
 
 #define SYSINFO_BOARD_NAME_MAX_LEN	45
 
+#define TPS65903X_PRIMARY_SECONDARY_PAD2	0xFB
+#define TPS65903X_PAD2_POWERHOLD_MASK		0x20
+
 const struct omap_sysinfo sysinfo = {
 	"Board: UNKNOWN(BeagleBoard X15?) REV UNKNOWN\n"
 };
@@ -380,12 +383,26 @@  int board_init(void)
 int board_late_init(void)
 {
 	setup_board_eeprom_env();
+	u8 val;
 
 	/*
 	 * DEV_CTRL.DEV_ON = 1 please - else palmas switches off in 8 seconds
 	 * This is the POWERHOLD-in-Low behavior.
 	 */
 	palmas_i2c_write_u8(TPS65903X_CHIP_P1, 0xA0, 0x1);
+
+	/*
+	 * Set the GPIO7 Pad to POWERHOLD. This has higher priority
+	 * over DEV_CTRL.DEV_ON bit. This can be reset in case of
+	 * PMIC Power off. So to be on the safer side set it back
+	 * to POWERHOLD mode irrespective of the current state.
+	 */
+	palmas_i2c_read_u8(TPS65903X_CHIP_P1, TPS65903X_PRIMARY_SECONDARY_PAD2,
+			   &val);
+	val = val | TPS65903X_PAD2_POWERHOLD_MASK;
+	palmas_i2c_write_u8(TPS65903X_CHIP_P1, TPS65903X_PRIMARY_SECONDARY_PAD2,
+			    val);
+
 	return 0;
 }