diff options
author | Troy Kisky <troy.kisky@boundarydevices.com> | 2011-12-22 08:42:04 +0100 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2012-01-19 17:08:51 -0700 |
commit | c547ef17f654a3ff8a57983b2c7b380c0ec87262 (patch) | |
tree | 79687d0bb9013d882afece5e454f2f4fd52592a6 | |
parent | 7d0ca1d828286acd2740f8e3c40f44768960b462 (diff) |
miiphyutil: add Micrel KSZ9021 support to miiphy_speed
Previously, only GIGE phy was supported in this function.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
-rw-r--r-- | common/miiphyutil.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/common/miiphyutil.c b/common/miiphyutil.c index 2cc23b410..8cb474814 100644 --- a/common/miiphyutil.c +++ b/common/miiphyutil.c @@ -471,7 +471,23 @@ int miiphy_speed(const char *devname, unsigned char addr) (btsr & (PHY_1000BTSR_1000FD | PHY_1000BTSR_1000HD))) return _1000BASET; #endif /* CONFIG_PHY_GIGE */ - +#ifdef CONFIG_PHY_MICREL_KSZ9021 +#define MII_PHY_CTL 0x1f +#define MII_PHY_CTL_1000 (1 << 6) +#define MII_PHY_CTL_100 (1 << 5) +#define MII_PHY_CTL_10 (1 << 4) + u16 btsr; + if (miiphy_read(devname, addr, MII_PHY_CTL, &btsr)) { + printf("PHY 1000BT status"); + goto miiphy_read_failed; + } + if (btsr & MII_PHY_CTL_1000) + return _1000BASET; + if (btsr & MII_PHY_CTL_100) + return _100BASET; + if (btsr & MII_PHY_CTL_10) + return _10BASET; +#endif /* Check Basic Management Control Register first. */ if (miiphy_read(devname, addr, MII_BMCR, &bmcr)) { printf("PHY speed"); |