summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTroy Kisky <troy.kisky@boundarydevices.com>2013-04-05 17:13:46 -0700
committerRobert Winkler <robert.winkler@boundarydevices.com>2013-06-17 12:08:18 -0700
commit8dc7db002fc987cd6068f4230684182112fa5534 (patch)
tree63492a4691dcb8b0abb68f57b055eb76f9ecd90d
parente4b8da1df372fcf753ee1af6174e797893966196 (diff)
nitrogen6x: add micrel phy ksz9031 option
-rw-r--r--board/boundary/nitrogen6x/nitrogen6x.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/board/boundary/nitrogen6x/nitrogen6x.c b/board/boundary/nitrogen6x/nitrogen6x.c
index 8f0f9b8de2..e7297de5ca 100644
--- a/board/boundary/nitrogen6x/nitrogen6x.c
+++ b/board/boundary/nitrogen6x/nitrogen6x.c
@@ -341,17 +341,29 @@ void setup_spi(void)
}
#endif
+unsigned short ksz9031_por_cmds[] = {
+ 0x0205, 0x0, /* RXDn pad skew */
+ 0x0206, 0x0, /* TXDn pad skew */
+ 0x0208, 0x03ff, /* TXC/RXC pad skew */
+ 0x0, 0x0
+};
+
int board_phy_config(struct phy_device *phydev)
{
- /* min rx data delay */
- ksz9021_phy_extended_write(phydev,
- MII_KSZ9021_EXT_RGMII_RX_DATA_SKEW, 0x0);
- /* min tx data delay */
- ksz9021_phy_extended_write(phydev,
- MII_KSZ9021_EXT_RGMII_TX_DATA_SKEW, 0x0);
- /* max rx/tx clock delay, min rx/tx control */
- ksz9021_phy_extended_write(phydev,
- MII_KSZ9021_EXT_RGMII_CLOCK_SKEW, 0xf0f0);
+ if (phydev->drv->uid == 0x221610) {
+ /* ksz9021 */
+ /* min rx data delay */
+ ksz9021_phy_extended_write(phydev,
+ MII_KSZ9021_EXT_RGMII_RX_DATA_SKEW, 0x0);
+ /* min tx data delay */
+ ksz9021_phy_extended_write(phydev,
+ MII_KSZ9021_EXT_RGMII_TX_DATA_SKEW, 0x0);
+ /* max rx/tx clock delay, min rx/tx control */
+ ksz9021_phy_extended_write(phydev,
+ MII_KSZ9021_EXT_RGMII_CLOCK_SKEW, 0xf0f0);
+ } else {
+ ksz9031_send_phy_cmds(phydev, ksz9031_por_cmds);
+ }
if (phydev->drv->config)
phydev->drv->config(phydev);