18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Mellanox switch drivers configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciconfig MLXSW_CORE
78c2ecf20Sopenharmony_ci	tristate "Mellanox Technologies Switch ASICs support"
88c2ecf20Sopenharmony_ci	select NET_DEVLINK
98c2ecf20Sopenharmony_ci	select MLXFW
108c2ecf20Sopenharmony_ci	help
118c2ecf20Sopenharmony_ci	  This driver supports Mellanox Technologies Switch ASICs family.
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
148c2ecf20Sopenharmony_ci	  module will be called mlxsw_core.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciconfig MLXSW_CORE_HWMON
178c2ecf20Sopenharmony_ci	bool "HWMON support for Mellanox Technologies Switch ASICs"
188c2ecf20Sopenharmony_ci	depends on MLXSW_CORE && HWMON
198c2ecf20Sopenharmony_ci	depends on !(MLXSW_CORE=y && HWMON=m)
208c2ecf20Sopenharmony_ci	default y
218c2ecf20Sopenharmony_ci	help
228c2ecf20Sopenharmony_ci	  Say Y here if you want to expose HWMON interface on mlxsw devices.
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciconfig MLXSW_CORE_THERMAL
258c2ecf20Sopenharmony_ci	bool "Thermal zone support for Mellanox Technologies Switch ASICs"
268c2ecf20Sopenharmony_ci	depends on MLXSW_CORE && THERMAL
278c2ecf20Sopenharmony_ci	default y
288c2ecf20Sopenharmony_ci	help
298c2ecf20Sopenharmony_ci	 Say Y here if you want to automatically control fans speed according
308c2ecf20Sopenharmony_ci	 ambient temperature reported by ASIC.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ciconfig MLXSW_PCI
338c2ecf20Sopenharmony_ci	tristate "PCI bus implementation for Mellanox Technologies Switch ASICs"
348c2ecf20Sopenharmony_ci	depends on PCI && HAS_IOMEM && MLXSW_CORE
358c2ecf20Sopenharmony_ci	default m
368c2ecf20Sopenharmony_ci	help
378c2ecf20Sopenharmony_ci	  This is PCI bus implementation for Mellanox Technologies Switch ASICs.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
408c2ecf20Sopenharmony_ci	  module will be called mlxsw_pci.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciconfig MLXSW_I2C
438c2ecf20Sopenharmony_ci	tristate "I2C bus implementation for Mellanox Technologies Switch ASICs"
448c2ecf20Sopenharmony_ci	depends on I2C && MLXSW_CORE
458c2ecf20Sopenharmony_ci	default m
468c2ecf20Sopenharmony_ci	help
478c2ecf20Sopenharmony_ci	  This is I2C bus implementation for Mellanox Technologies Switch ASICs.
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
508c2ecf20Sopenharmony_ci	  module will be called mlxsw_i2c.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciconfig MLXSW_SWITCHIB
538c2ecf20Sopenharmony_ci	tristate "Mellanox Technologies SwitchIB and SwitchIB-2 support"
548c2ecf20Sopenharmony_ci	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV
558c2ecf20Sopenharmony_ci	default m
568c2ecf20Sopenharmony_ci	help
578c2ecf20Sopenharmony_ci	  This driver supports Mellanox Technologies SwitchIB and SwitchIB-2
588c2ecf20Sopenharmony_ci	  Infiniband Switch ASICs.
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
618c2ecf20Sopenharmony_ci	  module will be called mlxsw_switchib.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciconfig MLXSW_SWITCHX2
648c2ecf20Sopenharmony_ci	tristate "Mellanox Technologies SwitchX-2 support"
658c2ecf20Sopenharmony_ci	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV
668c2ecf20Sopenharmony_ci	default m
678c2ecf20Sopenharmony_ci	help
688c2ecf20Sopenharmony_ci	  This driver supports Mellanox Technologies SwitchX-2 Ethernet
698c2ecf20Sopenharmony_ci	  Switch ASICs.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
728c2ecf20Sopenharmony_ci	  module will be called mlxsw_switchx2.
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ciconfig MLXSW_SPECTRUM
758c2ecf20Sopenharmony_ci	tristate "Mellanox Technologies Spectrum family support"
768c2ecf20Sopenharmony_ci	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV && VLAN_8021Q
778c2ecf20Sopenharmony_ci	depends on PSAMPLE || PSAMPLE=n
788c2ecf20Sopenharmony_ci	depends on BRIDGE || BRIDGE=n
798c2ecf20Sopenharmony_ci	depends on IPV6 || IPV6=n
808c2ecf20Sopenharmony_ci	depends on NET_IPGRE || NET_IPGRE=n
818c2ecf20Sopenharmony_ci	depends on IPV6_GRE || IPV6_GRE=n
828c2ecf20Sopenharmony_ci	depends on VXLAN || VXLAN=n
838c2ecf20Sopenharmony_ci	select GENERIC_ALLOCATOR
848c2ecf20Sopenharmony_ci	select PARMAN
858c2ecf20Sopenharmony_ci	select OBJAGG
868c2ecf20Sopenharmony_ci	imply PTP_1588_CLOCK
878c2ecf20Sopenharmony_ci	select NET_PTP_CLASSIFY if PTP_1588_CLOCK
888c2ecf20Sopenharmony_ci	default m
898c2ecf20Sopenharmony_ci	help
908c2ecf20Sopenharmony_ci	  This driver supports Mellanox Technologies
918c2ecf20Sopenharmony_ci	  Spectrum/Spectrum-2/Spectrum-3 Ethernet Switch ASICs.
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
948c2ecf20Sopenharmony_ci	  module will be called mlxsw_spectrum.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciconfig MLXSW_SPECTRUM_DCB
978c2ecf20Sopenharmony_ci	bool "Data Center Bridging (DCB) support"
988c2ecf20Sopenharmony_ci	depends on MLXSW_SPECTRUM && DCB
998c2ecf20Sopenharmony_ci	default y
1008c2ecf20Sopenharmony_ci	help
1018c2ecf20Sopenharmony_ci	  Say Y here if you want to use Data Center Bridging (DCB) in the
1028c2ecf20Sopenharmony_ci	  driver.
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ciconfig MLXSW_MINIMAL
1058c2ecf20Sopenharmony_ci	tristate "Mellanox Technologies minimal I2C support"
1068c2ecf20Sopenharmony_ci	depends on MLXSW_CORE && MLXSW_I2C
1078c2ecf20Sopenharmony_ci	default m
1088c2ecf20Sopenharmony_ci	help
1098c2ecf20Sopenharmony_ci	  This driver supports I2C access for Mellanox Technologies Switch
1108c2ecf20Sopenharmony_ci	  ASICs.
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
1138c2ecf20Sopenharmony_ci	  module will be called mlxsw_minimal.
114