diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2005-02-05 00:14:38 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2005-02-05 00:14:38 +0000 |
commit | f6fc14b429ae14306d48e5040e0edafc71d594b7 (patch) | |
tree | 3101842c12ee1fa7387348481b2fc4eecfd3adc0 | |
parent | 716332e1e5f2a6bdabb8189025d79b44b553613c (diff) |
Support for Seeq 80225 PHY a cut down version of the 80223 which can be
found attaching to some vr devices.
From NetBSD.
ok brad@
-rw-r--r-- | share/man/man4/sqphy.4 | 8 | ||||
-rw-r--r-- | sys/dev/mii/sqphy.c | 15 |
2 files changed, 19 insertions, 4 deletions
diff --git a/share/man/man4/sqphy.4 b/share/man/man4/sqphy.4 index a5709717c35..5da272de10e 100644 --- a/share/man/man4/sqphy.4 +++ b/share/man/man4/sqphy.4 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sqphy.4,v 1.7 2004/09/30 19:59:25 mickey Exp $ +.\" $OpenBSD: sqphy.4,v 1.8 2005/02/05 00:14:37 jsg Exp $ .\" $NetBSD: sqphy.4,v 1.1 1998/11/04 05:53:59 thorpej Exp $ .\" .\" Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -41,14 +41,16 @@ .Os .Sh NAME .Nm sqphy -.Nd Seeq 80220/80221, 80223 and 84220 10/100 Ethernet PHY driver +.Nd Seeq 80220/80221, 80223, 80225 and 84220 10/100 Ethernet PHY driver .Sh SYNOPSIS .Cd "sqphy* at mii?" .Sh DESCRIPTION The .Nm -driver supports the Seeq 80220/80221, 80223 and 84220 10/100 Ethernet PHYs. +driver supports the Seeq 80220/80221, 80223, 80225 and 84220 10/100 Ethernet +PHYs. The 80223 is a 3.3 volt version of the 80221. +The 80225 is a stripped down version of the 80223. These PHYs are found on a variety of high-performance Ethernet interfaces. .Sh SEE ALSO .Xr ifmedia 4 , diff --git a/sys/dev/mii/sqphy.c b/sys/dev/mii/sqphy.c index ba7ed265d0e..56e52a57d08 100644 --- a/sys/dev/mii/sqphy.c +++ b/sys/dev/mii/sqphy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sqphy.c,v 1.12 2005/01/28 18:27:55 brad Exp $ */ +/* $OpenBSD: sqphy.c,v 1.13 2005/02/05 00:14:37 jsg Exp $ */ /* $NetBSD: sqphy.c,v 1.17 2000/02/02 23:34:57 thorpej Exp $ */ /*- @@ -116,6 +116,10 @@ sqphymatch(struct device *parent, void *match, void *aux) MII_MODEL(ma->mii_id2) == MII_MODEL_xxSEEQ_80220) return (10); + if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxSEEQ && + MII_MODEL(ma->mii_id2) == MII_MODEL_xxSEEQ_80225) + return (10); + if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxSEEQ && MII_MODEL(ma->mii_id2) == MII_MODEL_xxSEEQ_84220) return (10); @@ -135,6 +139,10 @@ sqphyattach(struct device *parent, struct device *self, void *aux) printf(": %s, rev. %d\n", MII_STR_xxSEEQ_80220, MII_REV(ma->mii_id2)); + if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxSEEQ && + MII_MODEL(ma->mii_id2) == MII_MODEL_xxSEEQ_80225) + printf(": %s, rev. %d\n", MII_STR_xxSEEQ_80225, + MII_REV(ma->mii_id2)); if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxSEEQ && MII_MODEL(ma->mii_id2) == MII_MODEL_xxSEEQ_84220) @@ -249,6 +257,11 @@ sqphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_NONE; return; } + /* + * Note: don't get fancy here -- the 80225 only + * supports the SPD_DET and DPLX_DET bits in + * the STATUS register. + */ status = PHY_READ(sc, MII_SQPHY_STATUS); if (status & STATUS_SPD_DET) mii->mii_media_active |= IFM_100_TX; |