/******************************************************************* * Routine:board_eth_init * Description: take the Ethernet controller out of reset and wait * for the EEPROM load to complete. ******************************************************************/ int board_eth_init(bd_t *bis) { int rc = 0; #ifdef CONFIG_LAN91C96 int cnt = 20; __raw_writeb(0x03, OMAP2420_CTRL_BASE + 0x0f2); /*protect->gpio74 */ __raw_writew(0x0, LAN_RESET_REGISTER); do { __raw_writew(0x1, LAN_RESET_REGISTER); udelay(100); if (cnt == 0) goto eth_reset_err_out; --cnt; } while (__raw_readw(LAN_RESET_REGISTER) != 0x1); cnt = 20; do { __raw_writew(0x0, LAN_RESET_REGISTER); udelay(100); if (cnt == 0) goto eth_reset_err_out; --cnt; } while (__raw_readw(LAN_RESET_REGISTER) != 0x0000); udelay(1000); mask_config_reg(ETH_CONTROL_REG, 0x01); udelay(1000); rc = lan91c96_initialize(0, CONFIG_LAN91C96_BASE); eth_reset_err_out: #endif return rc; }
/** * @brief board_eth_init Take the Ethernet controller out of reset and wait * for the EEPROM load to complete. */ int board_eth_init(bd_t *bis) { int rc = 0; #ifdef CONFIG_LAN91C96 int cnt = 20; writew(0x0, LAN_RESET_REGISTER); do { writew(0x1, LAN_RESET_REGISTER); udelay(100); if (cnt == 0) goto reset_err_out; --cnt; } while (readw(LAN_RESET_REGISTER) != 0x1); cnt = 20; do { writew(0x0, LAN_RESET_REGISTER); udelay(100); if (cnt == 0) goto reset_err_out; --cnt; } while (readw(LAN_RESET_REGISTER) != 0x0000); udelay(1000); writeb(readb(ETH_CONTROL_REG) & ~0x1, ETH_CONTROL_REG); udelay(1000); rc = lan91c96_initialize(0, CONFIG_LAN91C96_BASE); reset_err_out: #endif return rc; }
int board_eth_init(bd_t *bis) { int rc = 0; #ifdef CONFIG_LAN91C96 rc = lan91c96_initialize(0, CONFIG_LAN91C96_BASE); #endif return rc; }