#
# USB/ATM DSL configuration
#

menu "USB DSL modem support"
	depends on USB

config USB_ATM
	tristate "USB DSL modem support"
	depends on USB && ATM
	select CRC32
	default n
	help
	  Say Y here if you want to connect a USB Digital Subscriber Line (DSL)
	  modem to your computer's USB port.  You will then need to choose your
	  modem from the list below.

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

config USB_SPEEDTOUCH
	tristate "Speedtouch USB support"
	depends on USB_ATM
	select FW_LOADER
	help
	  Say Y here if you have an SpeedTouch USB or SpeedTouch 330
	  modem.  In order to use your modem you will need to install the 
	  two parts of the firmware, extracted by the user space tools; see
	  <http://www.linux-usb.org/SpeedTouch/> for details.

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

config USB_CXACRU
	tristate "Conexant AccessRunner USB support"
	depends on USB_ATM
	select FW_LOADER
	help
	  Say Y here if you have an ADSL USB modem based on the Conexant
	  AccessRunner chipset.  In order to use your modem you will need to
	  install the firmware, extracted by the user space tools; see
	  <http://accessrunner.sourceforge.net/> for details.

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

config USB_UEAGLEATM
	tristate "ADI 930 and eagle USB DSL modem"
	depends on USB_ATM
	select FW_LOADER
	help
	  Say Y here if you have an ADSL USB modem based on the ADI 930
	  or eagle chipset. In order to use your modem you will need to
	  install firmwares and CMV (Command Management Variables); see
	  <https://gna.org/projects/ueagleatm/> for details.

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

config USB_XUSBATM
	tristate "Other USB DSL modem support"
	depends on USB_ATM
	help
	  Say Y here if you have a DSL USB modem not explicitly supported by
	  another USB DSL drivers.  In order to use your modem you will need to
	  pass the vendor ID, product ID, and endpoint numbers for transmission
	  and reception as module parameters.  You may need to initialize
	  the modem using a user space utility (a firmware loader for example).

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

endmenu
