[PATCH net-next v4 00/15] Introduce an ethernet port representation

From: Maxime Chevallier
Date: Thu Feb 13 2025 - 05:17:20 EST


Hello everyone,

This is V4 of the series introducing the phy_port infrastructure.

Previous version was incorrectly labeled V1, all previous versions can
be found here :

V3: https://lore.kernel.org/netdev/20250207223634.600218-1-maxime.chevallier@xxxxxxxxxxx/
RFC V2: https://lore.kernel.org/netdev/20250122174252.82730-1-maxime.chevallier@xxxxxxxxxxx/
RFC V1: https://lore.kernel.org/netdev/20241220201506.2791940-1-maxime.chevallier@xxxxxxxxxxx/

The goal of that work is to lay the ground for multi-port devices,
either using multi-port PHY devices, or MII-side multiplexers.

for now, that series only focuses on the PHY device aspect, and includes
no uAPI and no muxing support yet.

The key points from that series are :

- The introduction of a dedicated object to represent a port
- The introduciton of a new binding to represent these ports in
devicetree, to accurately describe multi-port devices
- The support of ports for PHY devices, including PHY-drivert SFP
busses through a generic phylib set of upstream ops
- The MAINTAINERS file was updated to account for the new files
- Some documentation :)

Changes in V4 :

- Introduced a kernel doc
- Reworked the mediums definitions in patch 2
- QCA807x now uses the generic SFP support
- Fixed some implementation bugs to build the support list based on the
interfaces supported on a port

Maxime Chevallier (15):
net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values
net: ethtool: Export the link_mode_params definitions
net: phy: Introduce PHY ports representation
net: phy: dp83822: Add support for phy_port representation
net: phy: Create a phy_port for PHY-driven SFPs
net: phy: Introduce generic SFP handling for PHY drivers
net: phy: marvell-88x2222: Support SFP through phy_port interface
net: phy: marvell: Support SFP through phy_port interface
net: phy: marvell10g: Support SFP through phy_port
net: phy: at803x: Support SFP through phy_port interface
net: phy: qca807x: Support SFP through phy_port interface
net: phy: Only rely on phy_port for PHY-driven SFP
net: phy: dp83822: Add SFP support through the phy_port interface
Documentation: networking: Document the phy_port infrastructure
dt-bindings: net: Introduce the phy-port description

.../devicetree/bindings/net/ethernet-phy.yaml | 18 +
.../bindings/net/ethernet-port.yaml | 47 +++
Documentation/networking/index.rst | 1 +
Documentation/networking/phy-port.rst | 111 +++++++
MAINTAINERS | 3 +
drivers/net/phy/Makefile | 2 +-
drivers/net/phy/dp83822.c | 71 ++--
drivers/net/phy/marvell-88x2222.c | 96 +++---
drivers/net/phy/marvell.c | 100 +++---
drivers/net/phy/marvell10g.c | 37 +--
drivers/net/phy/phy_device.c | 312 +++++++++++++++++-
drivers/net/phy/phy_port.c | 176 ++++++++++
drivers/net/phy/phylink.c | 32 ++
drivers/net/phy/qcom/at803x.c | 64 +---
drivers/net/phy/qcom/qca807x.c | 75 ++---
include/linux/ethtool.h | 73 ++++
include/linux/phy.h | 38 ++-
include/linux/phy_port.h | 92 ++++++
include/linux/phylink.h | 2 +
net/ethtool/common.c | 250 ++++++++------
net/ethtool/common.h | 7 -
21 files changed, 1218 insertions(+), 389 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/ethernet-port.yaml
create mode 100644 Documentation/networking/phy-port.rst
create mode 100644 drivers/net/phy/phy_port.c
create mode 100644 include/linux/phy_port.h

--
2.48.1