# SPDX-License-Identifier: GPL-2.0
#
# USB Miscellaneous driver configuration
#
comment "USB Miscellaneous drivers"

config USB_USS720
	tristate "USS720 parport driver"
	depends on PARPORT
	select PARPORT_NOT_PC
	help
	  This driver is for USB parallel port adapters that use the Lucent
	  Technologies USS-720 chip. These cables are plugged into your USB
	  port and provide USB compatibility to peripherals designed with
	  parallel port interfaces.

	  The chip has two modes: automatic mode and manual mode. In automatic
	  mode, it looks to the computer like a standard USB printer. Only
	  printers may be connected to the USS-720 in this mode. The generic
	  USB printer driver ("USB Printer support", above) may be used in
	  that mode, and you can say N here if you want to use the chip only
	  in this mode.

	  Manual mode is not limited to printers, any parallel port
	  device should work. This driver utilizes manual mode.
	  Note however that some operations are three orders of magnitude
	  slower than on a PCI/ISA Parallel Port, so timing critical
	  applications might not work.

	  Say Y here if you own an USS-720 USB->Parport cable and intend to
	  connect anything other than a printer to it.

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

config USB_EMI62
	tristate "EMI 6|2m USB Audio interface support"
	help
	  This driver loads firmware to Emagic EMI 6|2m low latency USB
	  Audio and Midi interface.

	  After firmware load the device is handled with standard linux
	  USB Audio driver.

	  This code is also available as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want).
	  The module will be called audio. If you want to compile it as a
	  module, say M here and read <file:Documentation/kbuild/modules.rst>.

config USB_EMI26
	tristate "EMI 2|6 USB Audio interface support"
	help
	  This driver loads firmware to Emagic EMI 2|6 low latency USB
	  Audio interface.

	  After firmware load the device is handled with standard linux
	  USB Audio driver.

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

config USB_ADUTUX
	tristate "ADU devices from Ontrak Control Systems"
	help
	  Say Y if you want to use an ADU device from Ontrak Control
	  Systems.

	  To compile this driver as a module, choose M here.  The module
	  will be called adutux.

config USB_SEVSEG
	tristate "USB 7-Segment LED Display"
	help
	  Say Y here if you have a USB 7-Segment Display by Delcom

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

config USB_LEGOTOWER
	tristate "USB Lego Infrared Tower support"
	help
	  Say Y here if you want to connect a USB Lego Infrared Tower to your
	  computer's USB port.

	  This code is also available as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want).
	  The module will be called legousbtower. If you want to compile it as
	  a module, say M here and read
	  <file:Documentation/kbuild/modules.rst>.

config USB_LCD
	tristate "USB LCD driver support"
	help
	  Say Y here if you want to connect an USBLCD to your computer's
	  USB port. The USBLCD is a small USB interface board for
	  alphanumeric LCD modules. See <http://www.usblcd.de/> for more
	  information.

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

config USB_CYPRESS_CY7C63
	tristate "Cypress CY7C63xxx USB driver support"
	help
	  Say Y here if you want to connect a Cypress CY7C63xxx
	  micro controller to your computer's USB port. Currently this
	  driver supports the pre-programmed devices (incl. firmware)
	  by AK Modul-Bus Computer GmbH.

	  Please see: https://www.ak-modul-bus.de/stat/mikrocontroller.html

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

config USB_CYTHERM
	tristate "Cypress USB thermometer driver support"
	help
	  Say Y here if you want to connect a Cypress USB thermometer
	  device to your computer's USB port. This device is also known
	  as the Cypress USB Starter kit or demo board. The Elektor
	  magazine published a modified version of this device in issue 
	  #291.

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

config USB_IDMOUSE
	tristate "Siemens ID USB Mouse Fingerprint sensor support"
	help
	  Say Y here if you want to use the fingerprint sensor on
	  the Siemens ID Mouse. There is also a Siemens ID Mouse
	  _Professional_, which has not been tested with this driver,
	  but uses the same sensor and may therefore work.

	  This driver creates an entry "/dev/idmouseX" or "/dev/usb/idmouseX",
	  which can be used by, e.g.,"cat /dev/idmouse0 > fingerprint.pnm".

	  See also <https://www.fs.tum.de/~echtler/idmouse/>.

config USB_APPLEDISPLAY
	tristate "Apple Cinema Display support"
	select BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to control the backlight of Apple Cinema
	  Displays over USB. This driver provides a sysfs interface.

config USB_QCOM_EUD
	tristate "QCOM Embedded USB Debugger(EUD) Driver"
	depends on ARCH_QCOM || COMPILE_TEST
	select QCOM_SCM
	select USB_ROLE_SWITCH
	help
	  This module enables support for Qualcomm Technologies, Inc.
	  Embedded USB Debugger (EUD). The EUD is a control peripheral
	  which reports VBUS attach/detach events and has USB-based
	  debug and trace capabilities. On selecting m, the module name
	  that is built is qcom_eud.ko

config APPLE_MFI_FASTCHARGE
	tristate "Fast charge control for iOS devices"
	select POWER_SUPPLY
	help
	  Say Y here if you want to control whether iOS devices will
	  fast charge from the USB interface, as implemented in "MFi"
	  chargers.

	  It is safe to say M here.

config USB_LJCA
	tristate "Intel La Jolla Cove Adapter support"
	select AUXILIARY_BUS
	depends on USB && ACPI
	help
	  This adds support for Intel La Jolla Cove USB-I2C/SPI/GPIO
	  Master Adapter (LJCA). Additional drivers such as I2C_LJCA,
	  GPIO_LJCA and SPI_LJCA must be enabled in order to use the
	  functionality of the device.

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

config USB_USBIO
	tristate "Intel USBIO Bridge support"
	depends on USB && ACPI
	select AUXILIARY_BUS
	help
	  This adds support for Intel USBIO drivers.
	  This enables the USBIO bridge driver module in charge to talk
	  to the USB device. Additional drivers such as GPIO_USBIO and
	  I2C_USBIO must be enabled in order to use the device's full
	  functionality.

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

source "drivers/usb/misc/sisusbvga/Kconfig"

config USB_LD
	tristate "USB LD driver"
	help
	  This driver is for generic USB devices that use interrupt transfers,
	  like LD Didactic's USB devices.

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

config USB_TRANCEVIBRATOR
	tristate "PlayStation 2 Trance Vibrator driver support"
	help
	  Say Y here if you want to connect a PlayStation 2 Trance Vibrator
	  device to your computer's USB port.

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

config USB_IOWARRIOR
	tristate "IO Warrior driver support"
	help
	  Say Y here if you want to support the IO Warrior devices from Code
	  Mercenaries.  This includes support for the following devices:
	  	IO Warrior 40
		IO Warrior 24
		IO Warrior 56
		IO Warrior 24 Power Vampire

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

config USB_TEST
	tristate "USB testing driver"
	help
	  This driver is for testing host controller software.  It is used
	  with specialized device firmware for regression and stress testing,
	  to help prevent problems from cropping up with "real" drivers.

	  See <http://www.linux-usb.org/usbtest/> for more information,
	  including sample test device firmware and "how to use it".

config USB_EHSET_TEST_FIXTURE
	tristate "USB EHSET Test Fixture driver"
	help
	  Say Y here if you want to support the special test fixture device
	  used for the USB-IF Embedded Host High-Speed Electrical Test procedure.

	  When the test fixture is connected, it can enumerate as one of several
	  VID/PID pairs. This driver then initiates a corresponding test mode on
	  the downstream port to which the test fixture is attached.

	  See <https://www.usb.org/sites/default/files/EHSET_v1.01%281%29.pdf>
	  for more information.

config USB_ISIGHTFW
	tristate "iSight firmware loading support"
	select FW_LOADER
	help
	  This driver loads firmware for USB Apple iSight cameras, allowing
	  them to be driven by the USB video class driver available at
	  http://linux-uvc.berlios.de

	  The firmware for this driver must be extracted from the MacOS
	  driver beforehand. Tools for doing so are available at
	  http://bersace03.free.fr

config USB_YUREX
	tristate "USB YUREX driver support"
	help
	  Say Y here if you want to connect a YUREX to your computer's
	  USB port. The YUREX is a leg-shakes sensor. See
	  <http://bbu.kayac.com/en/> for further information.
	  This driver supports read/write of leg-shakes counter and
	  fasync for the counter update via a device file /dev/yurex*.

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

config USB_EZUSB_FX2
	tristate "Functions for loading firmware on EZUSB chips"
	help
	  Say Y here if you need EZUSB device support.
	  (Cypress FX/FX2/FX2LP microcontrollers)

config USB_HUB_USB251XB
	tristate "USB251XB Hub Controller Configuration Driver"
	depends on I2C
	help
	  This option enables support for configuration via SMBus of the
	  Microchip USB251x/xBi USB 2.0 Hub Controller series. Configuration
	  parameters may be set in devicetree or platform data.
	  Say Y or M here if you need to configure such a device via SMBus.

config USB_HSIC_USB3503
	tristate "USB3503 HSIC to USB20 Driver"
	depends on I2C
	select REGMAP_I2C
	help
	  This option enables support for SMSC USB3503 HSIC to USB 2.0 Driver.

config USB_HSIC_USB4604
	tristate "USB4604 HSIC to USB20 Driver"
	depends on I2C
	help
	  This option enables support for SMSC USB4604 HSIC to USB 2.0 Driver.

config USB_LINK_LAYER_TEST
	tristate "USB Link Layer Test driver"
	help
	  This driver is for generating specific traffic for Super Speed Link
	  Layer Test Device. Say Y only when you want to conduct USB Super Speed
	  Link Layer Test for host controllers.

config USB_CHAOSKEY
	tristate "ChaosKey random number generator driver support"
	depends on HW_RANDOM
	help
	  Say Y here if you want to connect an AltusMetrum ChaosKey or
	  Araneus Alea I to your computer's USB port. These devices
	  are hardware random number generators which hook into the
	  kernel entropy pool to ensure a large supply of entropy for
	  /dev/random and /dev/urandom and also provides direct access
	  via /dev/chaoskeyX

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

config BRCM_USB_PINMAP
	tristate "Broadcom pinmap driver support"
	depends on (ARCH_BRCMSTB && PHY_BRCM_USB) || COMPILE_TEST
	default ARCH_BRCMSTB && PHY_BRCM_USB
	help
	  This option enables support for remapping some USB external
	  signals, which are typically on dedicated pins on the chip,
	  to any gpio.

config USB_ONBOARD_DEV
	tristate "Onboard USB device support"
	depends on OF
	help
	  Say Y here if you want to support discrete onboard USB devices
	  that don't require an additional control bus for initialization,
	  but need some non-trivial form of initialization, such as
	  enabling a power regulator. An example for such device is the
	  Realtek RTS5411 hub.

	  This driver can be used as a module but its state (module vs
	  builtin) must match the state of the USB subsystem. Enabling
	  this config will enable the driver and it will automatically
	  match the state of the USB subsystem. If this driver is a
	  module it will be called onboard_usb_dev.

config USB_ONBOARD_DEV_USB5744
	bool "Onboard USB Microchip usb5744 hub with SMBus support"
	depends on (USB_ONBOARD_DEV && I2C=y) || (USB_ONBOARD_DEV=m && I2C=m)
	help
	  Say Y here if you want to support onboard USB Microchip usb5744
	  hub that requires SMBus initialization.

	  This options enables usb5744 i2c default initialization sequence
	  during hub start-up configuration stage. It is must to enable this
	  option on AMD Kria KR260 Robotics Starter Kit as this hub is
	  connected to USB-SD converter which mounts the root filesystem.
