summaryrefslogtreecommitdiff
path: root/board/omap1610inn/omap1610innovator.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/omap1610inn/omap1610innovator.c')
-rw-r--r--board/omap1610inn/omap1610innovator.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/board/omap1610inn/omap1610innovator.c b/board/omap1610inn/omap1610innovator.c
index d737f1b330..0f67a0c590 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);