|
@@ -40,9 +40,9 @@ Signed-off-by: René van Dorst <[email protected]>
|
|
+#define PSSR_SPEED_1000 BIT(15)
|
|
+#define PSSR_SPEED_1000 BIT(15)
|
|
+#define PSSR_SPEED_100 BIT(14)
|
|
+#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;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -118,7 +118,7 @@ Signed-off-by: René van Dorst <[email protected]>
|
|
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
|
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
|
if (!priv)
|
|
if (!priv)
|
|
return -ENOMEM;
|
|
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;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -126,7 +126,7 @@ Signed-off-by: René van Dorst <[email protected]>
|
|
/* Some bootloaders leave the fiber page selected.
|
|
/* Some bootloaders leave the fiber page selected.
|
|
* Switch to the copper page, as otherwise we read
|
|
* Switch to the copper page, as otherwise we read
|
|
* the PHY capabilities from the fiber side.
|
|
* 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)
|
|
if (ret)
|
|
goto err;
|
|
goto err;
|
|
}
|
|
}
|
|
@@ -134,7 +134,7 @@ Signed-off-by: René van Dorst <[email protected]>
|
|
|
|
|
|
return 0;
|
|
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;
|
|
int ss, err, old_link = phydev->link;
|
|
|
|
|
|
@@ -145,7 +145,7 @@ Signed-off-by: René van Dorst <[email protected]>
|
|
/* Update the link, but return if there was an error */
|
|
/* Update the link, but return if there was an error */
|
|
err = genphy_update_link(phydev);
|
|
err = genphy_update_link(phydev);
|
|
if (err)
|
|
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;
|
|
int ret;
|
|
|
|
|
|
@@ -158,7 +158,7 @@ Signed-off-by: René van Dorst <[email protected]>
|
|
ret = at803x_config_mdix(phydev, phydev->mdix_ctrl);
|
|
ret = at803x_config_mdix(phydev, phydev->mdix_ctrl);
|
|
if (ret < 0)
|
|
if (ret < 0)
|
|
return ret;
|
|
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)
|
|
if (err)
|
|
return err;
|
|
return err;
|
|
|
|
|
|
@@ -166,7 +166,7 @@ Signed-off-by: René van Dorst <[email protected]>
|
|
if (!at803x_match_phy_id(phydev, ATH8031_PHY_ID))
|
|
if (!at803x_match_phy_id(phydev, ATH8031_PHY_ID))
|
|
return 0;
|
|
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,
|
|
linkmode_clear_bit(ETHTOOL_LINK_MODE_1000baseX_Full_BIT,
|
|
phydev->supported);
|
|
phydev->supported);
|
|
@@ -174,7 +174,7 @@ Signed-off-by: René van Dorst <[email protected]>
|
|
return 0;
|
|
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 */
|
|
/* Qualcomm Atheros AR8031/AR8033 */
|
|
PHY_ID_MATCH_EXACT(ATH8031_PHY_ID),
|
|
PHY_ID_MATCH_EXACT(ATH8031_PHY_ID),
|
|
.name = "Qualcomm Atheros AR8031/AR8033",
|
|
.name = "Qualcomm Atheros AR8031/AR8033",
|