> > > properties: > > > + compatible: > > > + enum: > > > + - ethernet-phy-id001c.c800 > > > + - ethernet-phy-id001c.c816 > > > + - ethernet-phy-id001c.c838 > > > + - ethernet-phy-id001c.c840 > > > + - ethernet-phy-id001c.c848 > > > + - ethernet-phy-id001c.c849 > > > + - ethernet-phy-id001c.c84a > > > + - ethernet-phy-id001c.c862 > > > + - ethernet-phy-id001c.c878 > > > + - ethernet-phy-id001c.c880 > > > + - ethernet-phy-id001c.c910 > > > + - ethernet-phy-id001c.c912 > > > + - ethernet-phy-id001c.c913 > > > + - ethernet-phy-id001c.c914 > > > + - ethernet-phy-id001c.c915 > > > + - ethernet-phy-id001c.c916 > > > + - ethernet-phy-id001c.c942 > > > + - ethernet-phy-id001c.c961 > > > + - ethernet-phy-id001c.cad0 > > > + - ethernet-phy-id001c.cb00 > > > > Can you please elaborate why you didn't add an > > "ethernet-phy-ieee802.3-c22" fallback? Sorry, missed the original email. "ethernet-phy-ieee802.3-c22" is not a fallback. It simply states you can talk to the PHY using clause 22. This is the default. You can also use "ethernet-phy-ieee802.3-c45" to say use clause 45 to talk to the PHY. So you are basically saying which protocol the device is compatible with, not what driver the device is compatible with. In general, you don't need a compatible. The bus will be probed and the ID registers read. A driver matching those IDs will be found and loaded. If the PHY does not respond, for example because its clocks are off, or it is held in reset, you might need to specific the values of the ID registers in DT. The driver for those ID values will then be loaded, and the driver can arrange to enable the clocks/reset etc. No checking is performed if the ID values in DT match the actual hardware, so use with caution. It is known for boards to swap for a pin compatible PHY during the life of a product. If you don't have a compatible, the right thing should happen. With a compatible, you force the use of the wrong driver. Andrew