aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTroy Kisky <troy.kisky@boundarydevices.com>2011-12-22 08:42:04 +0100
committerJohn Rigby <john.rigby@linaro.org>2012-01-19 17:08:51 -0700
commitc547ef17f654a3ff8a57983b2c7b380c0ec87262 (patch)
tree79687d0bb9013d882afece5e454f2f4fd52592a6
parent7d0ca1d828286acd2740f8e3c40f44768960b462 (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.c18
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");