# SPDX-License-Identifier: GPL-2.0
#
# Platform support for Mellanox hardware
#

menuconfig MELLANOX_PLATFORM
	bool "Platform support for Mellanox hardware"
	depends on X86 || ARM || ARM64 || COMPILE_TEST
	help
	  Say Y here to get to see options for platform support for
	  Mellanox systems. This option alone does not add any kernel code.

	  If you say N, all options in this submenu will be skipped and disabled.

if MELLANOX_PLATFORM

config MLXREG_HOTPLUG
	tristate "Mellanox platform hotplug driver support"
	depends on HWMON
	depends on I2C
	select REGMAP
	help
	  This driver handles hot-plug events for the power suppliers, power
	  cables and fans on the wide range Mellanox IB and Ethernet systems.

config MLXREG_IO
	tristate "Mellanox platform register access driver support"
	depends on HWMON
	select REGMAP
	help
	  This driver allows access to Mellanox programmable device register
	  space through sysfs interface. The sets of registers for sysfs access
	  are defined per system type bases and include the registers related
	  to system resets operation, system reset causes monitoring and some
	  kinds of mux selection.

config MLXREG_LC
	tristate "Mellanox line card platform driver support"
	depends on HWMON
	depends on I2C
	select REGMAP
	help
	  This driver provides support for the Mellanox MSN4800-XX line cards,
	  which are the part of MSN4800 Ethernet modular switch systems
	  providing a high performance switching solution for Enterprise Data
	  Centers (EDC) for building Ethernet based clusters, High-Performance
	  Computing (HPC) and embedded environments.

config MLXBF_TMFIFO
	tristate "Mellanox BlueField SoC TmFifo platform driver"
	depends on ARM64
	depends on ACPI
	depends on VIRTIO_CONSOLE && VIRTIO_NET
	help
	  Say y here to enable TmFifo support. The TmFifo driver provides
	  platform driver support for the TmFifo which supports console
	  and networking based on the virtio framework.

config MLXBF_BOOTCTL
	tristate "Mellanox BlueField Firmware Boot Control driver"
	depends on ARM64
	depends on ACPI
	depends on NET
	help
	  The Mellanox BlueField firmware implements functionality to
	  request swapping the primary and alternate eMMC boot partition,
	  and to set up a watchdog that can undo that swap if the system
	  does not boot up correctly. This driver provides sysfs access
	  to the userspace tools, to be used in conjunction with the eMMC
	  device driver to do necessary initial swap of the boot partition.

config MLXBF_PMC
	tristate "Mellanox BlueField Performance Monitoring Counters driver"
	depends on ARM64
	depends on HWMON
	depends on ACPI
	help
	  Say y here to enable PMC support. The PMC driver provides access
	  to performance monitoring counters within various blocks in the
	  Mellanox BlueField SoC via a sysfs interface.

config NVSW_SN2201
	tristate "Nvidia SN2201 platform driver support"
	depends on HWMON && I2C
	depends on ACPI || COMPILE_TEST
	select REGMAP_I2C
	help
	  This driver provides support for the Nvidia SN2201 platform.
	  The SN2201 is a highly integrated for one rack unit system with
	  L3 management switches. It has 48 x 1Gbps RJ45 + 4 x 100G QSFP28
	  ports in a compact 1RU form factor. The system also including a
	  serial port (RS-232 interface), an OOB port (1G/100M MDI interface)
	  and USB ports for management functions.
	  The processor used on SN2201 is Intel Atom®Processor C Series,
	  C3338R which is one of the Denverton product families.
	  System equipped with Nvidia®Spectrum-1 32x100GbE Ethernet switch.

endif # MELLANOX_PLATFORM