# SPDX-License-Identifier: GPL-2.0+
#
# Copyright (c) 2019 Microsemi Corporation

config MSCC_OCELOT_SWITCH
	bool "Ocelot switch driver"
	depends on ARCH_MSCC
	select PHYLIB
	help
	  This driver supports the Ocelot network switch device.

config MSCC_LUTON_SWITCH
	bool "Luton switch driver"
	depends on ARCH_MSCC
	select PHYLIB
	help
	  This driver supports the Luton network switch device.

config MSCC_JR2_SWITCH
	bool "Jaguar2 switch driver"
	depends on ARCH_MSCC
	select PHYLIB
	help
	  This driver supports the Jaguar2 network switch device.

config MSCC_SERVALT_SWITCH
	bool "Servalt switch driver"
	depends on ARCH_MSCC
	select PHYLIB
	help
	  This driver supports the Servalt network switch device.

config MSCC_SERVAL_SWITCH
	bool "Serval switch driver"
	depends on ARCH_MSCC
	select PHYLIB
	help
	  This driver supports the Serval network switch device.

config MSCC_FELIX_SWITCH
	bool "Felix switch driver"
	depends on DM_DSA
	select FSL_ENETC
	help
	  This driver supports the Ethernet switch integrated in the
	  NXP LS1028A SoC.
