Hi Sanjeev, On 06/22/11 22:24, Sanjeev Premi wrote: > 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);
Why keep messing with the gpio registers? Why not use gpio framework? Though it is omap specific, but it will be much cleaner then the above. -- Regards, Igor. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot