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 <and...@lunn.ch>
---
 net/dsa/dsa.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
index afff17341b73..76e3800765f8 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -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 device_node *port_dn;
        struct phy_device *phydev;
-       int ret, port;
+       int ret, port, mode;
 
        for (port = 0; port < DSA_MAX_PORTS; 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;
                        }
                        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_read_status(phydev);
                        if (ds->drv->adjust_link)
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to