| From: |
| Calvin Johnson <calvin.johnson-AT-oss.nxp.com> |
| To: |
| Grant Likely <grant.likely-AT-arm.com>, "Rafael J . Wysocki" <rafael-AT-kernel.org>, Jeremy Linton <jeremy.linton-AT-arm.com>, Andrew Lunn <andrew-AT-lunn.ch>, Andy Shevchenko <andy.shevchenko-AT-gmail.com>, Florian Fainelli <f.fainelli-AT-gmail.com>, Russell King - ARM Linux admin <linux-AT-armlinux.org.uk>, Cristi Sovaiala <cristian.sovaiala-AT-nxp.com>, Florin Laurentiu Chiculita <florinlaurentiu.chiculita-AT-nxp.com>, Ioana Ciornei <ioana.ciornei-AT-nxp.com>, Madalin Bucur <madalin.bucur-AT-oss.nxp.com>, Heikki Krogerus <heikki.krogerus-AT-linux.intel.com>, Marcin Wojtas <mw-AT-semihalf.com>, Pieter Jansen Van Vuuren <pieter.jansenvv-AT-bamboosystems.io>, Jon <jon-AT-solid-run.com>, Saravana Kannan <saravanak-AT-google.com>, Randy Dunlap <rdunlap-AT-infradead.org> |
| Subject: |
| [net-next PATCH v7 00/16] ACPI support for dpaa2 driver |
| Date: |
| Thu, 11 Mar 2021 11:49:55 +0530 |
| Message-ID: |
| <20210311062011.8054-1-calvin.johnson@oss.nxp.com> |
| Cc: |
| linux-arm-kernel-AT-lists.infradead.org, Diana Madalina Craciun <diana.craciun-AT-nxp.com>, linux-acpi-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux.cj-AT-gmail.com, netdev-AT-vger.kernel.org, Laurentiu Tudor <laurentiu.tudor-AT-nxp.com>, Calvin Johnson <calvin.johnson-AT-oss.nxp.com>, "David S. Miller" <davem-AT-davemloft.net>, Frank Rowand <frowand.list-AT-gmail.com>, Heiner Kallweit <hkallweit1-AT-gmail.com>, Ioana Radulescu <ruxandra.radulescu-AT-nxp.com>, Jakub Kicinski <kuba-AT-kernel.org>, Jamie Iles <jamie-AT-nuviainc.com>, Len Brown <lenb-AT-kernel.org>, "Rafael J. Wysocki" <rjw-AT-rjwysocki.net>, Rob Herring <robh+dt-AT-kernel.org>, devicetree-AT-vger.kernel.org |
| Archive-link: |
| Article |
This patch set provides ACPI support to DPAA2 network drivers.
It also introduces new fwnode based APIs to support phylink and phy
layers
Following functions are defined:
phylink_fwnode_phy_connect()
fwnode_mdiobus_register_phy()
fwnode_mdiobus_register()
fwnode_get_phy_id()
fwnode_phy_find_device()
device_phy_find_device()
fwnode_get_phy_node()
fwnode_mdio_find_device()
acpi_get_local_address()
First one helps in connecting phy to phylink instance.
Next three helps in getting phy_id and registering phy to mdiobus
Next two help in finding a phy on a mdiobus.
Next one helps in getting phy_node from a fwnode.
Last one is used to get local address from _ADR object.
Corresponding OF functions are refactored.
Tested-on: LX2160ARDB
Changes in v7:
- correct fwnode_mdio_find_device() description
- check NULL in unregister_mii_timestamper()
- Call unregister_mii_timestamper() without NULL check
- Create fwnode_mdio.c and move fwnode_mdiobus_register_phy()
- include fwnode_mdio.h
- Include headers directly used in acpi_mdio.c
- Move fwnode_mdiobus_register() to fwnode_mdio.c
- Include fwnode_mdio.h
- Alphabetically sort header inclusions
- remove unnecassary checks
Changes in v6:
- Minor cleanup
- fix warning for function parameter of fwnode_mdio_find_device()
- Initialize mii_ts to NULL
- use GENMASK() and ACPI_COMPANION_SET()
- some cleanup
- remove unwanted header inclusion
- remove OF check for fixed-link
- use dev_fwnode()
- remove useless else
- replace of_device_is_available() to fwnode_device_is_available()
Changes in v5:
- More cleanup
- Replace fwnode_get_id() with acpi_get_local_address()
- add missing MODULE_LICENSE()
- replace fwnode_get_id() with OF and ACPI function calls
- replace fwnode_get_id() with OF and ACPI function calls
Changes in v4:
- More cleanup
- Improve code structure to handle all cases
- Remove redundant else from fwnode_mdiobus_register()
- Cleanup xgmac_mdio_probe()
- call phy_device_free() before returning
Changes in v3:
- Add more info on legacy DT properties "phy" and "phy-device"
- Redefine fwnode_phy_find_device() to follow of_phy_find_device()
- Use traditional comparison pattern
- Use GENMASK
- Modified to retrieve reg property value for ACPI as well
- Resolved compilation issue with CONFIG_ACPI = n
- Added more info into documentation
- Use acpi_mdiobus_register()
- Avoid unnecessary line removal
- Remove unused inclusion of acpi.h
Changes in v2:
- Updated with more description in document
- use reverse christmas tree ordering for local variables
- Refactor OF functions to use fwnode functions
Calvin Johnson (16):
Documentation: ACPI: DSD: Document MDIO PHY
net: phy: Introduce fwnode_mdio_find_device()
net: phy: Introduce phy related fwnode functions
of: mdio: Refactor of_phy_find_device()
net: phy: Introduce fwnode_get_phy_id()
of: mdio: Refactor of_get_phy_id()
net: mii_timestamper: check NULL in unregister_mii_timestamper()
net: mdiobus: Introduce fwnode_mdiobus_register_phy()
of: mdio: Refactor of_mdiobus_register_phy()
ACPI: utils: Introduce acpi_get_local_address()
net: mdio: Add ACPI support code for mdio
net: mdiobus: Introduce fwnode_mdiobus_register()
net/fsl: Use fwnode_mdiobus_register()
net: phylink: introduce phylink_fwnode_phy_connect()
net: phylink: Refactor phylink_of_phy_connect()
net: dpaa2-mac: Add ACPI support for DPAA2 MAC driver
Documentation/firmware-guide/acpi/dsd/phy.rst | 133 ++++++++++++++++++
MAINTAINERS | 2 +
drivers/acpi/utils.c | 14 ++
.../net/ethernet/freescale/dpaa2/dpaa2-mac.c | 84 ++++++-----
drivers/net/ethernet/freescale/xgmac_mdio.c | 22 +--
drivers/net/mdio/Kconfig | 16 +++
drivers/net/mdio/Makefile | 4 +-
drivers/net/mdio/acpi_mdio.c | 56 ++++++++
drivers/net/mdio/fwnode_mdio.c | 98 +++++++++++++
drivers/net/mdio/of_mdio.c | 80 +----------
drivers/net/phy/mii_timestamper.c | 3 +
drivers/net/phy/phy_device.c | 109 +++++++++++++-
drivers/net/phy/phylink.c | 41 ++++--
include/linux/acpi.h | 7 +
include/linux/acpi_mdio.h | 25 ++++
include/linux/fwnode_mdio.h | 29 ++++
include/linux/of_mdio.h | 6 +-
include/linux/phy.h | 31 ++++
include/linux/phylink.h | 3 +
19 files changed, 631 insertions(+), 132 deletions(-)
create mode 100644 Documentation/firmware-guide/acpi/dsd/phy.rst
create mode 100644 drivers/net/mdio/acpi_mdio.c
create mode 100644 drivers/net/mdio/fwnode_mdio.c
create mode 100644 include/linux/acpi_mdio.h
create mode 100644 include/linux/fwnode_mdio.h
--
2.17.1