diff options
Diffstat (limited to 'board/omap1610inn/omap1610innovator.c')
-rw-r--r-- | board/omap1610inn/omap1610innovator.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/board/omap1610inn/omap1610innovator.c b/board/omap1610inn/omap1610innovator.c index d737f1b..0f67a0c 100644 --- a/board/omap1610inn/omap1610innovator.c +++ b/board/omap1610inn/omap1610innovator.c @@ -10,6 +10,8 @@ * Texas Instruments, <www.ti.com> * Kshitij Gupta <Kshitij@ti.com> * + * Modified for OMAP 1610 H2 board by Nishant Kamat, Jan 2004 + * * See file CREDITS for list of people who contributed to this * project. * @@ -105,7 +107,28 @@ void flash__init (void) *************************************************************/ void ether__init (void) { -#define ETH_CONTROL_REG 0x0400000b +#define ETH_CONTROL_REG 0x0400030b + +#ifdef CONFIG_H2_OMAP1610 + #define LAN_RESET_REGISTER 0x0400001c + + /* The debug board on which the lan chip resides may not be powered + * ON at the same time as the OMAP chip. So wait in a loop until the + * lan reset register (on the debug board) is available (powered on) + * and reset the lan chip. + */ + + *((volatile unsigned short *) LAN_RESET_REGISTER) = 0x0000; + do { + *((volatile unsigned short *) LAN_RESET_REGISTER) = 0x0001; + udelay (3); + } while (*((volatile unsigned short *) LAN_RESET_REGISTER) != 0x0001); + + do { + *((volatile unsigned short *) LAN_RESET_REGISTER) = 0x0000; + udelay (3); + } while (*((volatile unsigned short *) LAN_RESET_REGISTER) != 0x0000); +#endif *((volatile unsigned char *) ETH_CONTROL_REG) &= ~0x01; udelay (3); |