Re: [net-next RFC PATCH v2 3/3] dt-bindings: net: Document support for Aeonsemi PHYs

Andrew Lunn
2025-03-26T15:08:46Z

> + A PHY with not firmware loaded will be exposed on the MDIO bus with ID
> + 0x7500 0x7500 or 0x7500 0x9410 on C45 registers.

> +select:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - ethernet-phy-id7500.9410
> + - ethernet-phy-id7500.9402
> + - ethernet-phy-id7500.9412
> + - ethernet-phy-id7500.9422
> + - ethernet-phy-id7500.9432
> + - ethernet-phy-id7500.9442
> + - ethernet-phy-id7500.9452
> + - ethernet-phy-id7500.9462
> + - ethernet-phy-id7500.9472
> + - ethernet-phy-id7500.9482
> + - ethernet-phy-id7500.9492

> + ethernet-phy@1f {
> + compatible = "ethernet-phy-id7500.9410",
> + "ethernet-phy-ieee802.3-c45";

You need to be careful here. And fully understand what this means. In
general, you don't list a compatible here, or only
ethernet-phy-ieee802.3-c45. This is because the bus can be enumerated,
you can get the ID from the device. What is in the device is more
likely to be correct than whatever the DT author put here. However,
you can state a compatible with an ID, and when you do that, it means
the PHY device ID in the silicon is broken, ignore it, probe based on
the value here. So if you state ethernet-phy-id7500.9410, it does not
matter if there is firmware or not in the PHY, what ID the PHY has, it
will get probed as a ethernet-phy-id7500.9410.

Except, if there is a .match_phy_device in the driver ops. If there is
a .match_phy_device the driver does whatever it wants to try to
identify the device and perform a match.

Andrew