am57xx: Set tps659038 PMIC GPIO7 pad mux value to POWERHOLD
authorKeerthy <j-keerthy@ti.com>
Wed, 30 Nov 2016 09:32:53 +0000 (15:02 +0530)
committerTom Rini <trini@konsulko.com>
Fri, 9 Dec 2016 13:40:09 +0000 (08:40 -0500)
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>
board/ti/am57xx/board.c

index 797d7a4c0c200f571b25af5a44f4406672fbd8ab..5f2d4dfab8c5aa103743f10a5d4d03f1fad9cc5d 100644 (file)
@@ -55,6 +55,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"
 };
@@ -457,6 +460,7 @@ 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
@@ -471,6 +475,18 @@ int board_late_init(void)
        if (get_device_type() == HS_DEVICE)
                setenv("boot_fit", "1");
 
+       /*
+        * 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;
 }