1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Mellanox switch drivers configuration
4#
5
6config MLXSW_CORE
7	tristate "Mellanox Technologies Switch ASICs support"
8	select NET_DEVLINK
9	help
10	  This driver supports Mellanox Technologies Switch ASICs family.
11
12	  To compile this driver as a module, choose M here: the
13	  module will be called mlxsw_core.
14
15config MLXSW_CORE_HWMON
16	bool "HWMON support for Mellanox Technologies Switch ASICs"
17	depends on MLXSW_CORE && HWMON
18	depends on !(MLXSW_CORE=y && HWMON=m)
19	default y
20	help
21	  Say Y here if you want to expose HWMON interface on mlxsw devices.
22
23config MLXSW_CORE_THERMAL
24	bool "Thermal zone support for Mellanox Technologies Switch ASICs"
25	depends on MLXSW_CORE && THERMAL
26	default y
27	help
28	 Say Y here if you want to automatically control fans speed according
29	 ambient temperature reported by ASIC.
30
31config MLXSW_PCI
32	tristate "PCI bus implementation for Mellanox Technologies Switch ASICs"
33	depends on PCI && HAS_IOMEM && MLXSW_CORE
34	default m
35	help
36	  This is PCI bus implementation for Mellanox Technologies Switch ASICs.
37
38	  To compile this driver as a module, choose M here: the
39	  module will be called mlxsw_pci.
40
41config MLXSW_I2C
42	tristate "I2C bus implementation for Mellanox Technologies Switch ASICs"
43	depends on I2C && MLXSW_CORE
44	default m
45	help
46	  This is I2C bus implementation for Mellanox Technologies Switch ASICs.
47
48	  To compile this driver as a module, choose M here: the
49	  module will be called mlxsw_i2c.
50
51config MLXSW_SWITCHIB
52	tristate "Mellanox Technologies SwitchIB and SwitchIB-2 support"
53	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV
54	default m
55	help
56	  This driver supports Mellanox Technologies SwitchIB and SwitchIB-2
57	  Infiniband Switch ASICs.
58
59	  To compile this driver as a module, choose M here: the
60	  module will be called mlxsw_switchib.
61
62config MLXSW_SWITCHX2
63	tristate "Mellanox Technologies SwitchX-2 support"
64	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV
65	default m
66	help
67	  This driver supports Mellanox Technologies SwitchX-2 Ethernet
68	  Switch ASICs.
69
70	  To compile this driver as a module, choose M here: the
71	  module will be called mlxsw_switchx2.
72
73config MLXSW_SPECTRUM
74	tristate "Mellanox Technologies Spectrum family support"
75	depends on MLXSW_CORE && MLXSW_PCI && NET_SWITCHDEV && VLAN_8021Q
76	depends on PSAMPLE || PSAMPLE=n
77	depends on BRIDGE || BRIDGE=n
78	depends on IPV6 || IPV6=n
79	depends on NET_IPGRE || NET_IPGRE=n
80	depends on IPV6_GRE || IPV6_GRE=n
81	depends on VXLAN || VXLAN=n
82	select GENERIC_ALLOCATOR
83	select PARMAN
84	select OBJAGG
85	select MLXFW
86	imply PTP_1588_CLOCK
87	select NET_PTP_CLASSIFY if PTP_1588_CLOCK
88	default m
89	help
90	  This driver supports Mellanox Technologies
91	  Spectrum/Spectrum-2/Spectrum-3 Ethernet Switch ASICs.
92
93	  To compile this driver as a module, choose M here: the
94	  module will be called mlxsw_spectrum.
95
96config MLXSW_SPECTRUM_DCB
97	bool "Data Center Bridging (DCB) support"
98	depends on MLXSW_SPECTRUM && DCB
99	default y
100	help
101	  Say Y here if you want to use Data Center Bridging (DCB) in the
102	  driver.
103
104config MLXSW_MINIMAL
105	tristate "Mellanox Technologies minimal I2C support"
106	depends on MLXSW_CORE && MLXSW_I2C
107	default m
108	help
109	  This driver supports I2C access for Mellanox Technologies Switch
110	  ASICs.
111
112	  To compile this driver as a module, choose M here: the
113	  module will be called mlxsw_minimal.
114