[PATCH net-next v4 0/6] net: lan966x: Add lan966x switch driver
From: Horatiu Vultur
Date: Fri Nov 26 2021 - 04:06:02 EST
This patch series add support for Microchip lan966x driver
The lan966x switch is a multi-port Gigabit AVB/TSN Ethernet Switch with
two integrated 10/100/1000Base-T PHYs. In addition to the integrated PHYs,
it supports up to 2RGMII/RMII, up to 3BASE-X/SERDES/2.5GBASE-X and up to
2 Quad-SGMII/Quad-USGMII interfaces.
Initially it adds support only for the ports to behave as simple
NIC cards. In the future patches it would be extended with other
functionality like Switchdev, PTP, Frame DMA, VCAP, etc.
v3->v4:
- add timeouts when injecting/extracting frames, in case the HW breaks
- simplify the creation of the IFH
- fix the order of operations in lan966x_cleanup_ports
- fixes to phylink based on Russel review
v2->v3:
- fix compiling issues for x86
- fix resource management in first patch
v1->v2:
- add new patch for MAINTAINERS
- add functions lan966x_mac_cpu_learn/forget
- fix build issues with second patch
- fix the reset of the switch, return error if there is no reset controller
- start to use phylink_mii_c22_pcs_decode_state and
phylink_mii_c22_pcs_encode_advertisement to remove duplicate code
Horatiu Vultur (6):
dt-bindings: net: lan966x: Add lan966x-switch bindings
net: lan966x: add the basic lan966x driver
net: lan966x: add port module support
net: lan966x: add mactable support
net: lan966x: add ethtool configuration and statistics
net: lan966x: Update MAINTAINERS to include lan966x driver
.../net/microchip,lan966x-switch.yaml | 149 +++
MAINTAINERS | 7 +
drivers/net/ethernet/microchip/Kconfig | 1 +
drivers/net/ethernet/microchip/Makefile | 1 +
.../net/ethernet/microchip/lan966x/Kconfig | 7 +
.../net/ethernet/microchip/lan966x/Makefile | 9 +
.../microchip/lan966x/lan966x_ethtool.c | 664 ++++++++++++
.../ethernet/microchip/lan966x/lan966x_ifh.h | 173 ++++
.../ethernet/microchip/lan966x/lan966x_mac.c | 101 ++
.../ethernet/microchip/lan966x/lan966x_main.c | 945 ++++++++++++++++++
.../ethernet/microchip/lan966x/lan966x_main.h | 192 ++++
.../microchip/lan966x/lan966x_phylink.c | 116 +++
.../ethernet/microchip/lan966x/lan966x_port.c | 422 ++++++++
.../ethernet/microchip/lan966x/lan966x_regs.h | 730 ++++++++++++++
14 files changed, 3517 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/microchip,lan966x-switch.yaml
create mode 100644 drivers/net/ethernet/microchip/lan966x/Kconfig
create mode 100644 drivers/net/ethernet/microchip/lan966x/Makefile
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_ifh.h
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_main.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_main.h
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_phylink.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_port.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_regs.h
--
2.33.0