@ -101,6 +101,19 @@ void get_board_mem_timings(struct board_sdrc_timings *timings)
# endif
# endif
# if defined(CONFIG_CMD_NET)
# if defined(CONFIG_CMD_NET)
static void reset_net_chip ( int gpio )
{
if ( ! gpio_request ( gpio , " eth nrst " ) ) {
gpio_direction_output ( gpio , 1 ) ;
udelay ( 1 ) ;
gpio_set_value ( gpio , 0 ) ;
udelay ( 40 ) ;
gpio_set_value ( gpio , 1 ) ;
mdelay ( 10 ) ;
}
}
/*
/*
* Routine : setup_net_chip
* Routine : setup_net_chip
* Description : Setting up the configuration GPMC registers specific to the
* Description : Setting up the configuration GPMC registers specific to the
@ -110,8 +123,8 @@ static void setup_net_chip(void)
{
{
struct ctrl * ctrl_base = ( struct ctrl * ) OMAP34XX_CTRL_BASE ;
struct ctrl * ctrl_base = ( struct ctrl * ) OMAP34XX_CTRL_BASE ;
enable_gpmc_cs_config ( gpmc_lan_config , & gpmc_cfg - > cs [ 5 ] , 0x2C000000 ,
enable_gpmc_cs_config ( gpmc_lan_config , & gpmc_cfg - > cs [ 5 ] ,
GPMC_SIZE_16M ) ;
CONFIG_SMC911X_BASE , GPMC_SIZE_16M ) ;
/* Enable off mode for NWE in PADCONF_GPMC_NWE register */
/* Enable off mode for NWE in PADCONF_GPMC_NWE register */
writew ( readw ( & ctrl_base - > gpmc_nwe ) | 0x0E00 , & ctrl_base - > gpmc_nwe ) ;
writew ( readw ( & ctrl_base - > gpmc_nwe ) | 0x0E00 , & ctrl_base - > gpmc_nwe ) ;
@ -121,15 +134,7 @@ static void setup_net_chip(void)
writew ( readw ( & ctrl_base - > gpmc_nadv_ale ) | 0x0E00 ,
writew ( readw ( & ctrl_base - > gpmc_nadv_ale ) | 0x0E00 ,
& ctrl_base - > gpmc_nadv_ale ) ;
& ctrl_base - > gpmc_nadv_ale ) ;
/* Make GPIO 64 as output pin and send a magic pulse through it */
reset_net_chip ( 64 ) ;
if ( ! gpio_request ( 64 , " " ) ) {
gpio_direction_output ( 64 , 0 ) ;
gpio_set_value ( 64 , 1 ) ;
udelay ( 1 ) ;
gpio_set_value ( 64 , 0 ) ;
udelay ( 1 ) ;
gpio_set_value ( 64 , 1 ) ;
}
}
}
# else
# else
static inline void setup_net_chip ( void ) { }
static inline void setup_net_chip ( void ) { }
@ -200,10 +205,10 @@ void set_muxconf_regs(void)
# if defined(CONFIG_CMD_NET)
# if defined(CONFIG_CMD_NET)
int board_eth_init ( bd_t * bis )
int board_eth_init ( bd_t * bis )
{
{
int rc = 0 ;
# ifdef CONFIG_SMC911X
# ifdef CONFIG_SMC911X
rc = smc911x_initialize ( 0 , CONFIG_SMC911X_BASE ) ;
return smc911x_initialize ( 0 , CONFIG_SMC911X_BASE ) ;
# else
return 0 ;
# endif
# endif
return rc ;
}
}
# endif
# endif