|
@@ -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);
|