[PATCH net-next 00/28] [RFC] net: dpaa: Convert to phylink

From: Sean Anderson
Date: Fri Jun 17 2022 - 16:33:48 EST


This series converts the DPAA driver to phylink. Additionally,
it also adds a serdes driver to allow for dynamic reconfiguration
between 1g and 10g interfaces (such as in an SFP+ slot). These changes
are submitted together for this RFC, but they will eventually be
submitted separately to the appropriate subsystem maintainers.

Only the mEMAC driver has gotten the phylink treatment for this RFC. I
would appreciate any help towards converting/testing the 10GEC and dTSEC
drivers. I don't have any boards with those MACs, so a large conversion
like this has a high risk of breakage.

I have tried to maintain backwards compatibility with existing device
trees whereever possible. However, one area where I was unable to
achieve this was with QSGMII. Please refer to patch 2 for details.

The serdes driver is mostly functional (but not quite, see patch 25).
However, I am not quite sure about the implementation details. I have made
a fairly extensive commentary on the driver in patch 1, so hopefully that
can provide some context. This series only adds support for the
LS1046ARDB SerDes, but it should be fairly straightforward to add
support for other SoCs and boards. Patches 26-27 should show the typical
steps.

Most of this series can be applied as-is. In particular, patches 4-21
are essentially cleanups which stand on their own merits.

Patches 4-8 were first submitted as [1].

[1] https://lore.kernel.org/netdev/20220531195851.1592220-1-sean.anderson@xxxxxxxx/


Sean Anderson (28):
dt-bindings: phy: Add QorIQ SerDes binding
dt-bindings: net: fman: Add additional interface properties
phy: fsl: Add QorIQ SerDes driver
net: fman: Convert to SPDX identifiers
net: fman: Don't pass comm_mode to enable/disable
net: fman: Store en/disable in mac_device instead of mac_priv_s
net: fman: dtsec: Always gracefully stop/start
net: fman: Get PCS node in per-mac init
net: fman: Store initialization function in match data
net: fman: Move struct dev to mac_device
net: fman: Configure fixed link in memac_initialization
net: fman: Export/rename some common functions
net: fman: memac: Use params instead of priv for max_speed
net: fman: Move initialization to mac-specific files
net: fman: Mark mac methods static
net: fman: Inline several functions into initialization
net: fman: Remove internal_phy_node from params
net: fman: Map the base address once
net: fman: Pass params directly to mac init
net: fman: Use mac_dev for some params
net: fman: Clean up error handling
net: fman: memac: Add serdes support
net: fman: memac: Use lynx pcs driver
net: dpaa: Use mac_dev variable in dpaa_netdev_init
[RFC] net: dpaa: Convert to phylink
arm64: dts: ls1046ardb: Add serdes bindings
arm64: dts: ls1046a: Add SerDes bindings
arm64: dts: ls1046a: Specify which MACs support RGMII

.../devicetree/bindings/net/fsl-fman.txt | 49 +-
.../bindings/phy/fsl,qoriq-serdes.yaml | 78 +
Documentation/driver-api/phy/index.rst | 1 +
Documentation/driver-api/phy/qoriq.rst | 91 ++
MAINTAINERS | 6 +
.../boot/dts/freescale/fsl-ls1046-post.dtsi | 8 +
.../boot/dts/freescale/fsl-ls1046a-rdb.dts | 32 +
.../arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 12 +
drivers/net/ethernet/freescale/dpaa/Kconfig | 4 +-
.../net/ethernet/freescale/dpaa/dpaa_eth.c | 100 +-
.../ethernet/freescale/dpaa/dpaa_eth_sysfs.c | 2 +-
.../ethernet/freescale/dpaa/dpaa_ethtool.c | 82 +-
drivers/net/ethernet/freescale/fman/Makefile | 3 +-
drivers/net/ethernet/freescale/fman/fman.c | 31 +-
drivers/net/ethernet/freescale/fman/fman.h | 31 +-
.../net/ethernet/freescale/fman/fman_dtsec.c | 319 ++--
.../net/ethernet/freescale/fman/fman_dtsec.h | 58 +-
.../net/ethernet/freescale/fman/fman_keygen.c | 29 +-
.../net/ethernet/freescale/fman/fman_keygen.h | 29 +-
.../net/ethernet/freescale/fman/fman_mac.h | 29 -
.../net/ethernet/freescale/fman/fman_memac.c | 864 +++++-----
.../net/ethernet/freescale/fman/fman_memac.h | 57 +-
.../net/ethernet/freescale/fman/fman_muram.c | 31 +-
.../net/ethernet/freescale/fman/fman_muram.h | 32 +-
.../net/ethernet/freescale/fman/fman_port.c | 29 +-
.../net/ethernet/freescale/fman/fman_port.h | 29 +-
drivers/net/ethernet/freescale/fman/fman_sp.c | 29 +-
drivers/net/ethernet/freescale/fman/fman_sp.h | 28 +-
.../net/ethernet/freescale/fman/fman_tgec.c | 155 +-
.../net/ethernet/freescale/fman/fman_tgec.h | 54 +-
drivers/net/ethernet/freescale/fman/mac.c | 645 +-------
drivers/net/ethernet/freescale/fman/mac.h | 62 +-
drivers/phy/freescale/Kconfig | 19 +
drivers/phy/freescale/Makefile | 1 +
drivers/phy/freescale/phy-qoriq.c | 1441 +++++++++++++++++
35 files changed, 2562 insertions(+), 1908 deletions(-)
create mode 100644 Documentation/devicetree/bindings/phy/fsl,qoriq-serdes.yaml
create mode 100644 Documentation/driver-api/phy/qoriq.rst
create mode 100644 drivers/phy/freescale/phy-qoriq.c

--
2.35.1.1320.gc452695387.dirty