diff options
author | Troy Kisky <troy.kisky@boundarydevices.com> | 2013-04-05 17:13:46 -0700 |
---|---|---|
committer | Robert Winkler <robert.winkler@boundarydevices.com> | 2013-06-17 12:08:18 -0700 |
commit | 8dc7db002fc987cd6068f4230684182112fa5534 (patch) | |
tree | 63492a4691dcb8b0abb68f57b055eb76f9ecd90d | |
parent | e4b8da1df372fcf753ee1af6174e797893966196 (diff) |
nitrogen6x: add micrel phy ksz9031 option
-rw-r--r-- | board/boundary/nitrogen6x/nitrogen6x.c | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/board/boundary/nitrogen6x/nitrogen6x.c b/board/boundary/nitrogen6x/nitrogen6x.c index 8f0f9b8de2e..e7297de5cae 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); |