Hi Andrew, On Tue, Mar 17, 2020 at 03:04:26PM +0100, Andrew Lunn wrote: > On Tue, Mar 17, 2020 at 05:06:50PM +0530, Calvin Johnson wrote: > > Hi, > > > > On Fri, Jan 31, 2020 at 09:04:34PM +0530, Calvin Johnson wrote: > > > > <snip> > > > > > +/** > > > + * fwnode_mdiobus_child_is_phy - Return true if the child is a PHY node. > > > + * It must either: > > > + * o Compatible string of "ethernet-phy-ieee802.3-c45" > > > + * o Compatible string of "ethernet-phy-ieee802.3-c22" > > > + * Checking "compatible" property is done, in order to follow the DT binding. > > > + */ > > > +static bool fwnode_mdiobus_child_is_phy(struct fwnode_handle *child) > > > +{ > > > + int ret; > > > + > > > + ret = fwnode_property_match_string(child, "compatible", > > > + "ethernet-phy-ieee802.3-c45"); > > > + if (!ret) > > > + return true; > > > + > > > + ret = fwnode_property_match_string(child, "compatible", > > > + "ethernet-phy-ieee802.3-c22"); > > > + if (!ret) > > > + return true; > > > + > > > + if (!fwnode_property_present(child, "compatible")) > > > + return true; > > > + > > > + return false; > > > +} > > > > Can we use _CID in ACPI to get the compatible string? Is there any other method > > to handle this kind of situation where we would like to pass C45 or C22 info to > > the mdiobus driver? > > Hi Calvin > > Is there any defacto standardised way to stuff this device tree > property into ACPI? It is one of the key properties, so either there > is one standard way, or lots of variants because nobody can be > bothered to go to the ACPI standardisation body and get it formalised. _DSD package is used to stuff this kind of DT property. IMO, this is not the standard way as C22 and C45 are key properties for MDIO. Eg usage of _DSD: https://source.codeaurora.org/external/qoriq/qoriq-components/edk2-platforms/tree/Platform/NXP/LX2160aRdbPkg/AcpiTables/Dsdt/Mdio.asl?h=LX2160_UEFI_ACPI_EAR1 Name (_DSD, Package () { ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () { Package () {"reg", 5}, Package () {"phy-addr", 5}, Package () {"compatible", "ethernet-phy-ieee802.3-c45"} } }) Ideally, MDIO bus should be part of the ACPI spec. Maybe this property can be included in: https://uefi.org/sites/default/files/resources/nic-request-v2.pdf I'm still looking for a better approach than _DSD till ACPI spec defines it. Regards Calvin