+#define PSSR_SPEED_1000 BIT(15)
+#define PSSR_SPEED_100 BIT(14)
- #define AT803X_DEBUG_REG_0 0x00
- #define AT803X_DEBUG_RX_CLK_DLY_EN BIT(15)
-@@ -532,12 +543,75 @@ static int at803x_parse_dt(struct phy_de
+ #define AT803X_DEBUG_ANALOG_TEST_CTRL 0x00
+ #define QCA8327_DEBUG_MANU_CTRL_EN BIT(2)
+@@ -629,12 +640,75 @@ static int at803x_parse_dt(struct phy_de
return 0;
}
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
if (!priv)
return -ENOMEM;
-@@ -554,6 +628,7 @@ static int at803x_probe(struct phy_devic
+@@ -651,6 +725,7 @@ static int at803x_probe(struct phy_devic
return ret;
}
/* Some bootloaders leave the fiber page selected.
* Switch to the copper page, as otherwise we read
* the PHY capabilities from the fiber side.
-@@ -565,6 +640,7 @@ static int at803x_probe(struct phy_devic
+@@ -662,6 +737,7 @@ static int at803x_probe(struct phy_devic
if (ret)
goto err;
}
return 0;
-@@ -744,6 +820,10 @@ static int at803x_read_status(struct phy
+@@ -841,6 +917,10 @@ static int at803x_read_status(struct phy
{
int ss, err, old_link = phydev->link;
/* Update the link, but return if there was an error */
err = genphy_update_link(phydev);
if (err)
-@@ -844,6 +924,12 @@ static int at803x_config_aneg(struct phy
+@@ -941,6 +1021,12 @@ static int at803x_config_aneg(struct phy
{
int ret;
ret = at803x_config_mdix(phydev, phydev->mdix_ctrl);
if (ret < 0)
return ret;
-@@ -943,6 +1029,7 @@ static int at803x_get_features(struct ph
+@@ -1040,6 +1126,7 @@ static int at803x_get_features(struct ph
if (err)
return err;
if (!at803x_match_phy_id(phydev, ATH8031_PHY_ID))
return 0;
-@@ -960,6 +1047,7 @@ static int at803x_get_features(struct ph
+@@ -1057,6 +1144,7 @@ static int at803x_get_features(struct ph
*/
linkmode_clear_bit(ETHTOOL_LINK_MODE_1000baseX_Full_BIT,
phydev->supported);
return 0;
}
-@@ -1173,6 +1261,7 @@ static struct phy_driver at803x_driver[]
+@@ -1381,6 +1469,7 @@ static struct phy_driver at803x_driver[]
/* Qualcomm Atheros AR8031/AR8033 */
PHY_ID_MATCH_EXACT(ATH8031_PHY_ID),
.name = "Qualcomm Atheros AR8031/AR8033",