Add support for new Gigabit PHY of RealTek.

I don't have a copy of data sheet so I'm not sure exact PHY model
name. Vendor's web page indicates RTL8251 is latest PHY so I used
the name. This PHY is used with RTL8168G, RTL8168GU and RTL8411B.
This commit is contained in:
Pyun YongHyeon 2013-10-29 05:14:38 +00:00
parent 4ba4bea936
commit cd10b400a6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=257304
2 changed files with 6 additions and 2 deletions

View File

@ -304,6 +304,7 @@ model yyREALTEK RTL8201L 0x0020 RTL8201L 10/100 media interface
model xxREALTEK RTL8169S 0x0011 RTL8169S/8110S/8211 1000BASE-T media interface
model REALTEK RTL8305SC 0x0005 RTL8305SC 10/100 802.1q switch
model REALTEK RTL8201E 0x0008 RTL8201E 10/100 media interface
model REALTEK RTL8251 0x0000 RTL8251 1000BASE-T media interface
model REALTEK RTL8169S 0x0011 RTL8169S/8110S/8211 1000BASE-T media interface
/* Seeq Seeq PHYs */

View File

@ -91,6 +91,7 @@ static void rgephy_load_dspcode(struct mii_softc *);
static const struct mii_phydesc rgephys[] = {
MII_PHY_DESC(REALTEK, RTL8169S),
MII_PHY_DESC(REALTEK, RTL8251),
MII_PHY_END
};
@ -395,7 +396,8 @@ rgephy_loop(struct mii_softc *sc)
{
int i;
if (sc->mii_mpd_rev < 2) {
if (sc->mii_mpd_model != MII_MODEL_REALTEK_RTL8251 &&
sc->mii_mpd_rev < 2) {
PHY_WRITE(sc, RGEPHY_MII_BMCR, RGEPHY_BMCR_PDOWN);
DELAY(1000);
}
@ -428,7 +430,8 @@ rgephy_load_dspcode(struct mii_softc *sc)
{
int val;
if (sc->mii_mpd_rev >= 2)
if (sc->mii_mpd_model == MII_MODEL_REALTEK_RTL8251 ||
sc->mii_mpd_rev >= 2)
return;
PHY_WRITE(sc, 31, 0x0001);