From: Sriramakrishnan <s...@ti.com>

The GPIO pin used for resetting the external LAN chip has
changed for Rev.G board.

Signed-off-by: Sriramakrishnan <s...@ti.com>
Signed-off-by: Sanjeev Premi <pr...@ti.com>
---
 board/ti/evm/evm.c |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/board/ti/evm/evm.c b/board/ti/evm/evm.c
index 8f9f141..57e5fa5 100644
--- a/board/ti/evm/evm.c
+++ b/board/ti/evm/evm.c
@@ -181,17 +181,26 @@ static void setup_net_chip(void)
  */
 static void reset_net_chip(void)
 {
-       struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
-
-       /* Make GPIO 64 as output pin */
-       writel(readl(&gpio3_base->oe) & ~(GPIO0), &gpio3_base->oe);
-
-       /* Now send a pulse on the GPIO pin */
-       writel(GPIO0, &gpio3_base->setdataout);
+       struct gpio *gpio_base;
+       u32 pin;
+
+       if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1) {
+               gpio_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
+               pin = GPIO0;    /* Output pin: GPIO Bank 3, pin 0 */
+       } else {
+               gpio_base = (struct gpio *)OMAP34XX_GPIO1_BASE;
+               pin = GPIO7;    /* Output pin: GPIO Bank 0, pin 7 */
+       }
+
+       /* Configure the pin as output */
+       writel(readl(&gpio_base->oe) & ~(pin), &gpio_base->oe);
+
+       /* Send a pulse on the GPIO pin */
+       writel(pin, &gpio_base->setdataout);
        udelay(1);
-       writel(GPIO0, &gpio3_base->cleardataout);
+       writel(pin, &gpio_base->cleardataout);
        udelay(1);
-       writel(GPIO0, &gpio3_base->setdataout);
+       writel(pin, &gpio_base->setdataout);
 }
 
 int board_eth_init(bd_t *bis)
-- 
1.7.2.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to