menuconfig SOC_MLNX
	bool "Mellanox SoC drivers"
	default y if ARCH_MLNX_BLUEFIELD
	help
	  Platform drivers for the Mellanox BlueField series of SoCs.

if ARCH_MLNX_BLUEFIELD || COMPILE_TEST

config MLNX_BLUEFIELD_TMFIFO
	tristate "Mellanox BlueField SoC TmFifo driver"
	depends on ARM64
	default m
	select VIRTIO_CONSOLE
	select VIRTIO_NET
	help
	  Say y here to enable TmFifo support. The TmFifo driver provides the
	  virtio driver framework for the TMFIFO of Mellanox BlueField SoC and
	  the implementation of a console and network driver.

config MLNX_BLUEFIELD_IPMB_DEV
	tristate "Backend driver for I2C slave device to handle IPMB messages"
	depends on I2C && ARM64
	default m
	help
	  If you say yes to this option, support will be included for the
	  IPMB messages and semantics over I2C for Mellanox BlueField SoCs

config MLNX_BLUEFIELD_LIVEFISH
	tristate "Mellanox BlueField livefish firmware update driver"
	depends on ARM64
	default m
	help
	  If you say yes to this option, support will added for the
	  mlxbf-livefish driver.  This driver allows MFT tools to
	  update ConnectX HCA firmware on a Mellanox BlueField SoC
	  when it is in livefish mode.

config MLNX_BLUEFIELD_L3CACHE
        tristate "Mellanox L3 cache driver"
	depends on ARM64
        help
          This driver sets up the cache profiles for the L3 cache in
	  Mellanox BlueField SoCs.

config MLNX_BLUEFIELD_TRIO
        tristate "Mellanox TRIO driver"
        depends on ARM64
        help
          This driver supports the TRIO PCIe root complex interface on
	  Mellanox BlueField SoCs.

config MLNX_BLUEFIELD_BOOTCTL
	tristate "Mellanox BlueField Firmware Boot Control"
	depends on ARM64
	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 firmware, to be used in
	  conjunction with the eMMC device driver to do any necessary
	  initial swap of the boot partition.

config MLNX_BLUEFIELD_PKA
	tristate "Mellanox BlueField Public Key Accelerator driver"
	depends on ARM64 && IOMMU_API && VFIO_IOMMU_TYPE1 && VFIO_PLATFORM
	help
	  If you say yes to this option, support will be included for the
          Public Key Accelerator device on Mellanox BlueField SoCs.

          This driver can also be built as a module.  If so, the module will
          be called pka-mlxbf.

config MLNX_BLUEFIELD_PMC
	tristate "Mellanox BlueField performance counter driver"
	depends on ARM64 && HWMON
	help
	  This driver supports the performance counters of Mellanox
	  Bluefield SoC.

config MLNX_BLUEFIELD_CPLD
	tristate "Mellanox BlueField Sella CPLD driver"
	depends on ARM64 && I2C && HWMON
	help
	  This driver creates a hwmon device and exports power
	  status information through sysfs.

endif # ARCH_MLNX_BLUEFIELD

config MLNX_BLUEFIELD_HOST
	tristate "Mellnox BlueField host side drivers"
	help
	  If you say yes to this option, then support will be added
	  for control and communication of Mellanox BlueField SoCs
	  from an external host via USB or PCI-express.

