drivers: net: phy: aquantia: enable USX AN for USXGMII protocol

Depending on FW defaults USX AN in AQR PHY must be explicitly enabled when
using USXGMII.  Enable it based on interface type.

Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
This commit is contained in:
Alex Marginean 2019-09-20 19:37:19 +03:00 committed by Dong Aisheng
parent 2e16cadb54
commit 257d9bc9b9
1 changed files with 7 additions and 0 deletions

View File

@ -33,6 +33,9 @@
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_SGMII 6
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_OCSGMII 10
#define MDIO_PHYXS_VEND_PROV2 0xC441
#define MDIO_PHYXS_VEND_PROV2_USX_AN BIT(3)
#define MDIO_AN_VEND_PROV 0xc400
#define MDIO_AN_VEND_PROV_1000BASET_FULL BIT(15)
#define MDIO_AN_VEND_PROV_1000BASET_HALF BIT(14)
@ -310,6 +313,10 @@ static int aqr_config_aneg_set_prot(struct phy_device *phydev)
aquantia_syscfg[if_type].syscfg);
}
if (if_type == PHY_INTERFACE_MODE_USXGMII)
phy_write_mmd(phydev, MDIO_MMD_PHYXS, MDIO_PHYXS_VEND_PROV2,
MDIO_PHYXS_VEND_PROV2_USX_AN);
/* wake PHY back up */
phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GLOBAL_SC, 0);
mdelay(10);