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

Reply via email to