mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 22:49:02 +00:00
uec: add support for gbit mii status readings
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
This commit is contained in:
parent
aabce7fb50
commit
91cdaa3a9d
2 changed files with 24 additions and 9 deletions
|
@ -318,16 +318,26 @@ static int genmii_read_status (struct uec_mii_info *mii_info)
|
|||
return err;
|
||||
|
||||
if (mii_info->autoneg) {
|
||||
status = phy_read (mii_info, PHY_ANLPAR);
|
||||
status = phy_read(mii_info, MII_1000BASETSTATUS);
|
||||
|
||||
if (status & (PHY_ANLPAR_10FD | PHY_ANLPAR_TXFD))
|
||||
mii_info->duplex = DUPLEX_FULL;
|
||||
else
|
||||
mii_info->duplex = DUPLEX_HALF;
|
||||
if (status & (PHY_ANLPAR_TXFD | PHY_ANLPAR_TX))
|
||||
mii_info->speed = SPEED_100;
|
||||
else
|
||||
mii_info->speed = SPEED_10;
|
||||
if (status & (LPA_1000FULL | LPA_1000HALF)) {
|
||||
mii_info->speed = SPEED_1000;
|
||||
if (status & LPA_1000FULL)
|
||||
mii_info->duplex = DUPLEX_FULL;
|
||||
else
|
||||
mii_info->duplex = DUPLEX_HALF;
|
||||
} else {
|
||||
status = phy_read(mii_info, PHY_ANLPAR);
|
||||
|
||||
if (status & (PHY_ANLPAR_10FD | PHY_ANLPAR_TXFD))
|
||||
mii_info->duplex = DUPLEX_FULL;
|
||||
else
|
||||
mii_info->duplex = DUPLEX_HALF;
|
||||
if (status & (PHY_ANLPAR_TXFD | PHY_ANLPAR_TX))
|
||||
mii_info->speed = SPEED_100;
|
||||
else
|
||||
mii_info->speed = SPEED_10;
|
||||
}
|
||||
mii_info->pause = 0;
|
||||
}
|
||||
/* On non-aneg, we assume what we put in BMCR is the speed,
|
||||
|
|
|
@ -29,6 +29,11 @@
|
|||
#define MII_1000BASETCONTROL_FULLDUPLEXCAP 0x0200
|
||||
#define MII_1000BASETCONTROL_HALFDUPLEXCAP 0x0100
|
||||
|
||||
/* 1000BT status */
|
||||
#define MII_1000BASETSTATUS 0x0a
|
||||
#define LPA_1000FULL 0x0400
|
||||
#define LPA_1000HALF 0x0200
|
||||
|
||||
/* Cicada Extended Control Register 1 */
|
||||
#define MII_CIS8201_EXT_CON1 0x17
|
||||
#define MII_CIS8201_EXTCON1_INIT 0x0000
|
||||
|
|
Loading…
Add table
Reference in a new issue