Skip to content

Commit

Permalink
Merge branch 'net-sparx5-add-support-for-lan969x-switch-device'
Browse files Browse the repository at this point in the history
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 #1-#4  do some preparation work for lan969x

Patch #5     adds new registers required by lan969x

Patch torvalds#6     adds initial match data for all lan969x targets

Patch torvalds#7     defines the lan969x register differences

Patch torvalds#8     adds lan969x constants to match data

Patch torvalds#9     adds some lan969x ops in bulk

Patch torvalds#10    adds PTP function to ops

Patch torvalds#11    adds lan969x_calendar.c for calculating the calendar

Patch torvalds#12    makes additional use of the is_sparx5() macro to branch out
             in certain places.

Patch torvalds#13    documents lan969x in the dt-bindings

Patch torvalds#14    adds lan969x compatible string to sparx5 driver

Patch torvalds#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 <kuba@kernel.org>
  • Loading branch information
kuba-moo committed Oct 31, 2024
2 parents 4ddf7cc + 2079667 commit dd2fda1
Show file tree
Hide file tree
Showing 25 changed files with 1,286 additions and 84 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ title: Microchip Sparx5 Ethernet switch controller
maintainers:
- Steen Hegelund <steen.hegelund@microchip.com>
- Lars Povlsen <lars.povlsen@microchip.com>
- Daniel Machon <daniel.machon@microchip.com>

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

compatible:
const: microchip,sparx5-switch
oneOf:
- enum:
- microchip,lan9691-switch
- microchip,sparx5-switch
- items:
- enum:
- microchip,lan969c-switch
- microchip,lan969b-switch
- microchip,lan969a-switch
- microchip,lan9699-switch
- microchip,lan9698-switch
- microchip,lan9697-switch
- microchip,lan9696-switch
- microchip,lan9695-switch
- microchip,lan9694-switch
- microchip,lan9693-switch
- microchip,lan9692-switch
- const: microchip,lan9691-switch

reg:
items:
Expand Down
7 changes: 7 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -15091,6 +15091,13 @@ S: Maintained
F: Documentation/devicetree/bindings/interrupt-controller/microchip,lan966x-oic.yaml
F: drivers/irqchip/irq-lan966x-oic.c

MICROCHIP LAN969X ETHERNET DRIVER
M: Daniel Machon <daniel.machon@microchip.com>
M: UNGLinuxDriver@microchip.com
L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/microchip/lan969x/*

MICROCHIP LCDFB DRIVER
M: Nicolas Ferre <nicolas.ferre@microchip.com>
L: linux-fbdev@vger.kernel.org
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/microchip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ config LAN743X

source "drivers/net/ethernet/microchip/lan865x/Kconfig"
source "drivers/net/ethernet/microchip/lan966x/Kconfig"
source "drivers/net/ethernet/microchip/lan969x/Kconfig"
source "drivers/net/ethernet/microchip/sparx5/Kconfig"
source "drivers/net/ethernet/microchip/vcap/Kconfig"
source "drivers/net/ethernet/microchip/fdma/Kconfig"
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/microchip/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ lan743x-objs := lan743x_main.o lan743x_ethtool.o lan743x_ptp.o

obj-$(CONFIG_LAN865X) += lan865x/
obj-$(CONFIG_LAN966X_SWITCH) += lan966x/
obj-$(CONFIG_LAN969X_SWITCH) += lan969x/
obj-$(CONFIG_SPARX5_SWITCH) += sparx5/
obj-$(CONFIG_VCAP) += vcap/
obj-$(CONFIG_FDMA) += fdma/
5 changes: 5 additions & 0 deletions drivers/net/ethernet/microchip/lan969x/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
config LAN969X_SWITCH
tristate "Lan969x switch driver"
depends on SPARX5_SWITCH
help
This driver supports the lan969x family of network switch devices.
12 changes: 12 additions & 0 deletions drivers/net/ethernet/microchip/lan969x/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Makefile for the Microchip lan969x network device drivers.
#

obj-$(CONFIG_LAN969X_SWITCH) += lan969x-switch.o

lan969x-switch-y := lan969x_regs.o lan969x.o lan969x_calendar.o

# Provide include files
ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/fdma
ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/vcap
Loading

0 comments on commit dd2fda1

Please sign in to comment.