162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Platform support for Mellanox hardware
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig MELLANOX_PLATFORM
762306a36Sopenharmony_ci	bool "Platform support for Mellanox hardware"
862306a36Sopenharmony_ci	depends on X86 || ARM || ARM64 || COMPILE_TEST
962306a36Sopenharmony_ci	help
1062306a36Sopenharmony_ci	  Say Y here to get to see options for platform support for
1162306a36Sopenharmony_ci	  Mellanox systems. This option alone does not add any kernel code.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	  If you say N, all options in this submenu will be skipped and disabled.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciif MELLANOX_PLATFORM
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciconfig MLXREG_HOTPLUG
1862306a36Sopenharmony_ci	tristate "Mellanox platform hotplug driver support"
1962306a36Sopenharmony_ci	depends on HWMON
2062306a36Sopenharmony_ci	depends on I2C
2162306a36Sopenharmony_ci	select REGMAP
2262306a36Sopenharmony_ci	help
2362306a36Sopenharmony_ci	  This driver handles hot-plug events for the power suppliers, power
2462306a36Sopenharmony_ci	  cables and fans on the wide range Mellanox IB and Ethernet systems.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciconfig MLXREG_IO
2762306a36Sopenharmony_ci	tristate "Mellanox platform register access driver support"
2862306a36Sopenharmony_ci	depends on HWMON
2962306a36Sopenharmony_ci	select REGMAP
3062306a36Sopenharmony_ci	help
3162306a36Sopenharmony_ci	  This driver allows access to Mellanox programmable device register
3262306a36Sopenharmony_ci	  space through sysfs interface. The sets of registers for sysfs access
3362306a36Sopenharmony_ci	  are defined per system type bases and include the registers related
3462306a36Sopenharmony_ci	  to system resets operation, system reset causes monitoring and some
3562306a36Sopenharmony_ci	  kinds of mux selection.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciconfig MLXREG_LC
3862306a36Sopenharmony_ci	tristate "Mellanox line card platform driver support"
3962306a36Sopenharmony_ci	depends on HWMON
4062306a36Sopenharmony_ci	depends on I2C
4162306a36Sopenharmony_ci	select REGMAP
4262306a36Sopenharmony_ci	help
4362306a36Sopenharmony_ci	  This driver provides support for the Mellanox MSN4800-XX line cards,
4462306a36Sopenharmony_ci	  which are the part of MSN4800 Ethernet modular switch systems
4562306a36Sopenharmony_ci	  providing a high performance switching solution for Enterprise Data
4662306a36Sopenharmony_ci	  Centers (EDC) for building Ethernet based clusters, High-Performance
4762306a36Sopenharmony_ci	  Computing (HPC) and embedded environments.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig MLXBF_TMFIFO
5062306a36Sopenharmony_ci	tristate "Mellanox BlueField SoC TmFifo platform driver"
5162306a36Sopenharmony_ci	depends on ARM64
5262306a36Sopenharmony_ci	depends on ACPI
5362306a36Sopenharmony_ci	depends on VIRTIO_CONSOLE && VIRTIO_NET
5462306a36Sopenharmony_ci	help
5562306a36Sopenharmony_ci	  Say y here to enable TmFifo support. The TmFifo driver provides
5662306a36Sopenharmony_ci	  platform driver support for the TmFifo which supports console
5762306a36Sopenharmony_ci	  and networking based on the virtio framework.
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciconfig MLXBF_BOOTCTL
6062306a36Sopenharmony_ci	tristate "Mellanox BlueField Firmware Boot Control driver"
6162306a36Sopenharmony_ci	depends on ARM64
6262306a36Sopenharmony_ci	depends on ACPI
6362306a36Sopenharmony_ci	depends on NET
6462306a36Sopenharmony_ci	help
6562306a36Sopenharmony_ci	  The Mellanox BlueField firmware implements functionality to
6662306a36Sopenharmony_ci	  request swapping the primary and alternate eMMC boot partition,
6762306a36Sopenharmony_ci	  and to set up a watchdog that can undo that swap if the system
6862306a36Sopenharmony_ci	  does not boot up correctly. This driver provides sysfs access
6962306a36Sopenharmony_ci	  to the userspace tools, to be used in conjunction with the eMMC
7062306a36Sopenharmony_ci	  device driver to do necessary initial swap of the boot partition.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciconfig MLXBF_PMC
7362306a36Sopenharmony_ci	tristate "Mellanox BlueField Performance Monitoring Counters driver"
7462306a36Sopenharmony_ci	depends on ARM64
7562306a36Sopenharmony_ci	depends on HWMON
7662306a36Sopenharmony_ci	depends on ACPI
7762306a36Sopenharmony_ci	help
7862306a36Sopenharmony_ci	  Say y here to enable PMC support. The PMC driver provides access
7962306a36Sopenharmony_ci	  to performance monitoring counters within various blocks in the
8062306a36Sopenharmony_ci	  Mellanox BlueField SoC via a sysfs interface.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciconfig NVSW_SN2201
8362306a36Sopenharmony_ci	tristate "Nvidia SN2201 platform driver support"
8462306a36Sopenharmony_ci	depends on HWMON && I2C
8562306a36Sopenharmony_ci	depends on ACPI || COMPILE_TEST
8662306a36Sopenharmony_ci	select REGMAP_I2C
8762306a36Sopenharmony_ci	help
8862306a36Sopenharmony_ci	  This driver provides support for the Nvidia SN2201 platform.
8962306a36Sopenharmony_ci	  The SN2201 is a highly integrated for one rack unit system with
9062306a36Sopenharmony_ci	  L3 management switches. It has 48 x 1Gbps RJ45 + 4 x 100G QSFP28
9162306a36Sopenharmony_ci	  ports in a compact 1RU form factor. The system also including a
9262306a36Sopenharmony_ci	  serial port (RS-232 interface), an OOB port (1G/100M MDI interface)
9362306a36Sopenharmony_ci	  and USB ports for management functions.
9462306a36Sopenharmony_ci	  The processor used on SN2201 is Intel Atom®Processor C Series,
9562306a36Sopenharmony_ci	  C3338R which is one of the Denverton product families.
9662306a36Sopenharmony_ci	  System equipped with Nvidia®Spectrum-1 32x100GbE Ethernet switch.
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciendif # MELLANOX_PLATFORM
99