Re: [PATCH v1 2/2] of: property: fw_devlink: Add support for "phy-handle" property

From: Andrew Lunn
Date: Sat Aug 14 2021 - 11:23:19 EST


Hi Saravana

> Hi Andrew,
>

> Also there
> are so many phy related properties that my head is spinning. Is there a
> "phy" property (which is different from "phys") that treated exactly as
> "phy-handle"?

Sorry, i don't understand your question.

> + /*
> + * Device tree nodes pointed to by phy-handle never have struct devices
> + * created for them even if they have a "compatible" property. So
> + * return the parent node pointer.
> + */

We have a classic bus with devices on it. The bus master is registers
with linux using one of the mdiobus_register() calls. That then
enumerates the bus, looking at the 32 possible address on the bus,
using mdiobus_scan. It then gets a little complex, due to
history.

Originally, the only thing you could have on an MDIO bus was a
PHY. But devices on MDIO busses are more generic, and Linux gained
support for Ethernet switches on an MDIO bus, and there are a few
other sort device. So to keep the PHY API untouched, but to add these
extra devices, we added the generic struct mdio_device which
represents any sort of device on an MDIO bus. This has a struct device
embedded in it.

When we scan the bus and find a PHY, a struct phy_device is created,
which has an embedded struct mdio_device. The struct device in that is
then registered with the driver core.

So a phy-handle does point to a device, but you need to do an object
orientated style look at the base class to find it.

Andrew