mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 14:10:43 +00:00
Initial cleanup of Davinci Ethernet driver
Removed pointless #ifdefs Moved functions around in file in preparation for switch to newer API Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
This commit is contained in:
parent
09cdd1b9b0
commit
8cc13c13f1
1 changed files with 69 additions and 77 deletions
|
@ -42,10 +42,6 @@
|
||||||
#include <miiphy.h>
|
#include <miiphy.h>
|
||||||
#include <asm/arch/emac_defs.h>
|
#include <asm/arch/emac_defs.h>
|
||||||
|
|
||||||
#ifdef CONFIG_DRIVER_TI_EMAC
|
|
||||||
|
|
||||||
#ifdef CONFIG_CMD_NET
|
|
||||||
|
|
||||||
unsigned int emac_dbg = 0;
|
unsigned int emac_dbg = 0;
|
||||||
#define debug_emac(fmt,args...) if (emac_dbg) printf(fmt,##args)
|
#define debug_emac(fmt,args...) if (emac_dbg) printf(fmt,##args)
|
||||||
|
|
||||||
|
@ -291,77 +287,6 @@ int davinci_eth_miiphy_initialize(bd_t *bis)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* This function initializes the emac hardware. It does NOT initialize
|
|
||||||
* EMAC modules power or pin multiplexors, that is done by board_init()
|
|
||||||
* much earlier in bootup process. Returns 1 on success, 0 otherwise.
|
|
||||||
*/
|
|
||||||
static int davinci_eth_hw_init(void)
|
|
||||||
{
|
|
||||||
u_int32_t phy_id;
|
|
||||||
u_int16_t tmp;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
davinci_eth_mdio_enable();
|
|
||||||
|
|
||||||
for (i = 0; i < 256; i++) {
|
|
||||||
if (adap_mdio->ALIVE)
|
|
||||||
break;
|
|
||||||
udelay(10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i >= 256) {
|
|
||||||
printf("No ETH PHY detected!!!\n");
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Find if a PHY is connected and get it's address */
|
|
||||||
if (!davinci_eth_phy_detect())
|
|
||||||
return(0);
|
|
||||||
|
|
||||||
/* Get PHY ID and initialize phy_ops for a detected PHY */
|
|
||||||
if (!davinci_eth_phy_read(active_phy_addr, PHY_PHYIDR1, &tmp)) {
|
|
||||||
active_phy_addr = 0xff;
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
phy_id = (tmp << 16) & 0xffff0000;
|
|
||||||
|
|
||||||
if (!davinci_eth_phy_read(active_phy_addr, PHY_PHYIDR2, &tmp)) {
|
|
||||||
active_phy_addr = 0xff;
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
phy_id |= tmp & 0x0000ffff;
|
|
||||||
|
|
||||||
switch (phy_id) {
|
|
||||||
case PHY_LXT972:
|
|
||||||
sprintf(phy.name, "LXT972 @ 0x%02x", active_phy_addr);
|
|
||||||
phy.init = lxt972_init_phy;
|
|
||||||
phy.is_phy_connected = lxt972_is_phy_connected;
|
|
||||||
phy.get_link_speed = lxt972_get_link_speed;
|
|
||||||
phy.auto_negotiate = lxt972_auto_negotiate;
|
|
||||||
break;
|
|
||||||
case PHY_DP83848:
|
|
||||||
sprintf(phy.name, "DP83848 @ 0x%02x", active_phy_addr);
|
|
||||||
phy.init = dp83848_init_phy;
|
|
||||||
phy.is_phy_connected = dp83848_is_phy_connected;
|
|
||||||
phy.get_link_speed = dp83848_get_link_speed;
|
|
||||||
phy.auto_negotiate = dp83848_auto_negotiate;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
sprintf(phy.name, "GENERIC @ 0x%02x", active_phy_addr);
|
|
||||||
phy.init = gen_init_phy;
|
|
||||||
phy.is_phy_connected = gen_is_phy_connected;
|
|
||||||
phy.get_link_speed = gen_get_link_speed;
|
|
||||||
phy.auto_negotiate = gen_auto_negotiate;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Ethernet PHY: %s\n", phy.name);
|
|
||||||
|
|
||||||
return(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Eth device open */
|
/* Eth device open */
|
||||||
static int davinci_eth_open(void)
|
static int davinci_eth_open(void)
|
||||||
|
@ -650,6 +575,73 @@ static int davinci_eth_rcv_packet (void)
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_CMD_NET */
|
/*
|
||||||
|
* This function initializes the emac hardware. It does NOT initialize
|
||||||
|
* EMAC modules power or pin multiplexors, that is done by board_init()
|
||||||
|
* much earlier in bootup process. Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
static int davinci_eth_hw_init(void)
|
||||||
|
{
|
||||||
|
u_int32_t phy_id;
|
||||||
|
u_int16_t tmp;
|
||||||
|
int i;
|
||||||
|
|
||||||
#endif /* CONFIG_DRIVER_TI_EMAC */
|
davinci_eth_mdio_enable();
|
||||||
|
|
||||||
|
for (i = 0; i < 256; i++) {
|
||||||
|
if (adap_mdio->ALIVE)
|
||||||
|
break;
|
||||||
|
udelay(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i >= 256) {
|
||||||
|
printf("No ETH PHY detected!!!\n");
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Find if a PHY is connected and get it's address */
|
||||||
|
if (!davinci_eth_phy_detect())
|
||||||
|
return(0);
|
||||||
|
|
||||||
|
/* Get PHY ID and initialize phy_ops for a detected PHY */
|
||||||
|
if (!davinci_eth_phy_read(active_phy_addr, PHY_PHYIDR1, &tmp)) {
|
||||||
|
active_phy_addr = 0xff;
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
phy_id = (tmp << 16) & 0xffff0000;
|
||||||
|
|
||||||
|
if (!davinci_eth_phy_read(active_phy_addr, PHY_PHYIDR2, &tmp)) {
|
||||||
|
active_phy_addr = 0xff;
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
phy_id |= tmp & 0x0000ffff;
|
||||||
|
|
||||||
|
switch (phy_id) {
|
||||||
|
case PHY_LXT972:
|
||||||
|
sprintf(phy.name, "LXT972 @ 0x%02x", active_phy_addr);
|
||||||
|
phy.init = lxt972_init_phy;
|
||||||
|
phy.is_phy_connected = lxt972_is_phy_connected;
|
||||||
|
phy.get_link_speed = lxt972_get_link_speed;
|
||||||
|
phy.auto_negotiate = lxt972_auto_negotiate;
|
||||||
|
break;
|
||||||
|
case PHY_DP83848:
|
||||||
|
sprintf(phy.name, "DP83848 @ 0x%02x", active_phy_addr);
|
||||||
|
phy.init = dp83848_init_phy;
|
||||||
|
phy.is_phy_connected = dp83848_is_phy_connected;
|
||||||
|
phy.get_link_speed = dp83848_get_link_speed;
|
||||||
|
phy.auto_negotiate = dp83848_auto_negotiate;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sprintf(phy.name, "GENERIC @ 0x%02x", active_phy_addr);
|
||||||
|
phy.init = gen_init_phy;
|
||||||
|
phy.is_phy_connected = gen_is_phy_connected;
|
||||||
|
phy.get_link_speed = gen_get_link_speed;
|
||||||
|
phy.auto_negotiate = gen_auto_negotiate;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Ethernet PHY: %s\n", phy.name);
|
||||||
|
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue