Skip to content

Commit dd2fda1

Browse files
committed
Merge branch 'net-sparx5-add-support-for-lan969x-switch-device'
Daniel Machon says: ==================== net: sparx5: add support for lan969x switch device == Description: This series is the second of a multi-part series, that prepares and adds support for the new lan969x switch driver. The upstreaming efforts is split into multiple series (might change a bit as we go along): 1) Prepare the Sparx5 driver for lan969x (merged) --> 2) add support lan969x (same basic features as Sparx5 provides excl. FDMA and VCAP). 3) Add support for lan969x VCAP, FDMA and RGMII == Lan969x in short: The lan969x Ethernet switch family [1] provides a rich set of switching features and port configurations (up to 30 ports) from 10Mbps to 10Gbps, with support for RGMII, SGMII, QSGMII, USGMII, and USXGMII, ideal for industrial & process automation infrastructure applications, transport, grid automation, power substation automation, and ring & intra-ring topologies. The LAN969x family is hardware and software compatible and scalable supporting 46Gbps to 102Gbps switch bandwidths. == Preparing Sparx5 for lan969x: The main preparation work for lan969x has already been merged [1]. After this series is applied, lan969x will have the same functionality as Sparx5, except for VCAP and FDMA support. QoS features that requires the VCAP (e.g. PSFP, port mirroring) will obviously not work until VCAP support is added later. == Patch breakdown: Patch kernel-patches#1-kernel-patches#4 do some preparation work for lan969x Patch kernel-patches#5 adds new registers required by lan969x Patch kernel-patches#6 adds initial match data for all lan969x targets Patch kernel-patches#7 defines the lan969x register differences Patch kernel-patches#8 adds lan969x constants to match data Patch kernel-patches#9 adds some lan969x ops in bulk Patch kernel-patches#10 adds PTP function to ops Patch kernel-patches#11 adds lan969x_calendar.c for calculating the calendar Patch kernel-patches#12 makes additional use of the is_sparx5() macro to branch out in certain places. Patch kernel-patches#13 documents lan969x in the dt-bindings Patch kernel-patches#14 adds lan969x compatible string to sparx5 driver Patch kernel-patches#15 introduces new concept of per-target features [1] https://lore.kernel.org/netdev/20241004-b4-sparx5-lan969x-switch-driver-v2-0-d3290f581663@microchip.com/ v1: https://lore.kernel.org/20241021-sparx5-lan969x-switch-driver-2-v1-0-c8c49ef21e0f@microchip.com ==================== Link: https://patch.msgid.link/20241024-sparx5-lan969x-switch-driver-2-v2-0-a0b5fae88a0f@microchip.com Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 4ddf7cc + 2079667 commit dd2fda1

25 files changed

+1286
-84
lines changed

Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ title: Microchip Sparx5 Ethernet switch controller
99
maintainers:
1010
- Steen Hegelund <[email protected]>
1111
- Lars Povlsen <[email protected]>
12+
- Daniel Machon <[email protected]>
1213

1314
description: |
1415
The SparX-5 Enterprise Ethernet switch family provides a rich set of
@@ -34,7 +35,24 @@ properties:
3435
pattern: "^switch@[0-9a-f]+$"
3536

3637
compatible:
37-
const: microchip,sparx5-switch
38+
oneOf:
39+
- enum:
40+
- microchip,lan9691-switch
41+
- microchip,sparx5-switch
42+
- items:
43+
- enum:
44+
- microchip,lan969c-switch
45+
- microchip,lan969b-switch
46+
- microchip,lan969a-switch
47+
- microchip,lan9699-switch
48+
- microchip,lan9698-switch
49+
- microchip,lan9697-switch
50+
- microchip,lan9696-switch
51+
- microchip,lan9695-switch
52+
- microchip,lan9694-switch
53+
- microchip,lan9693-switch
54+
- microchip,lan9692-switch
55+
- const: microchip,lan9691-switch
3856

3957
reg:
4058
items:

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15091,6 +15091,13 @@ S: Maintained
1509115091
F: Documentation/devicetree/bindings/interrupt-controller/microchip,lan966x-oic.yaml
1509215092
F: drivers/irqchip/irq-lan966x-oic.c
1509315093

15094+
MICROCHIP LAN969X ETHERNET DRIVER
15095+
M: Daniel Machon <[email protected]>
15096+
15097+
15098+
S: Maintained
15099+
F: drivers/net/ethernet/microchip/lan969x/*
15100+
1509415101
MICROCHIP LCDFB DRIVER
1509515102
M: Nicolas Ferre <[email protected]>
1509615103

drivers/net/ethernet/microchip/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ config LAN743X
5959

6060
source "drivers/net/ethernet/microchip/lan865x/Kconfig"
6161
source "drivers/net/ethernet/microchip/lan966x/Kconfig"
62+
source "drivers/net/ethernet/microchip/lan969x/Kconfig"
6263
source "drivers/net/ethernet/microchip/sparx5/Kconfig"
6364
source "drivers/net/ethernet/microchip/vcap/Kconfig"
6465
source "drivers/net/ethernet/microchip/fdma/Kconfig"

drivers/net/ethernet/microchip/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ lan743x-objs := lan743x_main.o lan743x_ethtool.o lan743x_ptp.o
1111

1212
obj-$(CONFIG_LAN865X) += lan865x/
1313
obj-$(CONFIG_LAN966X_SWITCH) += lan966x/
14+
obj-$(CONFIG_LAN969X_SWITCH) += lan969x/
1415
obj-$(CONFIG_SPARX5_SWITCH) += sparx5/
1516
obj-$(CONFIG_VCAP) += vcap/
1617
obj-$(CONFIG_FDMA) += fdma/
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
config LAN969X_SWITCH
2+
tristate "Lan969x switch driver"
3+
depends on SPARX5_SWITCH
4+
help
5+
This driver supports the lan969x family of network switch devices.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
#
3+
# Makefile for the Microchip lan969x network device drivers.
4+
#
5+
6+
obj-$(CONFIG_LAN969X_SWITCH) += lan969x-switch.o
7+
8+
lan969x-switch-y := lan969x_regs.o lan969x.o lan969x_calendar.o
9+
10+
# Provide include files
11+
ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/fdma
12+
ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/vcap

0 commit comments

Comments
 (0)