On Mon, Aug 23, 2021 at 12:58 PM Andrew Lunn <andrew@xxxxxxx> wrote: > > > PHY seems to be one of those cases where it's okay to have the > > compatible property but also okay to not have it. > > Correct. They are like PCI or USB devices. You can ask it, what are > you? There are two registers in standard locations which give you a > vendor and product ID. We use that to find the correct driver. For all the cases of PHYs that currently don't need any compatible string, requiring a compatible string of type "ethernet-phy-standard" would have been nice. That would have made PHYs consistent with the general DT norm of "you need a compatible string to be matched with the device". Anyway, it's too late to do that now. So I'll have to deal with this some other way (I have a bunch of ideas, so it's not the end of the world). > You only need a compatible when things are not so simple. > > 1) The IDs are wrong. Some silicon vendors do stupid things > > 2) Chicken/egg problems, you cannot read the ID registers until you > load the driver and some resource is enabled. > > 3) It is a C45 devices, e.g. part of clause 45 of 802.3, which > requires a different protocol to be talked over the bus. So the > compatible string tells you to talk C45 to get the IDs. > > 4) It is not a PHY, but some sort of other MDIO device, and hence > there are no ID registers. Yeah, I was digging through of_mdiobus_child_is_phy() when I was doing the mdio-mux fixes and noticed this. But I missed/forgot the mdiobus doesn't probe part when I sent out the phy-handle patch. -Saravana