kernel: add OF support to rtl8355 driver
authorJohn Crispin <john@phrozen.org>
Sun, 6 May 2018 08:15:48 +0000 (10:15 +0200)
committerJohn Crispin <john@phrozen.org>
Mon, 7 May 2018 06:06:51 +0000 (08:06 +0200)
Signed-off-by: John Crispin <john@phrozen.org>
target/linux/generic/files/drivers/net/phy/rtl8366_smi.c

index ae04597..0873224 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/of_gpio.h>
 #include <linux/rtl8366.h>
 #include <linux/version.h>
+#include <linux/of_mdio.h>
 
 #ifdef CONFIG_RTL8366_SMI_DEBUG_FS
 #include <linux/debugfs.h>
@@ -915,6 +916,11 @@ static inline void rtl8366_debugfs_remove(struct rtl8366_smi *smi) {}
 static int rtl8366_smi_mii_init(struct rtl8366_smi *smi)
 {
        int ret;
+       struct device_node *np = NULL;
+
+#ifdef CONFIG_OF
+       np = of_get_child_by_name(smi->parent->of_node, "mdio-bus");
+#endif
 
        smi->mii_bus = mdiobus_alloc();
        if (smi->mii_bus == NULL) {
@@ -939,7 +945,10 @@ static int rtl8366_smi_mii_init(struct rtl8366_smi *smi)
        }
 #endif
 
-       ret = mdiobus_register(smi->mii_bus);
+       if (np)
+               ret = of_mdiobus_register(smi->mii_bus, np);
+       else
+               ret = mdiobus_register(smi->mii_bus);
        if (ret)
                goto err_free;