ARM: dts: sunxi: Add mdio bus sub-node to GMAC
authorChen-Yu Tsai <wens@csie.org>
Wed, 14 Aug 2019 04:22:08 +0000 (12:22 +0800)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Fri, 23 Aug 2019 07:14:48 +0000 (09:14 +0200)
The DWMAC binding never supported having the Ethernet PHY node as a
direct child to the controller, nor did it support the "phy" property
as a way to specify which Ethernet PHY to use. What seemed to work
was simply the implementation ignoring the "phy" property and instead
probing all addresses on the MDIO bus and using the first available
one.

The recent switch from "phy" to "phy-handle" breaks the assumptions
of the implementation, and does not match what the binding requires.
The binding requires that if an MDIO bus is described, it shall be
a sub-node with the "snps,dwmac-mdio" compatible string.

Add a device node for the MDIO bus, and move the Ethernet PHY node
under it. Also fix up the #address-cells and #size-cells properties
where needed.

Fixes: de332de26d19 ("ARM: dts: sunxi: Switch from phy to phy-handle")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
34 files changed:
arch/arm/boot/dts/sun6i-a31-colombus.dts
arch/arm/boot/dts/sun6i-a31-hummingbird.dts
arch/arm/boot/dts/sun6i-a31-i7.dts
arch/arm/boot/dts/sun6i-a31-m9.dts
arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
arch/arm/boot/dts/sun6i-a31.dtsi
arch/arm/boot/dts/sun6i-a31s-cs908.dts
arch/arm/boot/dts/sun6i-a31s-sina31s.dts
arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
arch/arm/boot/dts/sun7i-a20-bananapi.dts
arch/arm/boot/dts/sun7i-a20-bananapro.dts
arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
arch/arm/boot/dts/sun7i-a20-cubietruck.dts
arch/arm/boot/dts/sun7i-a20-hummingbird.dts
arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
arch/arm/boot/dts/sun7i-a20-icnova-swac.dts
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts
arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
arch/arm/boot/dts/sun7i-a20-m3.dts
arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts
arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
arch/arm/boot/dts/sun7i-a20-orangepi.dts
arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
arch/arm/boot/dts/sun7i-a20-pcduino3.dts
arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
arch/arm/boot/dts/sun7i-a20.dtsi
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
arch/arm/boot/dts/sun9i-a80-optimus.dts
arch/arm/boot/dts/sun9i-a80.dtsi

index 50092b0bd0fefd535599f1333d0e16851c5257b9..93a15eaaa8cbd81873dc955c923aa7021f4276bc 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "rgmii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c0 {
        };
 };
 
+&mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v0>;
        bus-width = <4>;
index 7c611ddbaf2f7c8cead535367110b0a72a47fd32..049e6ab3cf56c6fa9c2a4bc2fe576a38ee663d2d 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "rgmii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-               reset-gpios = <&pio 0 21 GPIO_ACTIVE_LOW>;
-               reset-assert-us = <10000>;
-               reset-deassert-us = <30000>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+               reset-gpios = <&pio 0 21 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <30000>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_dcdc1>;
        bus-width = <4>;
index ebb0b4710afb3c41ea72c44af8f18c85129cda62..6cc8ccf53d886e9f9c90bee9f4f0a7d5f61a6178 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 4910c6ccf2f76f11c57d6fbc9199ed50ca89718a..a645c8f4257c039b7410d9d52d998faea9ade243 100644 (file)
        phy-mode = "mii";
        phy-supply = <&reg_dldo1>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &ir {
        status = "okay";
 };
 
+&mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_dcdc1>;
        bus-width = <4>;
index 703e1c19b407e940430be4a3826cef4d16434029..648f247462344de4851f1a13ff2bbf58905116a2 100644 (file)
        phy-mode = "mii";
        phy-supply = <&reg_dldo1>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &ir {
        status = "okay";
 };
 
+&mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_dcdc1>;
        bus-width = <4>;
index 9ddde111f6759a70437bef6e1f70c09bd069d6de..8d0db8a2f9d161c110ff1c5df63cad5b3a6b1bfd 100644 (file)
                        snps,fixed-burst;
                        snps,force_sf_dma_mode;
                        status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+
+                       mdio: mdio {
+                               compatible = "snps,dwmac-mdio";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
                };
 
                crypto: crypto-engine@1c15000 {
index 6e9ec3f1695e859be51a45ae58b8ee633551e807..1d15e15011c6876c5c66ec5bf2d4af715e58f5e6 100644 (file)
@@ -70,9 +70,6 @@
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &ir {
        status = "okay";
 };
 
+&mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &ohci1 {
        status = "okay";
 };
index c92779bc8f855d9cab1a5a0f9e872cb92eefbca3..0af48e143b664c299e303418e0f01495e5e70ee4 100644 (file)
        phy-mode = "mii";
        phy-supply = <&reg_dldo1>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        };
 };
 
+&mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_dcdc1>;
        bus-width = <4>;
index e993b2d8ddd05052a7334213bcf8a620a3901b4d..708caee52425f5293e69431c7d98c0dcc95d56ef 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_dldo1>;
        status = "okay";
+};
+
+&ir {
+       pinctrl-names = "default";
+       pinctrl-0 = <&s_ir_rx_pin>;
+       status = "okay";
+};
 
+&mdio {
        phy1: ethernet-phy@1 {
                reg = <1>;
                reset-gpios = <&pio 0 21 GPIO_ACTIVE_LOW>; /* PA21 */
        };
 };
 
-&ir {
-       pinctrl-names = "default";
-       pinctrl-0 = <&s_ir_rx_pin>;
-       status = "okay";
-};
-
 &mmc0 {
        vmmc-supply = <&reg_dcdc1>;
        bus-width = <4>;
index c601ecf5ab350ab63c5862c98475ba8d7b342586..32d5d45a35c036934d56651bbe39f16fb9c39cdf 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_gmac_3v3>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index c5730b30a15d52269fefc58c2aa901a6db04fb67..bb3987e101c291669a609499d481b5bb3d20c0bd 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_gmac_3v3>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 86f4ebb777036f0611c31b0bd00e0d02584e6302..01ccff756996d83ac7d843f6fe61d7dcab5bad37 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_gmac_3v3>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c0 {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index e322f0f0600330e47c7fbaea8625270439636fa3..b8203e4ef21c975daa9fbd1ba19f5366d15952b2 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &ohci0 {
        status = "okay";
 };
index a8f7f63fdde192f97ae410575bc4772f366b0eb0..8c8dee6ea461a801e1bcc5db09ba7178f94b4ba2 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "rgmii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 322717cb0b9ae93095a0cf099d562faaf35bae03..3def2a33059810a3b3e18c4d491aad6c54998ebd 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_gmac_vdd>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-               reset-gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */
-               reset-assert-us = <10000>;
-               /* wait 1s after reset, otherwise fail to read phy id */
-               reset-deassert-us = <1000000>;
-       };
 };
 
 &i2c0 {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+               reset-gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */
+               reset-assert-us = <10000>;
+               /* wait 1s after reset, otherwise fail to read phy id */
+               reset-deassert-us = <1000000>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v0>;
        bus-width = <4>;
index 8a610dacb983add891d6daa56be53de9f9dc829f..358ed5f1b1c1c1482fbaf75dcbab173cf37f1333 100644 (file)
        phy-mode = "mii";
        phy-supply = <&reg_gmac_3v3>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c0 {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index a20e91c8dbe5312c7277822499342cd9903193a7..413505f45a81e2e5af8b211f538c2ab98580c749 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c0 {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index c27567c0b02768abb0748befa6c2dddc0b6d4565..946c272783210f45aaf40b16efaff25f5b4c9af8 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
+};
 
+&gmac_mdio {
        phy1: ethernet-phy@1 {
                reg = <1>;
        };
index 3e170cfac86aeab3cc805c7468d8748244aa723d..17fa8901fc002e6f045c826ab47106f330b12e2b 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_gmac_3v3>;
        status = "okay";
-       /delete-property/#address-cells;
-       /delete-property/#size-cells;
 
        fixed-link {
                speed = <1000>;
index bde0ef783e71a42fa4952bc60bd0d8170dc1fdaa..6bff9e731fc34455313002684d78b8c255fac5a0 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c0 {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index f419b9ee9d1e8531abb742683e1dec7b0cfe8b57..6f9c54b8e49a5a5cd5b6d0fae1eeb84a82286998 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "rgmii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        };
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index d3d03b7ffb1a7415fe81a911d6cc131f997cb2c7..230d62a6b8f10a6b34782e4b2e6b3581cca2880a 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_vcc3v3>;
        status = "okay";
-
-       phy3: ethernet-phy@3 {
-               reg = <3>;
-               reset-gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */
-               reset-assert-us = <10000>;
-               /* wait 1s after reset, otherwise fail to read phy id */
-               reset-deassert-us = <1000000>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy3: ethernet-phy@3 {
+               reg = <3>;
+               reset-gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */
+               reset-assert-us = <10000>;
+               /* wait 1s after reset, otherwise fail to read phy id */
+               reset-deassert-us = <1000000>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 70a883276d34eae2ee6dd510bf80de635c258e9c..2adbac8601193bac874ebcd3c83310f2727261eb 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        };
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 0fe657e062a7793cc6bf15ba0e840049d4ef05de..9ba62774e89a152365eb71e058e1f4a38910dd42 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "rgmii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        vref-supply = <&reg_vcc3v0>;
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 559736961b54eed23f7a8e4346af98cf2e60a0e3..359bd0d5b3b1e59f76fc7a649f1d3aae616f052b 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        };
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index a94ff50bcf73cdaf90ee495680e656c3fa3991c2..2e328d2cefc1909e38ea7abd8e2d56926d604376 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_gmac_3v3>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 956579a10b5ff5f3fff4f752b1e4c1e73a54a2dc..d75b2e2bab282208501c5416cca89b98533a2443 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_gmac_3v3>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c0 {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 993fb97d19dfed9b17eb795da9a999ca3ad75bc4..fce2f7fcd084a57fa0ff503670e421a83e9c875e 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "rgmii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &hdmi {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 02e321523d0ed5b245f41b4c3ad6e282923640d9..cc8271d777b8e03628b77100c944a7f39c71bfec 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "mii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c0 {
        status = "okay";
 };
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 9dfe7e2a08cce1aa6d2afee1221cd260461b341a..3bfae98f3cc3a18e6d312ced1337acb9340e397f 100644 (file)
        phy-handle = <&phy1>;
        phy-mode = "rgmii";
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c0 {
 
 #include "axp209.dtsi"
 
+&gmac_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
index 9ad8e445b24017be087f35ed4854313554105a0f..651d7fe6b8babddccab87f260d04a63f929bdfdd 100644 (file)
                        snps,fixed-burst;
                        snps,force_sf_dma_mode;
                        status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+
+                       gmac_mdio: mdio {
+                               compatible = "snps,dwmac-mdio";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
                };
 
                hstimer@1c60000 {
index 650890b049e2fc23977066989e7a7ead06f69327..d3b337b043a15bd15059e66e5b91beed71b00b83 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_cldo1>;
        status = "okay";
-
-       phy1: ethernet-phy@1 {
-               reg = <1>;
-       };
 };
 
 &i2c3 {
        status = "okay";
 };
 
+&mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins>;
index 03ad25534f20c1e442d595f91b3d5b9ec6d33ea7..bbc6335e563141ee41ae97b6546c053ad77470cc 100644 (file)
        phy-mode = "rgmii";
        phy-supply = <&reg_cldo1>;
        status = "okay";
+};
 
+&mdio {
        phy1: ethernet-phy@1 {
                reg = <1>;
        };
index 310cd972ee5b60dfba0d12bd39c2edfa6edf88b7..c34d505c7efeaecb95cab277cb24e601441321ff 100644 (file)
                        snps,fixed-burst;
                        snps,force_sf_dma_mode;
                        status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+
+                       mdio: mdio {
+                               compatible = "snps,dwmac-mdio";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
                };
 
                ehci0: usb@a00000 {