diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2021-09-18 15:46:54 +0300 |
---|---|---|
committer | Ramon Fried <rfried.dev@gmail.com> | 2021-09-28 18:50:56 +0300 |
commit | d883a5fb52b3fe1b6cb653faa60095df0c11a6bf (patch) | |
tree | 597e665b7b0c87eb9dd52f4ca47ae25e908886ae /drivers/net/tsec.c | |
parent | 9bf2b962ff3585d570f3a46457f3d598c3ef301f (diff) | |
download | u-boot-d883a5fb52b3fe1b6cb653faa60095df0c11a6bf.tar.gz |
net: tsec: only call tsec_get_interface as fallback to DT-specified PHY mode
Currently the init_phy function may overwrite the priv->interface
property, since it calls tsec_get_interface which tries to determine it
dynamically based on default register values in ECNTRL.
Let's do that only if phy-connection-type happens to not be defined in
the device tree.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Diffstat (limited to 'drivers/net/tsec.c')
-rw-r--r-- | drivers/net/tsec.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 260ae88d99..851072c223 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -701,8 +701,6 @@ static int init_phy(struct tsec_private *priv) /* Assign a Physical address to the TBI */ out_be32(®s->tbipa, priv->tbiaddr); - priv->interface = tsec_get_interface(priv); - if (priv->interface == PHY_INTERFACE_MODE_SGMII) tsec_configure_serdes(priv); @@ -888,10 +886,9 @@ int tsec_probe(struct udevice *dev) phy_mode = dev_read_prop(dev, "phy-connection-type", NULL); if (phy_mode) pdata->phy_interface = phy_get_interface_by_name(phy_mode); - if (pdata->phy_interface == -1) { - printf("Invalid PHY interface '%s'\n", phy_mode); - return -EINVAL; - } + if (pdata->phy_interface == -1) + pdata->phy_interface = tsec_get_interface(priv); + priv->interface = pdata->phy_interface; /* Check for speed limit, default is 1000Mbps */ |