# SPDX-License-Identifier: GPL-2.0-only
# ALSA USB drivers

menuconfig SND_USB
	bool "USB sound devices"
	depends on USB
	default y
	help
	  Support for sound devices connected via the USB bus.

if SND_USB && USB

config SND_USB_AUDIO
	tristate "USB Audio/MIDI driver"
	select SND_HWDEP
	select SND_RAWMIDI
	select SND_PCM
	select SND_UMP if SND_USB_AUDIO_MIDI_V2
	select BITREVERSE
	select SND_USB_AUDIO_USE_MEDIA_CONTROLLER if MEDIA_CONTROLLER && (MEDIA_SUPPORT=y || MEDIA_SUPPORT=SND_USB_AUDIO)
	help
	  Say Y here to include support for USB audio and USB MIDI
	  devices.

	  To compile this driver as a module, choose M here: the module
	  will be called snd-usb-audio.

config SND_USB_AUDIO_MIDI_V2
	bool "MIDI 2.0 support by USB Audio driver"
	depends on SND_USB_AUDIO
	help
	  Say Y here to include the support for MIDI 2.0 by USB Audio driver.
	  When the config is set, the driver tries to probe MIDI 2.0 interface
	  at first, then falls back to MIDI 1.0 interface as default.
	  The MIDI 2.0 support can be disabled dynamically via midi2_enable
	  module option, too.

config SND_USB_AUDIO_USE_MEDIA_CONTROLLER
	bool

config SND_USB_UA101
	tristate "Edirol UA-101/UA-1000 driver"
	select SND_PCM
	select SND_RAWMIDI
	help
	  Say Y here to include support for the Edirol UA-101 and UA-1000
	  audio/MIDI interfaces.

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

config SND_USB_USX2Y
	tristate "Tascam US-122, US-224 and US-428 USB driver"
	depends on X86 || PPC || ALPHA
	select SND_HWDEP
	select SND_RAWMIDI
	select SND_PCM
	help
	  Say Y here to include support for Tascam USB Audio/MIDI
	  interfaces or controllers US-122, US-224 and US-428.

	  To compile this driver as a module, choose M here: the module
	  will be called snd-usb-usx2y.

config SND_USB_CAIAQ
	tristate "Native Instruments USB audio devices"
	select SND_HWDEP
	select SND_RAWMIDI
	select SND_PCM
	help
	   Say Y here to include support for caiaq USB audio interfaces,
	   namely:

	    * Native Instruments RigKontrol2
	    * Native Instruments RigKontrol3
	    * Native Instruments Kore Controller
	    * Native Instruments Kore Controller 2
	    * Native Instruments Audio Kontrol 1
	    * Native Instruments Audio 2 DJ
	    * Native Instruments Audio 4 DJ
	    * Native Instruments Audio 8 DJ
	    * Native Instruments Traktor Audio 2
	    * Native Instruments Guitar Rig Session I/O
	    * Native Instruments Guitar Rig mobile
	    * Native Instruments Traktor Kontrol X1
	    * Native Instruments Traktor Kontrol S4
	    * Native Instruments Maschine Controller

	   To compile this driver as a module, choose M here: the module
	   will be called snd-usb-caiaq.

config SND_USB_CAIAQ_INPUT
	bool "enable input device for controllers"
	depends on SND_USB_CAIAQ
	depends on INPUT=y || INPUT=SND_USB_CAIAQ
	help
	  Say Y here to support input controllers like buttons, knobs,
	  alpha dials and analog pedals on the following products:

	   * Native Instruments RigKontrol2
	   * Native Instruments RigKontrol3
	   * Native Instruments Kore Controller
	   * Native Instruments Kore Controller 2
	   * Native Instruments Audio Kontrol 1
	   * Native Instruments Traktor Kontrol S4
	   * Native Instruments Maschine Controller

config SND_USB_US122L
	tristate "Tascam US-122L USB driver"
	depends on X86 || COMPILE_TEST
	select SND_HWDEP
	select SND_RAWMIDI
	help
	  Say Y here to include support for Tascam US-122L USB Audio/MIDI
	  interfaces.

	  To compile this driver as a module, choose M here: the module
	  will be called snd-usb-us122l.

config SND_USB_6FIRE
	tristate "TerraTec DMX 6Fire USB"
	select FW_LOADER
	select BITREVERSE
	select SND_RAWMIDI
	select SND_PCM
	select SND_VMASTER
	help
	  Say Y here to include support for TerraTec 6fire DMX USB interface.

	  You will need firmware files in order to be able to use the device
	  after it has been coldstarted. An install script for the firmware
	  and further help can be found at
	  http://sixfireusb.sourceforge.net

config SND_USB_HIFACE
	tristate "M2Tech hiFace USB-SPDIF driver"
	select SND_PCM
	help
	  Select this option to include support for M2Tech hiFace USB-SPDIF
	  interface.

	  This driver supports the original M2Tech hiFace and some other
	  compatible devices. The supported products are:

	    * M2Tech Young
	    * M2Tech hiFace
	    * M2Tech North Star
	    * M2Tech W4S Young
	    * M2Tech Corrson
	    * M2Tech AUDIA
	    * M2Tech SL Audio
	    * M2Tech Empirical
	    * M2Tech Rockna
	    * M2Tech Pathos
	    * M2Tech Metronome
	    * M2Tech CAD
	    * M2Tech Audio Esclusive
	    * M2Tech Rotel
	    * M2Tech Eeaudio
	    * The Chord Company CHORD
	    * AVA Group A/S Vitus

	  To compile this driver as a module, choose M here: the module
	  will be called snd-usb-hiface.

config SND_BCD2000
	tristate "Behringer BCD2000 MIDI driver"
	select SND_RAWMIDI
	help
	  Say Y here to include MIDI support for the Behringer BCD2000 DJ
	  controller.

	  Audio support is still work-in-progress at
	  https://github.com/anyc/snd-usb-bcd2000

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

source "sound/usb/line6/Kconfig"

endif	# SND_USB