net: dsa: Allow DSA and CPU ports to have a phy-mode property
It can be useful for DSA and CPU ports to have a phy-mode property, in particular to specify RGMII delays. Parse the property and set it in the fixed-link phydev. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Acked-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
39b0c70519
commit
e448534668
|
@ -181,7 +181,7 @@ static int dsa_cpu_dsa_setup(struct dsa_switch *ds, struct net_device *master)
|
||||||
struct dsa_chip_data *cd = ds->pd;
|
struct dsa_chip_data *cd = ds->pd;
|
||||||
struct device_node *port_dn;
|
struct device_node *port_dn;
|
||||||
struct phy_device *phydev;
|
struct phy_device *phydev;
|
||||||
int ret, port;
|
int ret, port, mode;
|
||||||
|
|
||||||
for (port = 0; port < DSA_MAX_PORTS; port++) {
|
for (port = 0; port < DSA_MAX_PORTS; port++) {
|
||||||
if (!(dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port)))
|
if (!(dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port)))
|
||||||
|
@ -196,6 +196,12 @@ static int dsa_cpu_dsa_setup(struct dsa_switch *ds, struct net_device *master)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
phydev = of_phy_find_device(port_dn);
|
phydev = of_phy_find_device(port_dn);
|
||||||
|
|
||||||
|
mode = of_get_phy_mode(port_dn);
|
||||||
|
if (mode < 0)
|
||||||
|
mode = PHY_INTERFACE_MODE_NA;
|
||||||
|
phydev->interface = mode;
|
||||||
|
|
||||||
genphy_config_init(phydev);
|
genphy_config_init(phydev);
|
||||||
genphy_read_status(phydev);
|
genphy_read_status(phydev);
|
||||||
if (ds->drv->adjust_link)
|
if (ds->drv->adjust_link)
|
||||||
|
|
Loading…
Reference in New Issue