On Thu, Aug 16, 2018 at 08:54:40AM +0200, Ahmad Fatoum wrote: > On 08/15/2018 04:32 AM, Andrew Lunn wrote: > > Ahmed, where is the device tree for the EVB-KSZ9477? > > I've attached it [1]. It's still work-in-progress (DSA doesn't work yet for example), but Ethernet is usable with Linux v4.18 and my patch applied. > Thanks. So the problem is, macb does not put phy DT nodes inside an mdio subnode. It places them directly in the MAC node. So of_mdiobus_register() is being called with the MAC np. of_mdiobus_register() then looks for children of the MAC node, assuming they are phys. But when you have a fixed phy node, it is not a phy, it does not have a reg property, and you get these warnings. There are cases when you need both fixed-phy and a mdio bus. e.g. a DSA switch hanging off MDIO. So we have a few things here... 1) A regression. We should find a fix for that. Maybe we should special case a child node called 'fixed-link' in of_mdiobus_register(). I would suggest adding a single warning if such node is found. 2) Missing functionality. Add support for an mdio container node. node = of_get_child_by_name(np, "mdio"); if (node) err = of_mdiobus_register(bp->mii_bus, node); else err = of_mdiobus_register(bp->mii_bus, np); 3) Modify the existing dts files to make use of this container. Because of backwards compatibility, we cannot force the use of it, but we can encourage it. Andrew