mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
net: ksz9477: add port_probe function to config phy
Add a port_probe function to configure the phy. This leads to earlier link negotiation so the port is more likely to be ready when used. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
This commit is contained in:
parent
2b7252953c
commit
1416b80de4
1 changed files with 13 additions and 13 deletions
|
@ -337,11 +337,21 @@ static int ksz_port_setup(struct udevice *dev, int port,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ksz_port_probe(struct udevice *dev, int port, struct phy_device *phy)
|
||||
{
|
||||
int supported = PHY_GBIT_FEATURES;
|
||||
|
||||
/* configure phy */
|
||||
phy->supported &= supported;
|
||||
phy->advertising &= supported;
|
||||
|
||||
return phy_config(phy);
|
||||
}
|
||||
|
||||
static int ksz_port_enable(struct udevice *dev, int port, struct phy_device *phy)
|
||||
{
|
||||
struct dsa_pdata *pdata = dev_get_uclass_plat(dev);
|
||||
struct ksz_dsa_priv *priv = dev_get_priv(dev);
|
||||
int supported = PHY_GBIT_FEATURES;
|
||||
u8 data8;
|
||||
int ret;
|
||||
|
||||
|
@ -365,23 +375,12 @@ static int ksz_port_enable(struct udevice *dev, int port, struct phy_device *phy
|
|||
if (port == pdata->cpu_port)
|
||||
return 0;
|
||||
|
||||
/* configure phy */
|
||||
phy->supported &= supported;
|
||||
phy->advertising &= supported;
|
||||
ret = phy_config(phy);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = phy_startup(phy);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* start switch */
|
||||
ksz_read8(priv->dev, REG_SW_OPERATION, &data8);
|
||||
data8 |= SW_START;
|
||||
ksz_write8(priv->dev, REG_SW_OPERATION, data8);
|
||||
|
||||
return 0;
|
||||
return phy_startup(phy);
|
||||
}
|
||||
|
||||
static void ksz_port_disable(struct udevice *dev, int port, struct phy_device *phy)
|
||||
|
@ -410,6 +409,7 @@ static void ksz_port_disable(struct udevice *dev, int port, struct phy_device *p
|
|||
}
|
||||
|
||||
static const struct dsa_ops ksz_dsa_ops = {
|
||||
.port_probe = ksz_port_probe,
|
||||
.port_enable = ksz_port_enable,
|
||||
.port_disable = ksz_port_disable,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue