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:
parent
d43cff3f82
commit
900eef75cc
@ -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
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user