diff options
author | Giuseppe CAVALLARO <peppe.cavallaro@st.com> | 2011-10-10 17:37:56 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-18 23:50:02 -0400 |
commit | a4886d522e18e5d4a63b95a5ead72f6105e3ef98 (patch) | |
tree | 0114dbc86ccdd7a4ca1419e121a8f06a9fe4a895 /drivers/net/phy/icplus.c | |
parent | 2425717b27eb92b175335ca4ff0bb218cbe0cb64 (diff) |
net/phy: extra delay only for RGMII interfaces for IC+ IP 1001
The extra delay of 2ns to adjust RX clock phase is actually needed
in RGMII mode. Tested on the HDK7108 (STx7108c2).
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy/icplus.c')
-rw-r--r-- | drivers/net/phy/icplus.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/phy/icplus.c b/drivers/net/phy/icplus.c index d66bd8d12599..c81f136ae670 100644 --- a/drivers/net/phy/icplus.c +++ b/drivers/net/phy/icplus.c | |||
@@ -128,12 +128,15 @@ static int ip1001_config_init(struct phy_device *phydev) | |||
128 | if (c < 0) | 128 | if (c < 0) |
129 | return c; | 129 | return c; |
130 | 130 | ||
131 | /* Additional delay (2ns) used to adjust RX clock phase | 131 | if (phydev->interface == PHY_INTERFACE_MODE_RGMII) { |
132 | * at GMII/ RGMII interface */ | 132 | /* Additional delay (2ns) used to adjust RX clock phase |
133 | c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS); | 133 | * at RGMII interface */ |
134 | c |= IP1001_PHASE_SEL_MASK; | 134 | c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS); |
135 | c |= IP1001_PHASE_SEL_MASK; | ||
136 | c = phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c); | ||
137 | } | ||
135 | 138 | ||
136 | return phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c); | 139 | return c; |
137 | } | 140 | } |
138 | 141 | ||
139 | static int ip101a_config_init(struct phy_device *phydev) | 142 | static int ip101a_config_init(struct phy_device *phydev) |