Hi,

does anyone have any strong feelings either way about the idea of driving Eth PHYs as udevices?
I'm looking for a solution for a few problems:
- There are a few Eth switches that are accessed over MDIO and could/should be driven as DSA switches instead of PHYs. This requires that MDIO does probing of child devices like any regular bus and doesn't assume they are all PHYs. Also it requires that MDIO enumerates (at least some) of its children instead of wating for an Eth device to come connect to a specific PHY/addr. - PHY scanning using empty 'reg' in PHY DT nodes works for anything more complicated than a single PHY on the bus only only if there is some state in the bus. In Linux child nodes with valid reg are bound first and then any others left are associated with PHYs found scanning. This doesn't work if there is no enumeration on the MDIO bus and it just waits for Eth drivers to connect to PHYs. - there are a few other peculiarities with current PHY support, mentioned by Grygorii on this list, like phy probe being called before its DT node was populated in phydev structure. Using the regular udevice infrastructure should fix that and make PHYs consistent with just about anything else.

What I'm thinking to do is to enumerate all child DT nodes when MDIO is probed and bind drivers to them. If some are missing the 'reg' property the bus is scanned. The devices associated with DT child nodes are bound to drivers, probed, if they are PHYs then they have to wait for someone to come connect to them, but if they are switches or anything else they are set up as expected.

Thoughts?
Alex

Reply via email to