@ -37,7 +37,7 @@
int lxt972_is_phy_connected ( int phy_addr )
{
u_int16_t id1 , id2 ;
u_int16_t id1 , id2 ;
if ( ! dm644x_eth_phy_read ( phy_addr , PHY_PHYIDR1 , & id1 ) )
return ( 0 ) ;
@ -52,8 +52,8 @@ int lxt972_is_phy_connected(int phy_addr)
int lxt972_get_link_speed ( int phy_addr )
{
u_int16_t stat1 , tmp ;
volatile emac_regs * emac = ( emac_regs * ) EMAC_BASE_ADDR ;
u_int16_t stat1 , tmp ;
volatile emac_regs * emac = ( emac_regs * ) EMAC_BASE_ADDR ;
if ( ! dm644x_eth_phy_read ( phy_addr , PHY_LXT971_STAT2 , & stat1 ) )
return ( 0 ) ;
@ -71,37 +71,23 @@ int lxt972_get_link_speed(int phy_addr)
if ( ! dm644x_eth_phy_read ( phy_addr , PHY_LXT971_DIG_CFG , & tmp ) )
return ( 0 ) ;
/* Speed doesn't matter, there is no setting for it in EMAC... */
if ( stat1 & PHY_LXT971_STAT2_100BTX ) {
if ( stat1 & PHY_LXT971_STAT2_DUPLEX_MODE ) {
/* set DM644x EMAC for Full Duplex */
emac - > MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE | EMAC_MACCONTROL_FULLDUPLEX_ENABLE ;
} else {
/*set DM644x EMAC for Half Duplex */
emac - > MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE ;
}
return ( 1 ) ;
if ( stat1 & PHY_LXT971_STAT2_DUPLEX_MODE ) {
/* set DM644x EMAC for Full Duplex */
emac - > MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE |
EMAC_MACCONTROL_FULLDUPLEX_ENABLE ;
} else {
if ( stat1 & PHY_LXT971_STAT2_DUPLEX_MODE ) {
/* set DM644x EMAC for Full Duplex */
emac - > MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE | EMAC_MACCONTROL_FULLDUPLEX_ENABLE ;
} else {
/*set DM644x EMAC for Half Duplex */
emac - > MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE ;
}
return ( 1 ) ;
/*set DM644x EMAC for Half Duplex */
emac - > MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE ;
}
return ( 0 ) ;
return ( 1 ) ;
}
int lxt972_init_phy ( int phy_addr )
{
int ret = 1 ;
int ret = 1 ;
if ( ! lxt972_get_link_speed ( phy_addr ) ) {
/* Try another time */
@ -117,8 +103,7 @@ int lxt972_init_phy(int phy_addr)
int lxt972_auto_negotiate ( int phy_addr )
{
u_int16_t tmp ;
u_int16_t tmp ;
if ( ! dm644x_eth_phy_read ( phy_addr , PHY_BMCR , & tmp ) )
return ( 0 ) ;