add delay for PHY check.

This commit is contained in:
aozima 2014-09-02 11:24:38 +08:00
parent ff4fcd5b56
commit 89bcb70e5f
1 changed files with 19 additions and 15 deletions

View File

@ -45,18 +45,22 @@ void phy_AutoMediaSelect() {
ETH_PhyWrite(PHY_BASE_ADDR, PHY_REG_EXTEND_STATUS, data); ETH_PhyWrite(PHY_BASE_ADDR, PHY_REG_EXTEND_STATUS, data);
} }
void phy_AutoNeg() { void phy_AutoNeg()
{
uint32_t data; uint32_t data;
data = ETH_PhyRead(PHY_BASE_ADDR, PHY_REG_CONTROL); data = ETH_PhyRead(PHY_BASE_ADDR, PHY_REG_CONTROL);
data |= (PHY_BIT_CONTROL_ANEN | PHY_BIT_CONTROL_RSAN); data |= (PHY_BIT_CONTROL_ANEN | PHY_BIT_CONTROL_RSAN);
ETH_PhyWrite(PHY_BASE_ADDR, PHY_REG_CONTROL, data); ETH_PhyWrite(PHY_BASE_ADDR, PHY_REG_CONTROL, data);
while (1) { while (1)
{
uint32_t ret = ETH_PhyRead(PHY_BASE_ADDR, PHY_REG_STATUS); uint32_t ret = ETH_PhyRead(PHY_BASE_ADDR, PHY_REG_STATUS);
if ((ret & PHY_BIT_STATUS_ANC) == PHY_BIT_STATUS_ANC) { if ((ret & PHY_BIT_STATUS_ANC) == PHY_BIT_STATUS_ANC)
{
break; break;
} }
rt_thread_delay(1);
} }
} }