Commit 23794bec authored by Daniel Golle's avatar Daniel Golle Committed by Paolo Abeni
Browse files

net: dsa: add basic initial driver for MxL862xx switches



Add very basic DSA driver for MaxLinear's MxL862xx switches.

In contrast to previous MaxLinear switches the MxL862xx has a built-in
processor that runs a sophisticated firmware based on Zephyr RTOS.
Interaction between the host and the switch hence is organized using a
software API of that firmware rather than accessing hardware registers
directly.

Add descriptions of the most basic firmware API calls to access the
built-in MDIO bus hosting the 2.5GE PHYs, basic port control as well as
setting up the CPU port.

Implement a very basic DSA driver using that API which is sufficient to
get packets flowing between the user ports and the CPU port.

The firmware offers all features one would expect from a modern switch
hardware, they are going to be added one by one in follow-up patch
series.

Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/ccde07e8cf33d8ae243000013b57cfaa2695e0a9.1770433307.git.daniel@makrotopia.org


Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent b405b26d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -15631,6 +15631,7 @@ M: Daniel Golle <daniel@makrotopia.org>
L:	netdev@vger.kernel.org
S:	Maintained
F:	Documentation/devicetree/bindings/net/dsa/maxlinear,mxl862xx.yaml
F:	drivers/net/dsa/mxl862xx/
F:	net/dsa/tag_mxl862xx.c
MCAN DEVICE DRIVER
+2 −0
Original line number Diff line number Diff line
@@ -74,6 +74,8 @@ source "drivers/net/dsa/microchip/Kconfig"

source "drivers/net/dsa/mv88e6xxx/Kconfig"

source "drivers/net/dsa/mxl862xx/Kconfig"

source "drivers/net/dsa/ocelot/Kconfig"

source "drivers/net/dsa/qca/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ obj-y += hirschmann/
obj-y				+= lantiq/
obj-y				+= microchip/
obj-y				+= mv88e6xxx/
obj-y				+= mxl862xx/
obj-y				+= ocelot/
obj-y				+= qca/
obj-y				+= realtek/
+12 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config NET_DSA_MXL862
	tristate "MaxLinear MxL862xx"
	depends on NET_DSA
	select MAXLINEAR_GPHY
	select NET_DSA_TAG_MXL_862XX
	help
	  This enables support for the MaxLinear MxL862xx switch family.
	  These switches have two 10GE SerDes interfaces, one typically
	  used as CPU port.
	   - MxL86282 has eight 2.5 Gigabit PHYs
	   - MxL86252 has five 2.5 Gigabit PHYs
+3 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_NET_DSA_MXL862) += mxl862xx_dsa.o
mxl862xx_dsa-y := mxl862xx.o mxl862xx-host.o
Loading