# SPDX-License-Identifier: GPL-2.0-only
menu "Distributed Switch Architecture drivers"
	depends on NET_DSA

source "drivers/net/dsa/b53/Kconfig"

config NET_DSA_BCM_SF2
	tristate "Broadcom Starfighter 2 Ethernet switch support"
	depends on HAS_IOMEM
	select NET_DSA_TAG_BRCM
	select FIXED_PHY
	select BCM7XXX_PHY
	select MDIO_BCM_UNIMAC
	select B53
	help
	  This enables support for the Broadcom Starfighter 2 Ethernet
	  switch chips.

config NET_DSA_LOOP
	tristate "DSA mock-up Ethernet switch chip support"
	select NET_DSA_TAG_NONE
	select FIXED_PHY
	help
	  This enables support for a fake mock-up switch chip which
	  exercises the DSA APIs.

source "drivers/net/dsa/hirschmann/Kconfig"

config NET_DSA_LANTIQ_GSWIP
	tristate "Lantiq / Intel GSWIP"
	depends on HAS_IOMEM
	select NET_DSA_TAG_GSWIP
	help
	  This enables support for the Lantiq / Intel GSWIP 2.1 found in
	  the xrx200 / VR9 SoC.

config NET_DSA_MT7530
	tristate "MediaTek MT7530 and MT7531 Ethernet switch support"
	select NET_DSA_TAG_MTK
	imply NET_DSA_MT7530_MDIO
	imply NET_DSA_MT7530_MMIO
	help
	  This enables support for the MediaTek MT7530 and MT7531 Ethernet
	  switch chips. Multi-chip module MT7530 in MT7621AT, MT7621DAT,
	  MT7621ST and MT7623AI SoCs, and built-in switch in MT7988 SoC are
	  supported as well.

config NET_DSA_MT7530_MDIO
	tristate "MediaTek MT7530 MDIO interface driver"
	depends on NET_DSA_MT7530
	select MEDIATEK_GE_PHY
	select PCS_MTK_LYNXI
	help
	  This enables support for the MediaTek MT7530 and MT7531 switch
	  chips which are connected via MDIO, as well as multi-chip
	  module MT7530 which can be found in the MT7621AT, MT7621DAT,
	  MT7621ST and MT7623AI SoCs.

config NET_DSA_MT7530_MMIO
	tristate "MediaTek MT7530 MMIO interface driver"
	depends on NET_DSA_MT7530
	depends on HAS_IOMEM
	imply MEDIATEK_GE_SOC_PHY
	help
	  This enables support for the built-in Ethernet switch found
	  in the MediaTek MT7988 SoC.
	  The switch is a similar design as MT7531, but the switch registers
	  are directly mapped into the SoCs register space rather than being
	  accessible via MDIO.

config NET_DSA_MV88E6060
	tristate "Marvell 88E6060 ethernet switch chip support"
	select NET_DSA_TAG_TRAILER
	help
	  This enables support for the Marvell 88E6060 ethernet switch
	  chip.

source "drivers/net/dsa/microchip/Kconfig"

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

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

source "drivers/net/dsa/qca/Kconfig"

source "drivers/net/dsa/sja1105/Kconfig"

source "drivers/net/dsa/xrs700x/Kconfig"

source "drivers/net/dsa/realtek/Kconfig"

config NET_DSA_RZN1_A5PSW
	tristate "Renesas RZ/N1 A5PSW Ethernet switch support"
	depends on OF && ARCH_RZN1
	select NET_DSA_TAG_RZN1_A5PSW
	select PCS_RZN1_MIIC
	help
	  This driver supports the A5PSW switch, which is embedded in Renesas
	  RZ/N1 SoC.

config NET_DSA_SMSC_LAN9303
	tristate
	select NET_DSA_TAG_LAN9303
	select REGMAP
	imply SMSC_PHY
	help
	  This enables support for the Microchip LAN9303/LAN9354 3 port ethernet
	  switch chips.

config NET_DSA_SMSC_LAN9303_I2C
	tristate "SMSC/Microchip LAN9303 3-ports 10/100 ethernet switch in I2C managed mode"
	depends on I2C
	depends on VLAN_8021Q || VLAN_8021Q=n
	select NET_DSA_SMSC_LAN9303
	select REGMAP_I2C
	help
	  Enable access functions if the SMSC/Microchip LAN9303 is configured
	  for I2C managed mode.

config NET_DSA_SMSC_LAN9303_MDIO
	tristate "Microchip LAN9303/LAN9354 3-ports 10/100 ethernet switch in MDIO managed mode"
	select NET_DSA_SMSC_LAN9303
	depends on VLAN_8021Q || VLAN_8021Q=n
	help
	  Enable access functions if the Microchip LAN9303/LAN9354 is configured
	  for MDIO managed mode.

config NET_DSA_VITESSE_VSC73XX
	tristate
	select NET_DSA_TAG_VSC73XX_8021Q
	select FIXED_PHY
	select VITESSE_PHY
	select GPIOLIB
	help
	  This enables support for the Vitesse VSC7385, VSC7388,
	  VSC7395 and VSC7398 SparX integrated ethernet switches.

config NET_DSA_VITESSE_VSC73XX_SPI
	tristate "Vitesse VSC7385/7388/7395/7398 SPI mode support"
	depends on SPI
	select NET_DSA_VITESSE_VSC73XX
	help
	  This enables support for the Vitesse VSC7385, VSC7388, VSC7395
	  and VSC7398 SparX integrated ethernet switches in SPI managed mode.

config NET_DSA_VITESSE_VSC73XX_PLATFORM
	tristate "Vitesse VSC7385/7388/7395/7398 Platform mode support"
	depends on HAS_IOMEM
	select NET_DSA_VITESSE_VSC73XX
	help
	  This enables support for the Vitesse VSC7385, VSC7388, VSC7395
	  and VSC7398 SparX integrated ethernet switches, connected over
	  a CPU-attached address bus and work in memory-mapped I/O mode.
endmenu
