beautypg.com

1 initializing the mdio module, 2 writing data to a phy register, 3 reading data from a phy register – Texas Instruments TMS320DM36X User Manual

Page 35

background image

www.ti.com

Architecture

2.8.2.1

Initializing the MDIO Module

The following steps are performed by the application software or device driver to initialize the MDIO
device:

1. Configure the PREAMBLE and CLKDIV bits in the MDIO control register (CONTROL).
2. Enable the MDIO module by setting the ENABLE bit in CONTROL.
3. The MDIO PHY alive status register (ALIVE) can be read in polling fashion until a PHY connected to

the system responded, and the MDIO PHY link status register (LINK) can determine whether this PHY
already has a link.

4. Setup the appropriate PHY addresses in the MDIO user PHY select register (USERPHYSELn), and set

the LINKINTENB bit to enable a link change event interrupt if desirable.

5. If an interrupt on general MDIO register access is desired, set the corresponding bit in the MDIO user

command complete interrupt mask set register (USERINTMASKSET) to use the MDIO user access
register (USERACCESSn). Since only one PHY is used in this device, the application software can use
one USERACCESSn to trigger a completion interrupt; the other USERACCESSn is not setup.

2.8.2.2

Writing Data To a PHY Register

The MDIO module includes a user access register (USERACCESSn) to directly access a specified PHY
device. To write a PHY register, perform the following:

1. Check to ensure that the GO bit in the MDIO user access register (USERACCESSn) is cleared.
2. Write to the GO, WRITE, REGADR, PHYADR, and DATA bits in USERACCESSn corresponding to the

PHY and PHY register you want to write.

3. The write operation to the PHY is scheduled and completed by the MDIO module. Completion of the

write operation can be determined by polling the GO bit in USERACCESSn for a 0.

4. Completion of the operation sets the corresponding USERINTRAW bit (0 or 1) in the MDIO user

command complete interrupt register (USERINTRAW) corresponding to USERACCESSn used. If
interrupts have been enabled on this bit using the MDIO user command complete interrupt mask set
register (USERINTMASKSET), then the bit is also set in the MDIO user command complete interrupt
register (USERINTMASKED) and an interrupt is triggered on the CPU.

2.8.2.3

Reading Data From a PHY Register

The MDIO module includes a user access register (USERACCESSn) to directly access a specified PHY
device. To read a PHY register, perform the following:

1. Check to ensure that the GO bit in the MDIO user access register (USERACCESSn) is cleared.
2. Write to the GO, REGADR, and PHYADR bits in USERACCESSn corresponding to the PHY and PHY

register you want to read.

3. The read data value is available in the DATA bits in USERACCESSn after the module completes the

read operation on the serial bus. Completion of the read operation can be determined by polling the
GO and ACK bits in USERACCESSn. Once the GO bit has cleared, the ACK bit is set on a successful
read.

4. Completion of the operation sets the corresponding USERINTRAW bit (0 or 1) in the MDIO user

command complete interrupt register (USERINTRAW) corresponding to USERACCESSn used. If
interrupts have been enabled on this bit using the MDIO user command complete interrupt mask set
register (USERINTMASKSET), then the bit is also set in the MDIO user command complete interrupt
register (USERINTMASKED) and an interrupt is triggered on the CPU.

35

SPRUFI5B – March 2009 – Revised December 2010

Ethernet Media Access Controller (EMAC)/Management Data Input/Output

(MDIO)

Submit Documentation Feedback

© 2009–2010, Texas Instruments Incorporated