/* * Routine: setup_net_chip * Description: Setting up the configuration GPMC registers specific to the * Ethernet hardware. */ static void setup_net_chip(void) { struct ctrl *ctrl_base = (struct ctrl *)OMAP34XX_CTRL_BASE; static const u32 gpmc_lan_config[] = { NET_LAN9221_GPMC_CONFIG1, NET_LAN9221_GPMC_CONFIG2, NET_LAN9221_GPMC_CONFIG3, NET_LAN9221_GPMC_CONFIG4, NET_LAN9221_GPMC_CONFIG5, NET_LAN9221_GPMC_CONFIG6, }; enable_gpmc_cs_config(gpmc_lan_config, &gpmc_cfg->cs[5], CONFIG_SMC911X_BASE, GPMC_SIZE_16M); /* Enable off mode for NWE in PADCONF_GPMC_NWE register */ writew(readw(&ctrl_base->gpmc_nwe) | 0x0E00, &ctrl_base->gpmc_nwe); /* Enable off mode for NOE in PADCONF_GPMC_NADV_ALE register */ writew(readw(&ctrl_base->gpmc_noe) | 0x0E00, &ctrl_base->gpmc_noe); /* Enable off mode for ALE in PADCONF_GPMC_NADV_ALE register */ writew(readw(&ctrl_base->gpmc_nadv_ale) | 0x0E00, &ctrl_base->gpmc_nadv_ale); reset_net_chip(64); }
int board_eth_init(bd_t *bis) { unsigned int expansion_id; int rc = 0; #ifdef CONFIG_SMC911X expansion_id = get_expansion_id(); switch (expansion_id) { case GUMSTIX_TOBI_DUO: /* second lan chip */ enable_gpmc_cs_config(gpmc_lan_config, &gpmc_cfg->cs[4], 0x2B000000, GPMC_SIZE_16M); /* no break */ case GUMSTIX_TOBI: case GUMSTIX_CHESTNUT43: case GUMSTIX_STAGECOACH: case GUMSTIX_NO_EEPROM: case GUMSTIX_EMPTY_EEPROM: /* first lan chip */ enable_gpmc_cs_config(gpmc_lan_config, &gpmc_cfg->cs[5], 0x2C000000, GPMC_SIZE_16M); setup_net_chip(); reset_net_chip(); rc = smc911x_initialize(0, CONFIG_SMC911X_BASE); break; default: break; } #endif return rc; }
/* * Routine: misc_init_r * Description: Init ethernet (done here so udelay works) */ int misc_init_r(void) { #ifdef CONFIG_DRIVER_OMAP34XX_I2C i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); #endif #if defined(CONFIG_CMD_NET) setup_net_chip(); #endif omap3_evm_get_revision(); #if defined(CONFIG_CMD_NET) reset_net_chip(); #endif dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Init ethernet (done here so udelay works) */ int misc_init_r(void) { #ifdef CONFIG_SYS_I2C_OMAP34XX i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED, CONFIG_SYS_OMAP24_I2C_SLAVE); #endif #if defined(CONFIG_CMD_NET) setup_net_chip(); #endif omap3_evm_get_revision(); #if defined(CONFIG_CMD_NET) reset_net_chip(); #endif omap_die_id_display(); return 0; }
/* * Routine: board_eth_init * Description: initialize module and base-board Ethernet chips */ int board_eth_init(bd_t *bis) { int rc = 0, rc1 = 0; setup_net_chip_gmpc(); reset_net_chip(); rc1 = handle_mac_address(); if (rc1) printf("No MAC address found! "); rc1 = smc911x_initialize(0, CM_T3X_SMC911X_BASE); if (rc1 > 0) rc++; rc1 = smc911x_initialize(1, SB_T35_SMC911X_BASE); if (rc1 > 0) rc++; return rc; }
/* * Routine: board_eth_init * Description: initialize module and base-board Ethernet chips */ int board_eth_init(bd_t *bis) { int rc = 0, rc1 = 0; #ifdef CONFIG_SMC911X setup_net_chip_gmpc(); reset_net_chip(); rc1 = handle_mac_address(); if (rc1) printf("CM-T3x: No MAC address found\n"); rc1 = smc911x_initialize(0, CM_T3X_SMC911X_BASE); if (rc1 > 0) rc++; rc1 = smc911x_initialize(1, SB_T35_SMC911X_BASE); if (rc1 > 0) rc++; #endif return rc; }