# SPDX-License-Identifier: GPL-2.0-only
#
# Mellanox switch drivers configuration
#

config MLXSW_CORE
	tristate "Mellanox Technologies Switch ASICs support"
	select NET_DEVLINK
	---help---
	  This driver supports Mellanox Technologies Switch ASICs family.

	  To compile this driver as a module, choose M here: the
	  module will be called mlxsw_core.

config MLXSW_CORE_HWMON
	bool "HWMON support for Mellanox Technologies Switch ASICs"
	depends on MLXSW_CORE && HWMON
	depends on !(MLXSW_CORE=y && HWMON=m)
	default y
	---help---
	  Say Y here if you want to expose HWMON interface on mlxsw devices.

config MLXSW_CORE_THERMAL
	bool "Thermal zone support for Mellanox Technologies Switch ASICs"
	depends on MLXSW_CORE && THERMAL
	default y
	---help---
	 Say Y here if you want to automatically control fans speed according
	 ambient temperature reported by ASIC.

config MLXSW_PCI
	tristate "PCI bus implementation for Mellanox Technologies Switch ASICs"
	depends on PCI && HAS_IOMEM && MLXSW_CORE
	default m
	---help---
	  This is PCI bus implementation for Mellanox Technologies Switch ASICs.

	  To compile this driver as a module, choose M here: the
	  module will be called mlxsw_pci.

config MLXSW_I2C
	tristate "I2C bus implementation for Mellanox Technologies Switch ASICs"
	depends on I2C && MLXSW_CORE
	default m
	---help---
	  This is I2C bus implementation for Mellanox Technologies Switch ASICs.

	  To compile this driver as a module, choose M here: the
	  module will be called mlxsw_i2c.

config MLXSW_SWITCHIB
	tristate "Mellanox Technologies SwitchIB and SwitchIB-2 support"
	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV
	default m
	---help---
	  This driver supports Mellanox Technologies SwitchIB and SwitchIB-2
	  Infiniband Switch ASICs.

	  To compile this driver as a module, choose M here: the
	  module will be called mlxsw_switchib.

config MLXSW_SWITCHX2
	tristate "Mellanox Technologies SwitchX-2 support"
	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV
	default m
	---help---
	  This driver supports Mellanox Technologies SwitchX-2 Ethernet
	  Switch ASICs.

	  To compile this driver as a module, choose M here: the
	  module will be called mlxsw_switchx2.

config MLXSW_SPECTRUM
	tristate "Mellanox Technologies Spectrum family support"
	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV && VLAN_8021Q
	depends on PSAMPLE || PSAMPLE=n
	depends on BRIDGE || BRIDGE=n
	depends on IPV6 || IPV6=n
	depends on NET_IPGRE || NET_IPGRE=n
	depends on IPV6_GRE || IPV6_GRE=n
	depends on VXLAN || VXLAN=n
	select GENERIC_ALLOCATOR
	select PARMAN
	select OBJAGG
	select MLXFW
	imply PTP_1588_CLOCK
	select NET_PTP_CLASSIFY if PTP_1588_CLOCK
	default m
	---help---
	  This driver supports Mellanox Technologies
	  Spectrum/Spectrum-2/Spectrum-3 Ethernet Switch ASICs.

	  To compile this driver as a module, choose M here: the
	  module will be called mlxsw_spectrum.

config MLXSW_SPECTRUM_DCB
	bool "Data Center Bridging (DCB) support"
	depends on MLXSW_SPECTRUM && DCB
	default y
	---help---
	  Say Y here if you want to use Data Center Bridging (DCB) in the
	  driver.

config MLXSW_MINIMAL
	tristate "Mellanox Technologies minimal I2C support"
	depends on MLXSW_CORE && MLXSW_I2C
	default m
	---help---
	  This driver supports I2C access for Mellanox Technologies Switch
	  ASICs.

	  To compile this driver as a module, choose M here: the
	  module will be called mlxsw_minimal.
