
On Fri, Jul 28, 2017 at 2:59 PM, Sebastien Bourdelin sebastien.bourdelin@savoirfairelinux.com wrote:
The environment variable "disable_giga" can now be used to disable 1000baseTx on the Micrel's KSZ9031.
Signed-off-by: Sebastien Bourdelin sebastien.bourdelin@savoirfairelinux.com
Other than one nit below... Acked-by: Joe Hershberger joe.hershberger@ni.com
drivers/net/phy/micrel.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index 0e4a4ebcc6..eeeba3c232 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -491,12 +491,39 @@ static int ksz9031_phy_extwrite(struct phy_device *phydev, int addr, static int ksz9031_config(struct phy_device *phydev) { int ret;
unsigned features;
unsigned bmcr = 0;
Seems better to define these in the block where they are used and inconsistent initialization is odd. Neither need init since they are assigned as first use.
ret = ksz9031_of_config(phydev); if (ret) return ret; ret = ksz9031_center_flp_timing(phydev); if (ret) return ret;
/* add an option to disable the gigabit feature of this PHY */
if (getenv("disable_giga")) {
/* disable speed 1000 in features supported by the PHY */
features = phydev->drv->features;
features &= ~(SUPPORTED_1000baseT_Half |
SUPPORTED_1000baseT_Full);
phydev->advertising = phydev->supported = features;
/* disable speed 1000 in Basic Control Register */
bmcr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
bmcr &= ~(1 << 6);
phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, bmcr);
/* disable speed 1000 in 1000Base-T Control Register */
phy_write(phydev, MDIO_DEVAD_NONE, MII_CTRL1000, 0);
/* start autoneg */
genphy_config_aneg(phydev);
genphy_restart_aneg(phydev);
return 0;
}
return genphy_config(phydev);
}
-- 2.13.3
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot