Browse Source

Davinci: ea20: add gpio for keeping power on in board_late_init

The pin called HALTEN drives a transistor to operate the supply
voltage. After HALTEN is high, the user can release the power
switch button and the device will stay powered on.

Signed-off-by: Bastian Ruppert <Bastian.Ruppert@Sewerin.de>
CC: sbabic@denx.de
CC: dzu@denx.de
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Bastian Ruppert 13 years ago
parent
commit
e5ee9125ec
2 changed files with 26 additions and 0 deletions
  1. 25 0
      board/davinci/ea20/ea20.c
  2. 1 0
      include/configs/ea20.h

+ 25 - 0
board/davinci/ea20/ea20.c

@@ -98,6 +98,10 @@ const struct pinmux_config gpio_pins[] = {
 	{ pinmux(13), 8, 3 }  /* GPIO6[12] U0_SW1 on EA20-00101_2*/
 	{ pinmux(13), 8, 3 }  /* GPIO6[12] U0_SW1 on EA20-00101_2*/
 };
 };
 
 
+const struct pinmux_config halten_pin[] = {
+	{ pinmux(3),  4, 2 } /* GPIO8[6] HALTEN */
+};
+
 static const struct pinmux_resource pinmuxes[] = {
 static const struct pinmux_resource pinmuxes[] = {
 #ifdef CONFIG_SPI_FLASH
 #ifdef CONFIG_SPI_FLASH
 	PINMUX_ITEM(spi1_pins),
 	PINMUX_ITEM(spi1_pins),
@@ -205,6 +209,27 @@ int board_init(void)
 
 
 	return 0;
 	return 0;
 }
 }
+
+#ifdef BOARD_LATE_INIT
+
+int board_late_init(void)
+{
+	struct davinci_gpio *gpio8_base =
+			(struct davinci_gpio *)DAVINCI_GPIO_BANK8;
+
+	/* PinMux for HALTEN */
+	if (davinci_configure_pin_mux(halten_pin, ARRAY_SIZE(halten_pin)) != 0)
+		return 1;
+
+	/* Set HALTEN to high */
+	writel((readl(&gpio8_base->set_data) | (1 << 6)),
+		&gpio8_base->set_data);
+	writel((readl(&gpio8_base->dir) & ~(1 << 6)), &gpio8_base->dir);
+
+	return 0;
+}
+#endif /* BOARD_LATE_INIT */
+
 #ifdef CONFIG_DRIVER_TI_EMAC
 #ifdef CONFIG_DRIVER_TI_EMAC
 
 
 /*
 /*

+ 1 - 0
include/configs/ea20.h

@@ -31,6 +31,7 @@
 #define	CONFIG_SYS_USE_NAND
 #define	CONFIG_SYS_USE_NAND
 #define CONFIG_DRIVER_TI_EMAC_USE_RMII
 #define CONFIG_DRIVER_TI_EMAC_USE_RMII
 #define CONFIG_BOARD_EARLY_INIT_F
 #define CONFIG_BOARD_EARLY_INIT_F
+#define BOARD_LATE_INIT
 
 
 /*
 /*
  * SoC Configuration
  * SoC Configuration