aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorPeter Jeremy <peterj@FreeBSD.org>2024-05-08 08:17:00 +0000
committerPeter Jeremy <peterj@FreeBSD.org>2024-05-08 08:17:00 +0000
commit3fe25a9bfcd9c8afeb096828567353a84be37423 (patch)
treed3356253f29d3948b22774eb2627aaca9bc183f2 /sys
parentb54d4a16271cf9e8947be04e9221e6e26a7b90b1 (diff)
downloadsrc-3fe25a9bfcd9c8afeb096828567353a84be37423.tar.gz
src-3fe25a9bfcd9c8afeb096828567353a84be37423.zip
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/mii/miidevs1
-rw-r--r--sys/dev/mii/rgephy.c6
-rw-r--r--sys/dev/mii/rgephyreg.h1
3 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/mii/miidevs b/sys/dev/mii/miidevs
index 78d1dddba59f..c8eba403c22d 100644
--- a/sys/dev/mii/miidevs
+++ b/sys/dev/mii/miidevs
@@ -330,6 +330,7 @@ model REALTEK RTL8305SC 0x0005 RTL8305SC 10/100 802.1q switch
model REALTEK RTL8201E 0x0008 RTL8201E 10/100 media interface
model REALTEK RTL8251 0x0000 RTL8251/8153 1000BASE-T media interface
model REALTEK RTL8169S 0x0011 RTL8169S/8110S/8211 1000BASE-T media interface
+model REALTEK RTL8211FVD 0x0007 RTL8211F-VD 1000BASE-T media interface
/* Seeq Seeq PHYs */
model SEEQ 80220 0x0003 Seeq 80220 10/100 media interface
diff --git a/sys/dev/mii/rgephy.c b/sys/dev/mii/rgephy.c
index 63b3406bb831..4ff86c8c8ccb 100644
--- a/sys/dev/mii/rgephy.c
+++ b/sys/dev/mii/rgephy.c
@@ -93,6 +93,7 @@ static void rgephy_disable_eee(struct mii_softc *);
static const struct mii_phydesc rgephys[] = {
MII_PHY_DESC(REALTEK, RTL8169S),
MII_PHY_DESC(REALTEK, RTL8251),
+ MII_PHY_DESC(REALTEK, RTL8211FVD),
MII_PHY_END
};
@@ -283,7 +284,7 @@ rgephy_linkup(struct mii_softc *sc)
linkup = 0;
if ((sc->mii_flags & MIIF_PHYPRIV0) == 0 &&
sc->mii_mpd_rev >= RGEPHY_8211B) {
- if (sc->mii_mpd_rev == RGEPHY_8211F) {
+ if (sc->mii_mpd_rev >= RGEPHY_8211F) {
reg = PHY_READ(sc, RGEPHY_F_MII_SSR);
if (reg & RGEPHY_F_SSR_LINK)
linkup++;
@@ -338,7 +339,7 @@ rgephy_status(struct mii_softc *sc)
if ((sc->mii_flags & MIIF_PHYPRIV0) == 0 &&
sc->mii_mpd_rev >= RGEPHY_8211B) {
- if (sc->mii_mpd_rev == RGEPHY_8211F) {
+ if (sc->mii_mpd_rev >= RGEPHY_8211F) {
ssr = PHY_READ(sc, RGEPHY_F_MII_SSR);
switch (ssr & RGEPHY_F_SSR_SPD_MASK) {
case RGEPHY_F_SSR_S1000:
@@ -523,6 +524,7 @@ rgephy_reset(struct mii_softc *sc)
switch (sc->mii_mpd_rev) {
case RGEPHY_8211F:
+ case RGEPHY_8211FVD:
pcr = PHY_READ(sc, RGEPHY_F_MII_PCR1);
pcr &= ~(RGEPHY_F_PCR1_MDI_MM | RGEPHY_F_PCR1_ALDPS_EN);
PHY_WRITE(sc, RGEPHY_F_MII_PCR1, pcr);
diff --git a/sys/dev/mii/rgephyreg.h b/sys/dev/mii/rgephyreg.h
index 205f1a836020..fef985ebe30e 100644
--- a/sys/dev/mii/rgephyreg.h
+++ b/sys/dev/mii/rgephyreg.h
@@ -38,6 +38,7 @@
#define RGEPHY_8211B 2
#define RGEPHY_8211C 3
#define RGEPHY_8211F 6
+#define RGEPHY_8211FVD 8
/*
* RealTek 8169S/8110S gigE PHY registers