# SPDX-License-Identifier: GPL-2.0-only
#
# Misc strange devices
#

menu "Misc devices"

config SENSORS_LIS3LV02D
	tristate
	depends on INPUT

config AD525X_DPOT
	tristate "Analog Devices Digital Potentiometers"
	depends on (I2C || SPI) && SYSFS
	help
	  If you say yes here, you get support for the Analog Devices
	  AD5258, AD5259, AD5251, AD5252, AD5253, AD5254, AD5255
	  AD5160, AD5161, AD5162, AD5165, AD5200, AD5201, AD5203,
	  AD5204, AD5206, AD5207, AD5231, AD5232, AD5233, AD5235,
	  AD5260, AD5262, AD5263, AD5290, AD5291, AD5292, AD5293,
	  AD7376, AD8400, AD8402, AD8403, ADN2850, AD5241, AD5242,
	  AD5243, AD5245, AD5246, AD5247, AD5248, AD5280, AD5282,
	  ADN2860, AD5273, AD5171, AD5170, AD5172, AD5173, AD5270,
	  AD5271, AD5272, AD5274
	  digital potentiometer chips.

	  See Documentation/misc-devices/ad525x_dpot.rst for the
	  userspace interface.

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

config AD525X_DPOT_I2C
	tristate "support I2C bus connection"
	depends on AD525X_DPOT && I2C
	help
	  Say Y here if you have a digital potentiometers hooked to an I2C bus.

	  To compile this driver as a module, choose M here: the
	  module will be called ad525x_dpot-i2c.

config AD525X_DPOT_SPI
	tristate "support SPI bus connection"
	depends on AD525X_DPOT && SPI_MASTER
	help
	  Say Y here if you have a digital potentiometers hooked to an SPI bus.

	  If unsure, say N (but it's safe to say "Y").

	  To compile this driver as a module, choose M here: the
	  module will be called ad525x_dpot-spi.

config DUMMY_IRQ
	tristate "Dummy IRQ handler"
	help
	  This module accepts a single 'irq' parameter, which it should register for.
	  The sole purpose of this module is to help with debugging of systems on
	  which spurious IRQs would happen on disabled IRQ vector.

config IBM_ASM
	tristate "Device driver for IBM RSA service processor"
	depends on X86 && PCI && INPUT
	depends on SERIAL_8250 || SERIAL_8250=n
	help
	  This option enables device driver support for in-band access to the
	  IBM RSA (Condor) service processor in eServer xSeries systems.
	  The ibmasm device driver allows user space application to access
	  ASM (Advanced Systems Management) functions on the service
	  processor. The driver is meant to be used in conjunction with
	  a user space API.
	  The ibmasm driver also enables the OS to use the UART on the
	  service processor board as a regular serial port. To make use of
	  this feature serial driver support (CONFIG_SERIAL_8250) must be
	  enabled.

	  WARNING: This software may not be supported or function
	  correctly on your IBM server. Please consult the IBM ServerProven
	  website <https://www-03.ibm.com/systems/info/x86servers/serverproven/compat/us/>
	  for information on the specific driver level and support statement
	  for your IBM server.

config IBMVMC
	tristate "IBM Virtual Management Channel support"
	depends on PPC_PSERIES
	help
	  This is the IBM POWER Virtual Management Channel

	  This driver is to be used for the POWER Virtual
	  Management Channel virtual adapter on the PowerVM
	  platform. It provides both request/response and
	  async message support through the /dev/ibmvmc node.

	  To compile this driver as a module, choose M here: the
	  module will be called ibmvmc.

config PHANTOM
	tristate "Sensable PHANToM (PCI)"
	depends on PCI
	help
	  Say Y here if you want to build a driver for Sensable PHANToM device.

	  This driver is only for PCI PHANToMs.

	  If you choose to build module, its name will be phantom. If unsure,
	  say N here.

config TIFM_CORE
	tristate "TI Flash Media interface support"
	depends on PCI
	help
	  If you want support for Texas Instruments(R) Flash Media adapters
	  you should select this option and then also choose an appropriate
	  host adapter, such as 'TI Flash Media PCI74xx/PCI76xx host adapter
	  support', if you have a TI PCI74xx compatible card reader, for
	  example.
	  You will also have to select some flash card format drivers. MMC/SD
	  cards are supported via 'MMC/SD Card support: TI Flash Media MMC/SD
	  Interface support (MMC_TIFM_SD)'.

	  To compile this driver as a module, choose M here: the module will
	  be called tifm_core.

config TIFM_7XX1
	tristate "TI Flash Media PCI74xx/PCI76xx host adapter support"
	depends on PCI && TIFM_CORE
	default TIFM_CORE
	help
	  This option enables support for Texas Instruments(R) PCI74xx and
	  PCI76xx families of Flash Media adapters, found in many laptops.
	  To make actual use of the device, you will have to select some
	  flash card format drivers, as outlined in the TIFM_CORE Help.

	  To compile this driver as a module, choose M here: the module will
	  be called tifm_7xx1.

config ICS932S401
	tristate "Integrated Circuits ICS932S401"
	depends on I2C
	help
	  If you say yes here you get support for the Integrated Circuits
	  ICS932S401 clock control chips.

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

config ATMEL_SSC
	tristate "Device driver for Atmel SSC peripheral"
	depends on HAS_IOMEM && (ARCH_AT91 || COMPILE_TEST)
	help
	  This option enables device driver support for Atmel Synchronized
	  Serial Communication peripheral (SSC).

	  The SSC peripheral supports a wide variety of serial frame based
	  communications, i.e. I2S, SPI, etc.

	  If unsure, say N.

config ENCLOSURE_SERVICES
	tristate "Enclosure Services"
	help
	  Provides support for intelligent enclosures (bays which
	  contain storage devices).  You also need either a host
	  driver (SCSI/ATA) which supports enclosures
	  or a SCSI enclosure device (SES) to use these services.

config SGI_XP
	tristate "Support communication between SGI SSIs"
	depends on NET
	depends on (IA64_SGI_UV || X86_UV) && SMP
	depends on X86_64 || BROKEN
	select SGI_GRU if X86_64 && SMP
	help
	  An SGI machine can be divided into multiple Single System
	  Images which act independently of each other and have
	  hardware based memory protection from the others.  Enabling
	  this feature will allow for direct communication between SSIs
	  based on a network adapter and DMA messaging.

config SMPRO_ERRMON
	tristate "Ampere Computing SMPro error monitor driver"
	depends on MFD_SMPRO || COMPILE_TEST
	help
	  Say Y here to get support for the SMpro error monitor function
	  provided by Ampere Computing's Altra and Altra Max SoCs. Upon
	  loading, the driver creates sysfs files which can be use to gather
	  multiple HW error data reported via read and write system calls.

	  To compile this driver as a module, say M here. The driver will be
	  called smpro-errmon.

config SMPRO_MISC
	tristate "Ampere Computing SMPro miscellaneous driver"
	depends on MFD_SMPRO || COMPILE_TEST
	help
	  Say Y here to get support for the SMpro error miscellalenous function
	  provided by Ampere Computing's Altra and Altra Max SoCs.

	  To compile this driver as a module, say M here. The driver will be
	  called smpro-misc.

config CS5535_MFGPT
	tristate "CS5535/CS5536 Geode Multi-Function General Purpose Timer (MFGPT) support"
	depends on MFD_CS5535
	help
	  This driver provides access to MFGPT functionality for other
	  drivers that need timers.  MFGPTs are available in the CS5535 and
	  CS5536 companion chips that are found in AMD Geode and several
	  other platforms.  They have a better resolution and max interval
	  than the generic PIT, and are suitable for use as high-res timers.
	  You probably don't want to enable this manually; other drivers that
	  make use of it should enable it.

config CS5535_MFGPT_DEFAULT_IRQ
	int
	depends on CS5535_MFGPT
	default 7
	help
	  MFGPTs on the CS5535 require an interrupt.  The selected IRQ
	  can be overridden as a module option as well as by driver that
	  use the cs5535_mfgpt_ API; however, different architectures might
	  want to use a different IRQ by default.  This is here for
	  architectures to set as necessary.

config CS5535_CLOCK_EVENT_SRC
	tristate "CS5535/CS5536 high-res timer (MFGPT) events"
	depends on GENERIC_CLOCKEVENTS && CS5535_MFGPT
	help
	  This driver provides a clock event source based on the MFGPT
	  timer(s) in the CS5535 and CS5536 companion chips.
	  MFGPTs have a better resolution and max interval than the
	  generic PIT, and are suitable for use as high-res timers.

config GEHC_ACHC
	tristate "GEHC ACHC support"
	depends on SPI && SYSFS
	depends on SOC_IMX53 || COMPILE_TEST
	select FW_LOADER
	help
	  Support for GE ACHC microcontroller, that is part of the GE
	  PPD device.

	  To compile this driver as a module, choose M here: the
	  module will be called gehc-achc.

config HI6421V600_IRQ
	tristate "HiSilicon Hi6421v600 IRQ and powerkey"
	depends on OF
	depends on SPMI
	depends on HAS_IOMEM
	select MFD_CORE
	select REGMAP_SPMI
	help
	  This driver provides IRQ handling for Hi6421v600, used on
	  some Kirin chipsets, like the one at Hikey 970.

config HP_ILO
	tristate "Channel interface driver for the HP iLO processor"
	depends on PCI
	help
	  The channel interface driver allows applications to communicate
	  with iLO management processors present on HP ProLiant servers.
	  Upon loading, the driver creates /dev/hpilo/dXccbN files, which
	  can be used to gather data from the management processor, via
	  read and write system calls.

	  To compile this driver as a module, choose M here: the
	  module will be called hpilo.

config QCOM_COINCELL
	tristate "Qualcomm coincell charger support"
	depends on MFD_SPMI_PMIC || COMPILE_TEST
	help
	  This driver supports the coincell block found inside of
	  Qualcomm PMICs.  The coincell charger provides a means to
	  charge a coincell battery or backup capacitor which is used
	  to maintain PMIC register and RTC state in the absence of
	  external power.

config QCOM_FASTRPC
	tristate "Qualcomm FastRPC"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on RPMSG
	select DMA_SHARED_BUFFER
	select QCOM_SCM
	help
	  Provides a communication mechanism that allows for clients to
	  make remote method invocations across processor boundary to
	  applications DSP processor. Say M if you want to enable this
	  module.

config SGI_GRU
	tristate "SGI GRU driver"
	depends on X86_UV && SMP
	select MMU_NOTIFIER
	help
	The GRU is a hardware resource located in the system chipset. The GRU
	contains memory that can be mmapped into the user address space. This memory is
	used to communicate with the GRU to perform functions such as load/store,
	scatter/gather, bcopy, AMOs, etc.  The GRU is directly accessed by user
	instructions using user virtual addresses. GRU instructions (ex., bcopy) use
	user virtual addresses for operands.

	If you are not running on a SGI UV system, say N.

config SGI_GRU_DEBUG
	bool  "SGI GRU driver debug"
	depends on SGI_GRU
	help
	This option enables additional debugging code for the SGI GRU driver.
	If you are unsure, say N.

config APDS9802ALS
	tristate "Medfield Avago APDS9802 ALS Sensor module"
	depends on I2C
	help
	  If you say yes here you get support for the ALS APDS9802 ambient
	  light sensor.

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

config ISL29003
	tristate "Intersil ISL29003 ambient light sensor"
	depends on I2C && SYSFS
	help
	  If you say yes here you get support for the Intersil ISL29003
	  ambient light sensor.

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

config ISL29020
	tristate "Intersil ISL29020 ambient light sensor"
	depends on I2C
	help
	  If you say yes here you get support for the Intersil ISL29020
	  ambient light sensor.

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

config SENSORS_TSL2550
	tristate "Taos TSL2550 ambient light sensor"
	depends on I2C && SYSFS
	help
	  If you say yes here you get support for the Taos TSL2550
	  ambient light sensor.

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

config SENSORS_BH1770
	 tristate "BH1770GLC / SFH7770 combined ALS - Proximity sensor"
	 depends on I2C
	help
	   Say Y here if you want to build a driver for BH1770GLC (ROHM) or
	   SFH7770 (Osram) combined ambient light and proximity sensor chip.

	   To compile this driver as a module, choose M here: the
	   module will be called bh1770glc. If unsure, say N here.

config SENSORS_APDS990X
	 tristate "APDS990X combined als and proximity sensors"
	 depends on I2C
	help
	   Say Y here if you want to build a driver for Avago APDS990x
	   combined ambient light and proximity sensor chip.

	   To compile this driver as a module, choose M here: the
	   module will be called apds990x. If unsure, say N here.

config HMC6352
	tristate "Honeywell HMC6352 compass"
	depends on I2C
	help
	  This driver provides support for the Honeywell HMC6352 compass,
	  providing configuration and heading data via sysfs.

config DS1682
	tristate "Dallas DS1682 Total Elapsed Time Recorder with Alarm"
	depends on I2C
	help
	  If you say yes here you get support for Dallas Semiconductor
	  DS1682 Total Elapsed Time Recorder.

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

config VMWARE_BALLOON
	tristate "VMware Balloon Driver"
	depends on VMWARE_VMCI && X86 && HYPERVISOR_GUEST
	select MEMORY_BALLOON
	help
	  This is VMware physical memory management driver which acts
	  like a "balloon" that can be inflated to reclaim physical pages
	  by reserving them in the guest and invalidating them in the
	  monitor, freeing up the underlying machine pages so they can
	  be allocated to other guests. The balloon can also be deflated
	  to allow the guest to use more physical memory.

	  If unsure, say N.

	  To compile this driver as a module, choose M here: the
	  module will be called vmw_balloon.

config PCH_PHUB
	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB"
	select GENERIC_NET_UTILS
	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
	help
	  This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
	  Intel Topcliff which is an IOH(Input/Output Hub) for x86 embedded
	  processor. The Topcliff has MAC address and Option ROM data in SROM.
	  This driver can access MAC address and Option ROM data in SROM.

	  This driver also can be used for LAPIS Semiconductor's IOH,
	  ML7213/ML7223/ML7831.
	  ML7213 which is for IVI(In-Vehicle Infotainment) use.
	  ML7223 IOH is for MP(Media Phone) use.
	  ML7831 IOH is for general purpose use.
	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.

	  To compile this driver as a module, choose M here: the module will
	  be called pch_phub.

config LATTICE_ECP3_CONFIG
	tristate "Lattice ECP3 FPGA bitstream configuration via SPI"
	depends on SPI && SYSFS
	select FW_LOADER
	default	n
	help
	  This option enables support for bitstream configuration (programming
	  or loading) of the Lattice ECP3 FPGA family via SPI.

	  If unsure, say N.

config SRAM
	bool "Generic on-chip SRAM driver"
	depends on HAS_IOMEM
	select GENERIC_ALLOCATOR
	select SRAM_EXEC if ARM
	help
	  This driver allows you to declare a memory region to be managed by
	  the genalloc API. It is supposed to be used for small on-chip SRAM
	  areas found on many SoCs.

config SRAM_EXEC
	bool

config DW_XDATA_PCIE
	depends on PCI
	tristate "Synopsys DesignWare xData PCIe driver"
	help
	  This driver allows controlling Synopsys DesignWare PCIe traffic
	  generator IP also known as xData, present in Synopsys DesignWare
	  PCIe Endpoint prototype.

	  If unsure, say N.

config PCI_ENDPOINT_TEST
	depends on PCI
	select CRC32
	tristate "PCI Endpoint Test driver"
	help
	   Enable this configuration option to enable the host side test driver
	   for PCI Endpoint.

config XILINX_SDFEC
	tristate "Xilinx SDFEC 16"
	depends on HAS_IOMEM
	help
	  This option enables support for the Xilinx SDFEC (Soft Decision
	  Forward Error Correction) driver. This enables a char driver
	  for the SDFEC.

	  You may select this driver if your design instantiates the
	  SDFEC(16nm) hardened block. To compile this as a module choose M.

	  If unsure, say N.

config MISC_RTSX
	tristate
	default MISC_RTSX_PCI || MISC_RTSX_USB

config HISI_HIKEY_USB
	tristate "USB GPIO Hub on HiSilicon Hikey 960/970 Platform"
	depends on (OF && GPIOLIB) || COMPILE_TEST
	depends on USB_ROLE_SWITCH
	help
	  If you say yes here this adds support for the on-board USB GPIO hub
	  found on HiKey 960/970 boards, which is necessary to support
	  switching between the dual-role USB-C port and the USB-A host ports
	  using only one USB controller.

config OPEN_DICE
	tristate "Open Profile for DICE driver"
	depends on OF_RESERVED_MEM
	depends on HAS_IOMEM
	help
	  This driver exposes a DICE reserved memory region to userspace via
	  a character device. The memory region contains Compound Device
	  Identifiers (CDIs) generated by firmware as an output of DICE
	  measured boot flow. Userspace can use CDIs for remote attestation
	  and sealing.

	  If unsure, say N.

config VCPU_STALL_DETECTOR
	tristate "Guest vCPU stall detector"
	depends on OF && HAS_IOMEM
	help
	  When this driver is bound inside a KVM guest, it will
	  periodically "pet" an MMIO stall detector device from each vCPU
	  and allow the host to detect vCPU stalls.

	  To compile this driver as a module, choose M here: the module
	  will be called vcpu_stall_detector.

	  If you do not intend to run this kernel as a guest, say N.

config TMR_MANAGER
	tristate "Select TMR Manager"
	depends on MICROBLAZE && MB_MANAGER
	help
	  This option enables the driver developed for TMR Manager.
	  The Triple Modular Redundancy(TMR) manager provides support for
	  fault detection.

	  Say N here unless you know what you are doing.

config TMR_INJECT
	tristate "Select TMR Inject"
	depends on TMR_MANAGER && FAULT_INJECTION_DEBUG_FS
	help
	  This option enables the driver developed for TMR Inject.
	  The Triple Modular Redundancy(TMR) Inject provides
	  fault injection.

	  Say N here unless you know what you are doing.

config TPS6594_ESM
	tristate "TI TPS6594 Error Signal Monitor support"
	depends on MFD_TPS6594
	default MFD_TPS6594
	help
	  Support ESM (Error Signal Monitor) on TPS6594 PMIC devices.
	  ESM is used typically to reboot the board in error condition.

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

config TPS6594_PFSM
	tristate "TI TPS6594 Pre-configurable Finite State Machine support"
	depends on MFD_TPS6594
	default MFD_TPS6594
	help
	  Support PFSM (Pre-configurable Finite State Machine) on TPS6594 PMIC devices.
	  These devices integrate a finite state machine engine, which manages the state
	  of the device during operating state transition.

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

source "drivers/misc/c2port/Kconfig"
source "drivers/misc/eeprom/Kconfig"
source "drivers/misc/cb710/Kconfig"
source "drivers/misc/ti-st/Kconfig"
source "drivers/misc/lis3lv02d/Kconfig"
source "drivers/misc/altera-stapl/Kconfig"
source "drivers/misc/mei/Kconfig"
source "drivers/misc/vmw_vmci/Kconfig"
source "drivers/misc/genwqe/Kconfig"
source "drivers/misc/echo/Kconfig"
source "drivers/misc/cxl/Kconfig"
source "drivers/misc/ocxl/Kconfig"
source "drivers/misc/bcm-vk/Kconfig"
source "drivers/misc/cardreader/Kconfig"
source "drivers/misc/uacce/Kconfig"
source "drivers/misc/pvpanic/Kconfig"
source "drivers/misc/mchp_pci1xxxx/Kconfig"
endmenu