Hi, Timur && Andrew, Please correct me if there is any problem with my understanding.
GPIO is a general property of devices, the property point to an entity such as device tree or ACPI table, we also can directly implement it in device node. For ACPI, there is _DSD that should include GPIO property if we need it. No matter which devices implement it, MAC or MDIO also can implement a _DSD. We can explicitly define a GPIO property in MDIO, but I think this may conflict with the existing definition of ACPI. ACPI guys may not agree to do this because there already has _DSD. We just need to use _DSD to notify GPIO layer there may have a Device Specific Data for this device. So far MDIO owns external PHY "reset" as an optional feature and MDIO is integrated in MAC, so we need to point the MAC adev to MDIO->dev.fwnode. And most importantly this feature does not depend on SoC, this feature depends on MotherBoard design. ACPI "reset-gpios" example: Documentation/acpi/gpio-properties.txt. Cheers, -Dongsheng On 2018/1/26 0:05:02, "Timur Tabi" <ti...@codeaurora.org> wrote: >On 01/25/2018 09:59 AM, Andrew Lunn wrote: >>I expect we will implement something like acpi_mdiobus_register(), and >>it will take a pointer to an ACPI node. And maybe on top of >>of_mdiobus_register() and of_mdiobus_register() we will add a >>device_mdiobus_register(). > >Makes sense. If you remember, please CC me on any patches. > >>What i'm trying to avoid is drivers ending up with different ACPI >>bindings. If you don't want to add an ACPI node/property then no >>problems, just don't expect to be able to use any of the optional >>features of the MDIO core, like the GPIOs for reset. > >Well, if a new binding is created, we will update our ACPI tables and >drivers use it. But we may need to keep the legacy code in emac-phy.c >for backwards compatibility with older firmware. > >-- >Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm >Technologies, Inc. Qualcomm Technologies, Inc. is a member of the >Code Aurora Forum, a Linux Foundation Collaborative Project.