Name
sis630_set_eq -- set phy equalizer value for 630 LAN
Synopsis
void sis630_set_eq
(struct net_device * net_dev, u8 revision);
Arguments
- net_dev
the net device to set equalizer value
- revision
630 LAN revision number
Description
630E equalizer workaround rule(Cyrus Huang 08/15)
PHY register 14h(Test)
Bit 14
0 -- Automatically dectect (default)
1 -- Manually set Equalizer filter
Bit 13
0 -- (Default)
1 -- Speed up convergence of equalizer setting
Bit 9
0 -- (Default)
1 -- Disable Baseline Wander
Bit 3~7 -- Equalizer filter setting
Link ON
Set Bit 9, 13 to 1, Bit 14 to 0
Then calculate equalizer value
Then set equalizer value, and set Bit 14 to 1, Bit 9 to 0
Link Off
Set Bit 13 to 1, Bit 14 to 0
Calculate Equalizer value
When Link is ON and Bit 14 is 0, SIS900PHY will auto-dectect proper equalizer value.
When the equalizer is stable, this value is not a fixed value. It will be within
a small range(eg. 7~9). Then we get a minimum and a maximum value(eg. min=7, max=9)
0 <= max <= 4 --> set equalizer to max
5 <= max <= 14 --> set equalizer to max+1 or set equalizer to max+2 if max == min
max >= 15 --> set equalizer to max+5 or set equalizer to max+6 if max == min