Hi, guys! I am testing the EMAC module on C6474 through the example CCS3.3\boards\evmc6474_v1\tests\emac, and there is a piece of code puzzled me:
Uint16 phy_getReg(int phynum, int regnum)
{
Uint16 value;
MDIO_USERACCESS0 = 0 // Read Phy Id 1
| ( 1 << 31 ) // [31] Go
| ( 0 << 30 ) // [30] Read
| ( 0 << 29 ) // [29] Ack
| (regnum << 21 ) // [25-21] PHY register address
| (phynum << 16 ) // [20-16] PHY address
| ( 0 << 0 ) // [15-0] Data ;
while( MDIO_USERACCESS0 & 0x80000000 ); // Wait for Results
value = MDIO_USERACCESS0;
return value;
}
I understand the purpose is to set phy register through MDIO register, but I can't find any infromation about phy register and phy address in datasheet, and information about 88e6122 is very few on the internet. Is there anyone could help me?