#
# USB Class driver configuration
#
comment "USB Device Class drivers"

config USB_ACM
	depends on n
	tristate "USB Modem (CDC ACM) support"
	depends on m
	depends on TTY
	---help---
	  This driver supports USB modems and ISDN adapters which support the
	  Communication Device Class Abstract Control Model interface.
	  Please read <file:Documentation/usb/acm.txt> for details.

	  If your modem only reports "Cls=ff(vend.)" in the descriptors in
	  /proc/bus/usb/devices, then your modem will not work with this
	  driver.

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

config USB_PRINTER
	depends on n
	tristate "USB Printer support"
	depends on m
	help
	  Say Y here if you want to connect a USB printer to your computer's
	  USB port.

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

config USB_WDM
	tristate "USB Wireless Device Management support"
	depends on m
	---help---
	  This driver supports the WMC Device Management functionality
	  of cell phones compliant to the CDC WMC specification. You can use
	  AT commands over this device.

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

config USB_TMC
	depends on n
	tristate "USB Test and Measurement Class support"
	depends on m
	help
	  Say Y here if you want to connect a USB device that follows
	  the USB.org specification for USB Test and Measurement devices
	  to your computer's USB port.

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