Energy Efficient Ethernet
™
BCM5718 Programmer’s Guide
Broadcom®
January 29, 2016 • 5718-PG108-R Page 150
// Enable EEE LPI request if EEE negotiated
if (4 == val || 2 == val)
{
reg_write(0x0x36b0, reg_read(0x36b0) | 0x80);
}
break;
}
else
{
// Disable LPI requests
val = reg_read(0x36B0);
val &= 0xFFFFFF7F;
reg_write(0x36B0, val);
}
After the controller is fully initialized, the following algorithm may be used to verify EEE link status:
i=0
while(i < 100)
{
if ((mii_read(0x11) & 0x100) == 0x100)
{
if ((mii_read(0x19) & 0x700) == 0x700)
{
if (((mii_read(0xA) & 0x7000) == 0x7000) ||
((mii_read(0xA) & 0x3000) == 0x3000)))
{
//link negotiated to gigabit master or slave
reg_write(0x36d0, 0x19d);
}
}
elseif ((mii_read(0x19) & 0x500) == 0x500)
{
//link negotiated to 100Mbps
reg_write(0x36d0, 0x384);
}
ms_delay(1000);//delay 1000 milliseconds
//Assert LPI
reg_write(0x36b0,(reg_read(0x36b0) | 0x80))
break;
}
else
{
ms_delay(500);//delay 500 milliseconds
i++;
}
}
if (i >= 100)
{
Link_not_detected();