162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Mellanox switch drivers configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig MLXSW_CORE
762306a36Sopenharmony_ci	tristate "Mellanox Technologies Switch ASICs support"
862306a36Sopenharmony_ci	select NET_DEVLINK
962306a36Sopenharmony_ci	select MLXFW
1062306a36Sopenharmony_ci	select AUXILIARY_BUS
1162306a36Sopenharmony_ci	help
1262306a36Sopenharmony_ci	  This driver supports Mellanox Technologies Switch ASICs family.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
1562306a36Sopenharmony_ci	  module will be called mlxsw_core.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciconfig MLXSW_CORE_HWMON
1862306a36Sopenharmony_ci	bool "HWMON support for Mellanox Technologies Switch ASICs"
1962306a36Sopenharmony_ci	depends on MLXSW_CORE && HWMON
2062306a36Sopenharmony_ci	depends on !(MLXSW_CORE=y && HWMON=m)
2162306a36Sopenharmony_ci	default y
2262306a36Sopenharmony_ci	help
2362306a36Sopenharmony_ci	  Say Y here if you want to expose HWMON interface on mlxsw devices.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciconfig MLXSW_CORE_THERMAL
2662306a36Sopenharmony_ci	bool "Thermal zone support for Mellanox Technologies Switch ASICs"
2762306a36Sopenharmony_ci	depends on MLXSW_CORE && THERMAL
2862306a36Sopenharmony_ci	default y
2962306a36Sopenharmony_ci	help
3062306a36Sopenharmony_ci	 Say Y here if you want to automatically control fans speed according
3162306a36Sopenharmony_ci	 ambient temperature reported by ASIC.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciconfig MLXSW_PCI
3462306a36Sopenharmony_ci	tristate "PCI bus implementation for Mellanox Technologies Switch ASICs"
3562306a36Sopenharmony_ci	depends on PCI && HAS_IOMEM && MLXSW_CORE
3662306a36Sopenharmony_ci	default m
3762306a36Sopenharmony_ci	help
3862306a36Sopenharmony_ci	  This is PCI bus implementation for Mellanox Technologies Switch ASICs.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
4162306a36Sopenharmony_ci	  module will be called mlxsw_pci.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciconfig MLXSW_I2C
4462306a36Sopenharmony_ci	tristate "I2C bus implementation for Mellanox Technologies Switch ASICs"
4562306a36Sopenharmony_ci	depends on I2C && MLXSW_CORE
4662306a36Sopenharmony_ci	default m
4762306a36Sopenharmony_ci	help
4862306a36Sopenharmony_ci	  This is I2C bus implementation for Mellanox Technologies Switch ASICs.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
5162306a36Sopenharmony_ci	  module will be called mlxsw_i2c.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciconfig MLXSW_SPECTRUM
5462306a36Sopenharmony_ci	tristate "Mellanox Technologies Spectrum family support"
5562306a36Sopenharmony_ci	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV && VLAN_8021Q
5662306a36Sopenharmony_ci	depends on PSAMPLE || PSAMPLE=n
5762306a36Sopenharmony_ci	depends on BRIDGE || BRIDGE=n
5862306a36Sopenharmony_ci	depends on IPV6 || IPV6=n
5962306a36Sopenharmony_ci	depends on NET_IPGRE || NET_IPGRE=n
6062306a36Sopenharmony_ci	depends on IPV6_GRE || IPV6_GRE=n
6162306a36Sopenharmony_ci	depends on VXLAN || VXLAN=n
6262306a36Sopenharmony_ci	depends on PTP_1588_CLOCK_OPTIONAL
6362306a36Sopenharmony_ci	select GENERIC_ALLOCATOR
6462306a36Sopenharmony_ci	select PARMAN
6562306a36Sopenharmony_ci	select OBJAGG
6662306a36Sopenharmony_ci	select NET_PTP_CLASSIFY if PTP_1588_CLOCK
6762306a36Sopenharmony_ci	default m
6862306a36Sopenharmony_ci	help
6962306a36Sopenharmony_ci	  This driver supports Mellanox Technologies
7062306a36Sopenharmony_ci	  Spectrum/Spectrum-2/Spectrum-3/Spectrum-4 Ethernet Switch ASICs.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
7362306a36Sopenharmony_ci	  module will be called mlxsw_spectrum.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig MLXSW_SPECTRUM_DCB
7662306a36Sopenharmony_ci	bool "Data Center Bridging (DCB) support"
7762306a36Sopenharmony_ci	depends on MLXSW_SPECTRUM && DCB
7862306a36Sopenharmony_ci	default y
7962306a36Sopenharmony_ci	help
8062306a36Sopenharmony_ci	  Say Y here if you want to use Data Center Bridging (DCB) in the
8162306a36Sopenharmony_ci	  driver.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciconfig MLXSW_MINIMAL
8462306a36Sopenharmony_ci	tristate "Mellanox Technologies minimal I2C support"
8562306a36Sopenharmony_ci	depends on MLXSW_CORE && MLXSW_I2C
8662306a36Sopenharmony_ci	default m
8762306a36Sopenharmony_ci	help
8862306a36Sopenharmony_ci	  This driver supports I2C access for Mellanox Technologies Switch
8962306a36Sopenharmony_ci	  ASICs.
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
9262306a36Sopenharmony_ci	  module will be called mlxsw_minimal.
93