summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii/amphy.c
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>1999-09-19 21:56:08 +0000
committerwpaul <wpaul@FreeBSD.org>1999-09-19 21:56:08 +0000
commit6b45152ee9c956cc4d4653caa6ee355eb079f588 (patch)
treef8d8ddb9dad131b55ab3075e9291f4011d3e997c /sys/dev/mii/amphy.c
parentec09929389ced92c6c15bcd643bc57d9ad216514 (diff)
downloadFreeBSD-src-6b45152ee9c956cc4d4653caa6ee355eb079f588.zip
FreeBSD-src-6b45152ee9c956cc4d4653caa6ee355eb079f588.tar.gz
Allow the AMD PHY driver to support the DM9101 PHY. The DM9101 and the
AMD AM79c873 have identical registers. I'm not sure why; one is probably a clone of the other.
Diffstat (limited to 'sys/dev/mii/amphy.c')
-rw-r--r--sys/dev/mii/amphy.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/dev/mii/amphy.c b/sys/dev/mii/amphy.c
index 8521f32..91eb707 100644
--- a/sys/dev/mii/amphy.c
+++ b/sys/dev/mii/amphy.c
@@ -34,6 +34,8 @@
/*
* driver for AMD AM79c873 PHYs
+ * This driver also works for the Davicom DM9101 PHY, which appears to
+ * be an AM79c873 workalike.
*/
#include <sys/param.h>
@@ -92,11 +94,16 @@ static int amphy_probe(dev)
ma = device_get_ivars(dev);
- if (MII_OUI(ma->mii_id1, ma->mii_id2) != MII_OUI_xxAMD ||
- MII_MODEL(ma->mii_id2) != MII_MODEL_xxAMD_79C873)
+ if ((MII_OUI(ma->mii_id1, ma->mii_id2) != MII_OUI_xxAMD ||
+ MII_MODEL(ma->mii_id2) != MII_MODEL_xxAMD_79C873) &&
+ (MII_OUI(ma->mii_id1, ma->mii_id2) != MII_OUI_xxDAVICOM ||
+ MII_MODEL(ma->mii_id2) != MII_MODEL_xxDAVICOM_DM9101))
return(ENXIO);
- device_set_desc(dev, MII_STR_xxAMD_79C873);
+ if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxAMD)
+ device_set_desc(dev, MII_STR_xxAMD_79C873);
+ else if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxDAVICOM)
+ device_set_desc(dev, MII_STR_xxDAVICOM_DM9101);
return(0);
}
OpenPOWER on IntegriCloud