net: phy: at803x: move specific DT option for at8031 to specific probe

Move specific DT options for at8031 to specific probe to tidy things up
and make at803x_parse_dt more generic.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Christian Marangi 2023-12-08 15:51:52 +01:00 committed by David S. Miller
parent d43cff3f82
commit 900eef75cc

View file

@ -825,30 +825,6 @@ static int at803x_parse_dt(struct phy_device *phydev)
}
}
/* Only supported on AR8031/AR8033, the AR8030/AR8035 use strapping
* options.
*/
if (phydev->drv->phy_id == ATH8031_PHY_ID) {
if (of_property_read_bool(node, "qca,keep-pll-enabled"))
priv->flags |= AT803X_KEEP_PLL_ENABLED;
ret = at8031_register_regulators(phydev);
if (ret < 0)
return ret;
ret = devm_regulator_get_enable_optional(&phydev->mdio.dev,
"vddio");
if (ret) {
phydev_err(phydev, "failed to get VDDIO regulator\n");
return ret;
}
/* Only AR8031/8033 support 1000Base-X for SFP modules */
ret = phy_sfp_probe(phydev, &at803x_sfp_ops);
if (ret < 0)
return ret;
}
return 0;
}
@ -1582,6 +1558,30 @@ static int at803x_cable_test_start(struct phy_device *phydev)
return 0;
}
static int at8031_parse_dt(struct phy_device *phydev)
{
struct device_node *node = phydev->mdio.dev.of_node;
struct at803x_priv *priv = phydev->priv;
int ret;
if (of_property_read_bool(node, "qca,keep-pll-enabled"))
priv->flags |= AT803X_KEEP_PLL_ENABLED;
ret = at8031_register_regulators(phydev);
if (ret < 0)
return ret;
ret = devm_regulator_get_enable_optional(&phydev->mdio.dev,
"vddio");
if (ret) {
phydev_err(phydev, "failed to get VDDIO regulator\n");
return ret;
}
/* Only AR8031/8033 support 1000Base-X for SFP modules */
return phy_sfp_probe(phydev, &at803x_sfp_ops);
}
static int at8031_probe(struct phy_device *phydev)
{
int ret;
@ -1590,6 +1590,13 @@ static int at8031_probe(struct phy_device *phydev)
if (ret)
return ret;
/* Only supported on AR8031/AR8033, the AR8030/AR8035 use strapping
* options.
*/
ret = at8031_parse_dt(phydev);
if (ret)
return ret;
/* Disable WoL in 1588 register which is enabled
* by default
*/