config COMEDI
	tristate "Data acquisition support (comedi)"
	depends on m
	---help---
	  Enable support a wide range of data acquisition devices
	  for Linux.

if COMEDI

config COMEDI_DEBUG
	bool "Comedi debugging"
	---help---
	  This is an option for use by developers; most people should
	  say N here. This enables comedi core and driver debugging.

config COMEDI_DEFAULT_BUF_SIZE_KB
	int "Comedi default initial asynchronous buffer size in KiB"
	default "2048"
	---help---
	  This is the default asynchronous buffer size which is used for
	  commands running in the background in kernel space.  This
	  defaults to 2048 KiB of memory so that a 16 channel card
	  running at 10 kHz has of 2-4 seconds of buffer.

config COMEDI_DEFAULT_BUF_MAXSIZE_KB
	int "Comedi default maximum asynchronous buffer size in KiB"
	default "20480"
	---help---
	  This is the default maximum asynchronous buffer size which can
	  be requested by a userspace program without root privileges.
	  This is set to 20480 KiB so that a fast I/O card with 16
	  channels running at 100 kHz has 2-4 seconds of buffer.

menuconfig COMEDI_MISC_DRIVERS
	bool "Comedi misc drivers"
	---help---
	  Enable comedi misc drivers to be built

	  Note that the answer to this question won't directly affect the
	  kernel: saying N will just cause the configurator to skip all
	  the questions about misc non-hardware comedi drivers.

if COMEDI_MISC_DRIVERS

config COMEDI_BOND
	tristate "Comedi device bonding support"
	select COMEDI_KCOMEDILIB
	---help---
	  Enable support for a driver to 'bond' (merge) multiple subdevices
	  from multiple devices together as one.

	  Currently, it only handles digital I/O subdevices.

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

config COMEDI_TEST
	tristate "Fake waveform generator support"
	---help---
	  Enable support for the fake waveform generator.
	  This driver is mainly for testing purposes, but can also be used to
	  generate sample waveforms on systems that don't have data acquisition
	  hardware.

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

config COMEDI_PARPORT
	tristate "Parallel port support"
	---help---
	  Enable support for the standard parallel port.
	  A cheap and easy way to get a few more digital I/O lines. Steal
	  additional parallel ports from old computers or your neighbors'
	  computers.

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

config COMEDI_SERIAL2002
	tristate "Driver for serial connected hardware"
	---help---
	  Enable support for serial connected hardware

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

config COMEDI_SSV_DNP
	tristate "SSV Embedded Systems DIL/Net-PC support"
	depends on X86_32 || COMPILE_TEST
	---help---
	  Enable support for SSV Embedded Systems DIL/Net-PC

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

endif # COMEDI_MISC_DRIVERS

menuconfig COMEDI_ISA_DRIVERS
	bool "Comedi ISA and PC/104 drivers"
	---help---
	  Enable comedi ISA and PC/104 drivers to be built

	  Note that the answer to this question won't directly affect the
	  kernel: saying N will just cause the configurator to skip all
	  the questions about ISA and PC/104 comedi drivers.

if COMEDI_ISA_DRIVERS

config COMEDI_PCL711
	tristate "Advantech PCL-711/711b and ADlink ACL-8112 ISA card support"
	select COMEDI_8254
	---help---
	  Enable support for Advantech PCL-711 and 711b, ADlink ACL-8112

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

config COMEDI_PCL724
	tristate "Advantech PCL-722/724/731 and ADlink ACL-7122/7124/PET-48DIO"
	select COMEDI_8255
	---help---
	  Enable support for ISA and PC/104 based 8255 digital i/o boards. This
	  driver provides a legacy comedi driver wrapper for the generic 8255
	  support driver.

	  Supported boards include:
	    Advantech PCL-724            24 channels
	    Advantech PCL-722            144 (or 96) channels
	    Advantech PCL-731            48 channels
	    ADlink ACL-7122              144 (or 96) channels
	    ADlink ACL-7124              24 channels
	    ADlink PET-48DIO             48 channels
	    WinSystems PCM-IO48          48 channels (PC/104)
	    Diamond Systems ONYX-MM-DIO  48 channels (PC/104)

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

config COMEDI_PCL726
	tristate "Advantech PCL-726 and compatible ISA card support"
	---help---
	  Enable support for Advantech PCL-726 and compatible ISA cards.

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

config COMEDI_PCL730
	tristate "Simple Digital I/O board support (8-bit ports)"
	---help---
	  Enable support for various simple ISA or PC/104 Digital I/O boards.
	  These boards all use 8-bit I/O ports.

	  Advantech PCL-730             iso - 16 in/16 out  ttl - 16 in/16 out
	  ICP ISO-730                   iso - 16 in/16 out  ttl - 16 in/16 out
	  ADlink ACL-7130               iso - 16 in/16 out  ttl - 16 in/16 out
	  Advantech PCM-3730            iso - 8 in/8 out    ttl - 16 in/16 out
	  Advantech PCL-725             iso - 8 in/8 out
	  ICP P8R8-DIO                  iso - 8 in/8 out
	  ADlink ACL-7225b              iso - 16 in/16 out
	  ICP P16R16-DIO                iso - 16 in/16 out
	  Advantech PCL-733             iso - 32 in
	  Advantech PCL-734             iso - 32 out
	  Diamond Systems OPMM-1616-XT  iso - 16 in/16 out
	  Diamond Systems PEARL-MM-P    iso - 16 out
	  Diamond Systems IR104-PBF     iso - 20 in/20 out

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

config COMEDI_PCL812
	tristate "Advantech PCL-812/813 and ADlink ACL-8112/8113/8113/8216"
	select COMEDI_ISADMA if ISA_DMA_API
	select COMEDI_8254
	---help---
	  Enable support for Advantech PCL-812/PG, PCL-813/B, ADLink
	  ACL-8112DG/HG/PG, ACL-8113, ACL-8216, ICP DAS A-821PGH/PGL/PGL-NDA,
	  A-822PGH/PGL, A-823PGH/PGL, A-826PG and ICP DAS ISO-813 ISA cards

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

config COMEDI_PCL816
	tristate "Advantech PCL-814 and PCL-816 ISA card support"
	select COMEDI_ISADMA if ISA_DMA_API
	select COMEDI_8254
	---help---
	  Enable support for Advantech PCL-814 and PCL-816 ISA cards

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

config COMEDI_PCL818
	tristate "Advantech PCL-718 and PCL-818 ISA card support"
	select COMEDI_ISADMA if ISA_DMA_API
	select COMEDI_8254
	---help---
	  Enable support for Advantech PCL-818 ISA cards
	  PCL-818L, PCL-818H, PCL-818HD, PCL-818HG, PCL-818 and PCL-718

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

config COMEDI_PCM3724
	tristate "Advantech PCM-3724 PC/104 card support"
	select COMEDI_8255
	---help---
	  Enable support for Advantech PCM-3724 PC/104 cards.

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

config COMEDI_AMPLC_DIO200_ISA
	tristate "Amplicon PC212E/PC214E/PC215E/PC218E/PC272E"
	select COMEDI_AMPLC_DIO200
	---help---
	  Enable support for Amplicon PC212E, PC214E, PC215E, PC218E and
	  PC272E ISA DIO boards

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

config COMEDI_AMPLC_PC236_ISA
	tristate "Amplicon PC36AT DIO board support"
	select COMEDI_AMPLC_PC236
	---help---
	  Enable support for Amplicon PC36AT ISA DIO board.

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

config COMEDI_AMPLC_PC263_ISA
	tristate "Amplicon PC263 relay board support"
	---help---
	  Enable support for Amplicon PC263 ISA relay board.  This board has
	  16 reed relay output channels.

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

config COMEDI_RTI800
	tristate "Analog Devices RTI-800/815 ISA card support"
	---help---
	  Enable support for Analog Devices RTI-800/815 ISA cards

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

config COMEDI_RTI802
	tristate "Analog Devices RTI-802 ISA card support"
	---help---
	  Enable support for Analog Devices RTI-802 ISA cards

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

config COMEDI_DAC02
	tristate "Keithley Metrabyte DAC02 compatible ISA card support"
	---help---
	  Enable support for Keithley Metrabyte DAC02 compatible ISA cards.

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

config COMEDI_DAS16M1
	tristate "MeasurementComputing CIO-DAS16/M1DAS-16 ISA card support"
	select COMEDI_8254
	select COMEDI_8255
	---help---
	  Enable support for Measurement Computing CIO-DAS16/M1 ISA cards.

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

config COMEDI_DAS08_ISA
	tristate "DAS-08 compatible ISA and PC/104 card support"
	select COMEDI_DAS08
	---help---
	  Enable support for Keithley Metrabyte/ComputerBoards DAS08
	  and compatible ISA and PC/104 cards:
	  Keithley Metrabyte/ComputerBoards DAS08, DAS08-PGM, DAS08-PGH,
	  DAS08-PGL, DAS08-AOH, DAS08-AOL, DAS08-AOM, DAS08/JR-AO,
	  DAS08/JR-16-AO, PC104-DAS08, DAS08/JR/16.

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

config COMEDI_DAS16
	tristate "DAS-16 compatible ISA and PC/104 card support"
	select COMEDI_ISADMA if ISA_DMA_API
	select COMEDI_8254
	select COMEDI_8255
	---help---
	  Enable support for Keithley Metrabyte/ComputerBoards DAS16
	  and compatible ISA and PC/104 cards:
	  Keithley Metrabyte DAS-16, DAS-16G, DAS-16F, DAS-1201, DAS-1202,
	  DAS-1401, DAS-1402, DAS-1601, DAS-1602 and
	  ComputerBoards/MeasurementComputing PC104-DAS16/JR/,
	  PC104-DAS16JR/16, CIO-DAS16JR/16, CIO-DAS16/JR, CIO-DAS1401/12,
	  CIO-DAS1402/12, CIO-DAS1402/16, CIO-DAS1601/12, CIO-DAS1602/12,
	  CIO-DAS1602/16, CIO-DAS16/330

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

config COMEDI_DAS800
	tristate "DAS800 and compatible ISA card support"
	select COMEDI_8254
	---help---
	  Enable support for Keithley Metrabyte DAS800 and compatible ISA cards
	  Keithley Metrabyte DAS-800, DAS-801, DAS-802
	  Measurement Computing CIO-DAS800, CIO-DAS801, CIO-DAS802 and
	  CIO-DAS802/16

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

config COMEDI_DAS1800
	tristate "DAS1800 and compatible ISA card support"
	select COMEDI_ISADMA if ISA_DMA_API
	select COMEDI_8254
	---help---
	  Enable support for DAS1800 and compatible ISA cards
	  Keithley Metrabyte DAS-1701ST, DAS-1701ST-DA, DAS-1701/AO,
	  DAS-1702ST, DAS-1702ST-DA, DAS-1702HR, DAS-1702HR-DA, DAS-1702/AO,
	  DAS-1801ST, DAS-1801ST-DA, DAS-1801HC, DAS-1801AO, DAS-1802ST,
	  DAS-1802ST-DA, DAS-1802HR, DAS-1802HR-DA, DAS-1802HC and
	  DAS-1802AO

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

config COMEDI_DAS6402
	tristate "DAS6402 and compatible ISA card support"
	select COMEDI_8254
	---help---
	  Enable support for DAS6402 and compatible ISA cards
	  Computerboards, Keithley Metrabyte DAS6402 and compatibles

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

config COMEDI_DT2801
	tristate "Data Translation DT2801 ISA card support"
	---help---
	  Enable support for Data Translation DT2801 ISA cards

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

config COMEDI_DT2811
	tristate "Data Translation DT2811 ISA card support"
	---help---
	  Enable support for Data Translation DT2811 ISA cards

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

config COMEDI_DT2814
	tristate "Data Translation DT2814 ISA card support"
	---help---
	  Enable support for Data Translation DT2814 ISA cards

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

config COMEDI_DT2815
	tristate "Data Translation DT2815 ISA card support"
	---help---
	  Enable support for Data Translation DT2815 ISA cards

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

config COMEDI_DT2817
	tristate "Data Translation DT2817 ISA card support"
	---help---
	  Enable support for Data Translation DT2817 ISA cards

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

config COMEDI_DT282X
	tristate "Data Translation DT2821 series and DT-EZ ISA card support"
	select COMEDI_ISADMA if ISA_DMA_API
	---help---
	  Enable support for Data Translation DT2821 series including DT-EZ
	  DT2821, DT2821-F-16SE, DT2821-F-8DI, DT2821-G-16SE, DT2821-G-8DI,
	  DT2823 (dt2823), DT2824-PGH, DT2824-PGL, DT2825, DT2827, DT2828,
	  DT21-EZ, DT23-EZ, DT24-EZ and DT24-EZ-PGL

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

config COMEDI_DMM32AT
	tristate "Diamond Systems MM-32-AT PC/104 board support"
	select COMEDI_8255
	---help---
	  Enable support for Diamond Systems MM-32-AT PC/104 boards

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

config COMEDI_UNIOXX5
	tristate "Fastwel UNIOxx-5 analog and digital io board support"
	---help---
	  Enable support for Fastwel UNIOxx-5 (analog and digital i/o) boards

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

config COMEDI_FL512
	tristate "FL512 ISA card support"
	---help---
	  Enable support for FL512 ISA card

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

config COMEDI_AIO_AIO12_8
	tristate "I/O Products PC/104 AIO12-8 Analog I/O Board support"
	select COMEDI_8255
	---help---
	  Enable support for I/O Products PC/104 AIO12-8 Analog I/O Board

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

config COMEDI_AIO_IIRO_16
	tristate "I/O Products PC/104 IIRO16 Board support"
	---help---
	  Enable support for I/O Products PC/104 IIRO16 Relay And Isolated
	  Input Board

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

config COMEDI_II_PCI20KC
	tristate "Intelligent Instruments PCI-20001C carrier support"
	depends on HAS_IOMEM
	---help---
	  Enable support for Intelligent Instruments PCI-20001C carrier
	  PCI-20001, PCI-20006 and PCI-20341

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

config COMEDI_C6XDIGIO
	tristate "Mechatronic Systems Inc. C6x_DIGIO DSP daughter card support"
	---help---
	  Enable support for Mechatronic Systems Inc. C6x_DIGIO DSP daughter
	  card

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

config COMEDI_MPC624
	tristate "Micro/sys MPC-624 PC/104 board support"
	---help---
	  Enable support for Micro/sys MPC-624 PC/104 board

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

config COMEDI_ADQ12B
	tristate "MicroAxial ADQ12-B data acquisition and control card support"
	---help---
	  Enable MicroAxial ADQ12-B daq and control card support.

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

config COMEDI_NI_AT_A2150
	tristate "NI AT-A2150 ISA card support"
	select COMEDI_ISADMA if ISA_DMA_API
	select COMEDI_8254
	---help---
	  Enable support for National Instruments AT-A2150 cards

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

config COMEDI_NI_AT_AO
	tristate "NI AT-AO-6/10 EISA card support"
	select COMEDI_8254
	---help---
	  Enable support for National Instruments AT-AO-6/10 cards

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

config COMEDI_NI_ATMIO
	tristate "NI AT-MIO E series ISA-PNP card support"
	select COMEDI_8255
	select COMEDI_NI_TIO
	---help---
	  Enable support for National Instruments AT-MIO E series cards
	  National Instruments AT-MIO-16E-1 (ni_atmio),
	  AT-MIO-16E-2, AT-MIO-16E-10, AT-MIO-16DE-10, AT-MIO-64E-3,
	  AT-MIO-16XE-50, AT-MIO-16XE-10, AT-AI-16XE-10

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

config COMEDI_NI_ATMIO16D
	tristate "NI AT-MIO-16/AT-MIO-16D series ISA card support"
	select COMEDI_8255
	---help---
	  Enable support for National Instruments AT-MIO-16/AT-MIO-16D cards.

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

config COMEDI_NI_LABPC_ISA
	tristate "NI Lab-PC and compatibles ISA support"
	select COMEDI_NI_LABPC
	select COMEDI_NI_LABPC_ISADMA if ISA_DMA_API
	---help---
	  Enable support for National Instruments Lab-PC and compatibles
	  Lab-PC-1200, Lab-PC-1200AI, Lab-PC+.
	  Kernel-level ISA plug-and-play support for the lab-pc-1200 boards has
	  not yet been added to the driver.

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

config COMEDI_PCMAD
	tristate "Winsystems PCM-A/D12 and PCM-A/D16 PC/104 board support"
	---help---
	  Enable support for Winsystems PCM-A/D12 and PCM-A/D16 PC/104 boards.

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

config COMEDI_PCMDA12
	tristate "Winsystems PCM-D/A-12 8-channel AO PC/104 board support"
	---help---
	  Enable support for Winsystems PCM-D/A-12 8-channel AO PC/104 boards.
	  Note that the board is not ISA-PNP capable and thus needs the I/O
	  port comedi_config parameter.

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

config COMEDI_PCMMIO
	tristate "Winsystems PCM-MIO PC/104 board support"
	---help---
	  Enable support for Winsystems PCM-MIO multifunction PC/104 boards.

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

config COMEDI_PCMUIO
	tristate "Winsystems PCM-UIO48A and PCM-UIO96A PC/104 board support"
	---help---
	  Enable support for PCM-UIO48A and PCM-UIO96A PC/104 boards.

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

config COMEDI_MULTIQ3
	tristate "Quanser Consulting MultiQ-3 ISA card support"
	---help---
	  Enable support for Quanser Consulting MultiQ-3 ISA cards

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

config COMEDI_S526
	tristate "Sensoray s526 support"
	---help---
	  Enable support for Sensoray s526

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

endif # COMEDI_ISA_DRIVERS

menuconfig COMEDI_PCI_DRIVERS
	tristate "Comedi PCI drivers"
	depends on PCI
	---help---
	  Enable support for comedi PCI drivers.

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

if COMEDI_PCI_DRIVERS

config COMEDI_8255_PCI
	tristate "Generic PCI based 8255 digital i/o board support"
	select COMEDI_8255
	---help---
	  Enable support for PCI based 8255 digital i/o boards. This driver
	  provides a PCI wrapper around the generic 8255 driver.

	  Supported boards:
	    ADlink - PCI-7224, PCI-7248, and PCI-7296
	    Measurement Computing - PCI-DIO24, PCI-DIO24H, PCI-DIO48H and
	                            PCI-DIO96H
	    National Instruments - PCI-DIO-96, PCI-DIO-96B, PXI-6508, PCI-6503,
	                           PCI-6503B, PCI-6503X, and PXI-6503

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

config COMEDI_ADDI_WATCHDOG
	tristate
	---help---
	  Provides support for the watchdog subdevice found on many ADDI-DATA
	  boards. This module will be automatically selected when needed. The
	  module will be called addi_watchdog.

config COMEDI_ADDI_APCI_1032
	tristate "ADDI-DATA APCI_1032 support"
	---help---
	  Enable support for ADDI-DATA APCI_1032 cards

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

config COMEDI_ADDI_APCI_1500
	tristate "ADDI-DATA APCI_1500 support"
	---help---
	  Enable support for ADDI-DATA APCI_1500 cards

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

config COMEDI_ADDI_APCI_1516
	tristate "ADDI-DATA APCI-1016/1516/2016 support"
	select COMEDI_ADDI_WATCHDOG
	---help---
	  Enable support for ADDI-DATA APCI-1016, APCI-1516 and APCI-2016 boards.
	  These are 16 channel, optically isolated, digital I/O boards. The 1516
	  and 2016 boards also have a watchdog for resetting the outputs to "0".

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

config COMEDI_ADDI_APCI_1564
	tristate "ADDI-DATA APCI_1564 support"
	select COMEDI_ADDI_WATCHDOG
	---help---
	  Enable support for ADDI-DATA APCI_1564 cards

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

config COMEDI_ADDI_APCI_16XX
	tristate "ADDI-DATA APCI_16xx support"
	---help---
	  Enable support for ADDI-DATA APCI_16xx cards

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

config COMEDI_ADDI_APCI_2032
	tristate "ADDI-DATA APCI_2032 support"
	select COMEDI_ADDI_WATCHDOG
	---help---
	  Enable support for ADDI-DATA APCI_2032 cards

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

config COMEDI_ADDI_APCI_2200
	tristate "ADDI-DATA APCI_2200 support"
	select COMEDI_ADDI_WATCHDOG
	---help---
	  Enable support for ADDI-DATA APCI_2200 cards

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

config COMEDI_ADDI_APCI_3120
	tristate "ADDI-DATA APCI_3120/3001 support"
	depends on HAS_DMA
	---help---
	  Enable support for ADDI-DATA APCI_3120/3001 cards

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

config COMEDI_ADDI_APCI_3501
	tristate "ADDI-DATA APCI_3501 support"
	---help---
	  Enable support for ADDI-DATA APCI_3501 cards

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

config COMEDI_ADDI_APCI_3XXX
	tristate "ADDI-DATA APCI_3xxx support"
	---help---
	  Enable support for ADDI-DATA APCI_3xxx cards

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

config COMEDI_ADL_PCI6208
	tristate "ADLink PCI-6208A support"
	---help---
	  Enable support for ADLink PCI-6208A cards

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

config COMEDI_ADL_PCI7X3X
	tristate "ADLink PCI-723X/743X isolated digital i/o board support"
	---help---
	  Enable support for ADlink PCI-723X/743X isolated digital i/o boards.
	  Supported boards include the 32-channel PCI-7230 (16 in/16 out),
	  PCI-7233 (32 in), and PCI-7234 (32 out) as well as the 64-channel
	  PCI-7432 (32 in/32 out), PCI-7433 (64 in), and PCI-7434 (64 out).

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

config COMEDI_ADL_PCI8164
	tristate "ADLink PCI-8164 4 Axes Motion Control board support"
	---help---
	  Enable support for ADlink PCI-8164 4 Axes Motion Control board

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

config COMEDI_ADL_PCI9111
	tristate "ADLink PCI-9111HR support"
	select COMEDI_8254
	---help---
	  Enable support for ADlink PCI9111 cards

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

config COMEDI_ADL_PCI9118
	tristate "ADLink PCI-9118DG, PCI-9118HG, PCI-9118HR support"
	depends on HAS_DMA
	select COMEDI_8254
	---help---
	  Enable support for ADlink PCI-9118DG, PCI-9118HG, PCI-9118HR cards

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

config COMEDI_ADV_PCI1710
	tristate "Advantech PCI-171x, PCI-1720 and PCI-1731 support"
	select COMEDI_8254
	---help---
	  Enable support for Advantech PCI-1710, PCI-1710HG, PCI-1711,
	  PCI-1713, PCI-1720 and PCI-1731

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

config COMEDI_ADV_PCI1723
	tristate "Advantech PCI-1723 support"
	---help---
	  Enable support for Advantech PCI-1723 cards

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

config COMEDI_ADV_PCI1724
	tristate "Advantech PCI-1724U support"
	---help---
	  Enable support for Advantech PCI-1724U cards.  These are 32-channel
	  analog output cards with voltage and current loop output ranges and
	  14-bit resolution.

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

config COMEDI_ADV_PCI_DIO
	tristate "Advantech PCI DIO card support"
	select COMEDI_8254
	select COMEDI_8255
	---help---
	  Enable support for Advantech PCI DIO cards
	  PCI-1730, PCI-1733, PCI-1734, PCI-1735U, PCI-1736UP, PCI-1739U,
	  PCI-1750, PCI-1751, PCI-1752, PCI-1753/E, PCI-1754, PCI-1756,
	  PCI-1760 and PCI-1762

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

config COMEDI_AMPLC_DIO200_PCI
	tristate "Amplicon PCI215/PCI272/PCIe215/PCIe236/PCIe296 DIO support"
	select COMEDI_AMPLC_DIO200
	---help---
	  Enable support for Amplicon PCI215, PCI272, PCIe215, PCIe236
	  and PCIe296 DIO boards.

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

config COMEDI_AMPLC_PC236_PCI
	tristate "Amplicon PCI236 DIO board support"
	select COMEDI_AMPLC_PC236
	---help---
	  Enable support for Amplicon PCI236 DIO board.

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

config COMEDI_AMPLC_PC263_PCI
	tristate "Amplicon PCI263 relay board support"
	---help---
	  Enable support for Amplicon PCI263 relay board.  This is a PCI board
	  with 16 reed relay output channels.

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

config COMEDI_AMPLC_PCI224
	tristate "Amplicon PCI224 and PCI234 support"
	select COMEDI_8254
	---help---
	  Enable support for Amplicon PCI224 and PCI234 AO boards

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

config COMEDI_AMPLC_PCI230
	tristate "Amplicon PCI230 and PCI260 support"
	select COMEDI_8254
	select COMEDI_8255
	---help---
	  Enable support for Amplicon PCI230 and PCI260 Multifunction I/O
	  boards

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

config COMEDI_CONTEC_PCI_DIO
	tristate "Contec PIO1616L digital I/O board support"
	---help---
	  Enable support for the Contec PIO1616L digital I/O board

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

config COMEDI_DAS08_PCI
	tristate "DAS-08 PCI support"
	select COMEDI_DAS08
	---help---
	  Enable support for PCI DAS-08 cards.

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

config COMEDI_DT3000
	tristate "Data Translation DT3000 series support"
	---help---
	  Enable support for Data Translation DT3000 series
	  DT3001, DT3001-PGL, DT3002, DT3003, DT3003-PGL, DT3004, DT3005 and
	  DT3004-200

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

config COMEDI_DYNA_PCI10XX
	tristate "Dynalog PCI DAQ series support"
	---help---
	  Enable support for Dynalog PCI DAQ series
	  PCI-1050

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

config COMEDI_GSC_HPDI
	tristate "General Standards PCI-HPDI32 / PMC-HPDI32 support"
	---help---
	  Enable support for General Standards Corporation high speed parallel
	  digital interface rs485 boards PCI-HPDI32 and PMC-HPDI32.
	  Only receive mode works, transmit not supported.

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

config COMEDI_MF6X4
	tristate "Humusoft MF634 and MF624 DAQ Card support"
	---help---
	  This driver supports both Humusoft MF634 and MF624 Data acquisition
	  cards. The legacy Humusoft MF614 card is not supported.

config COMEDI_ICP_MULTI
	tristate "Inova ICP_MULTI support"
	---help---
	  Enable support for Inova ICP_MULTI card

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

config COMEDI_DAQBOARD2000
	tristate "IOtech DAQboard/2000 support"
	select COMEDI_8255
	---help---
	  Enable support for the IOtech DAQboard/2000

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

config COMEDI_JR3_PCI
	tristate "JR3/PCI force sensor board support"
	---help---
	  Enable support for JR3/PCI force sensor boards

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

config COMEDI_KE_COUNTER
	tristate "Kolter-Electronic PCI Counter 1 card support"
	---help---
	  Enable support for Kolter-Electronic PCI Counter 1 cards

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

config COMEDI_CB_PCIDAS64
	tristate "MeasurementComputing PCI-DAS 64xx, 60xx, and 4020 support"
	select COMEDI_8255
	---help---
	  Enable support for ComputerBoards/MeasurementComputing PCI-DAS 64xx,
	  60xx, and 4020 series with the PLX 9080 PCI controller

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

config COMEDI_CB_PCIDAS
	tristate "MeasurementComputing PCI-DAS support"
	select COMEDI_8254
	select COMEDI_8255
	---help---
	  Enable support for ComputerBoards/MeasurementComputing PCI-DAS with
	  AMCC S5933 PCIcontroller: PCI-DAS1602/16, PCI-DAS1602/16jr,
	  PCI-DAS1602/12, PCI-DAS1200, PCI-DAS1200jr, PCI-DAS1000, PCI-DAS1001
	  and PCI_DAS1002.

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

config COMEDI_CB_PCIDDA
	tristate "MeasurementComputing PCI-DDA series support"
	select COMEDI_8255
	---help---
	  Enable support for ComputerBoards/MeasurementComputing PCI-DDA
	  series: PCI-DDA08/12, PCI-DDA04/12, PCI-DDA02/12, PCI-DDA08/16,
	  PCI-DDA04/16 and PCI-DDA02/16

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

config COMEDI_CB_PCIMDAS
	tristate "MeasurementComputing PCIM-DAS1602/16, PCIe-DAS1602/16 support"
	select COMEDI_8255
	---help---
	  Enable support for ComputerBoards/MeasurementComputing PCI Migration
	  series PCIM-DAS1602/16 and PCIe-DAS1602/16.

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

config COMEDI_CB_PCIMDDA
	tristate "MeasurementComputing PCIM-DDA06-16 support"
	select COMEDI_8255
	---help---
	  Enable support for ComputerBoards/MeasurementComputing PCIM-DDA06-16

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

config COMEDI_ME4000
	tristate "Meilhaus ME-4000 support"
	select COMEDI_8254
	---help---
	  Enable support for Meilhaus PCI data acquisition cards
	  ME-4650, ME-4670i, ME-4680, ME-4680i and ME-4680is

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

config COMEDI_ME_DAQ
	tristate "Meilhaus ME-2000i, ME-2600i, ME-3000vm1 support"
	---help---
	  Enable support for Meilhaus PCI data acquisition cards
	  ME-2000i, ME-2600i and ME-3000vm1

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

config COMEDI_NI_6527
	tristate "NI 6527 support"
	---help---
	  Enable support for the National Instruments 6527 PCI card

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

config COMEDI_NI_65XX
	tristate "NI 65xx static dio PCI card support"
	---help---
	  Enable support for National Instruments 65xx static dio boards.
	  Supported devices: National Instruments PCI-6509 (ni_65xx),
	  PXI-6509, PCI-6510, PCI-6511, PXI-6511, PCI-6512, PXI-6512, PCI-6513,
	  PXI-6513, PCI-6514, PXI-6514, PCI-6515, PXI-6515, PCI-6516, PCI-6517,
	  PCI-6518, PCI-6519, PCI-6520, PCI-6521, PXI-6521, PCI-6528, PXI-6528

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

config COMEDI_NI_660X
	tristate "NI 660x counter/timer PCI card support"
	depends on HAS_DMA
	select COMEDI_NI_TIOCMD
	---help---
	  Enable support for National Instruments PCI-6601 (ni_660x), PCI-6602,
	  PXI-6602, PXI-6608 and PXI-6624.

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

config COMEDI_NI_670X
	tristate "NI 670x PCI card support"
	---help---
	  Enable support for National Instruments PCI-6703 and PCI-6704

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

config COMEDI_NI_LABPC_PCI
	tristate "NI Lab-PC PCI-1200 support"
	select COMEDI_NI_LABPC
	---help---
	  Enable support for National Instruments Lab-PC PCI-1200.

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

config COMEDI_NI_PCIDIO
	tristate "NI PCI-DIO32HS, PCI-6533, PCI-6534 support"
	depends on HAS_DMA
	select COMEDI_MITE
	select COMEDI_8255
	---help---
	  Enable support for National Instruments PCI-DIO-32HS, PXI-6533,
	  PCI-6533 and PCI-6534

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

config COMEDI_NI_PCIMIO
	tristate "NI PCI-MIO-E series and M series support"
	depends on HAS_DMA
	select COMEDI_NI_TIOCMD
	select COMEDI_8255
	---help---
	  Enable support for National Instruments PCI-MIO-E series and M series
	  (all boards): PCI-MIO-16XE-10, PXI-6030E, PCI-MIO-16E-1,
	  PCI-MIO-16E-4, PCI-6014, PCI-6040E, PXI-6040E, PCI-6030E, PCI-6031E,
	  PCI-6032E, PCI-6033E, PCI-6071E, PCI-6023E, PCI-6024E, PCI-6025E,
	  PXI-6025E, PCI-6034E, PCI-6035E, PCI-6052E, PCI-6110, PCI-6111,
	  PCI-6220, PCI-6221, PCI-6224, PXI-6224, PCI-6225, PXI-6225, PCI-6229,
	  PCI-6250, PCI-6251, PCIe-6251, PCI-6254, PCI-6259, PCIe-6259,
	  PCI-6280, PCI-6281, PXI-6281, PCI-6284, PCI-6289, PCI-6711, PXI-6711,
	  PCI-6713, PXI-6713, PXI-6071E, PCI-6070E, PXI-6070E, PXI-6052E,
	  PCI-6036E, PCI-6731, PCI-6733, PXI-6733, PCI-6143, PXI-6143

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

config COMEDI_RTD520
	tristate "Real Time Devices PCI4520/DM7520 support"
	---help---
	  Enable support for Real Time Devices PCI4520/DM7520

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

config COMEDI_S626
	tristate "Sensoray 626 support"
	---help---
	  Enable support for Sensoray 626

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

config COMEDI_MITE
	depends on HAS_DMA
	tristate

config COMEDI_NI_TIOCMD
	tristate
	depends on HAS_DMA
	select COMEDI_NI_TIO
	select COMEDI_MITE

endif # COMEDI_PCI_DRIVERS

menuconfig COMEDI_PCMCIA_DRIVERS
	tristate "Comedi PCMCIA drivers"
	depends on PCMCIA
	---help---
	  Enable support for comedi PCMCIA drivers.

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

if COMEDI_PCMCIA_DRIVERS

config COMEDI_CB_DAS16_CS
	tristate "CB DAS16 series PCMCIA support"
	select COMEDI_8254
	---help---
	  Enable support for the ComputerBoards/MeasurementComputing PCMCIA
	  cards DAS16/16, PCM-DAS16D/12 and PCM-DAS16s/16

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

config COMEDI_DAS08_CS
	tristate "CB DAS08 PCMCIA support"
	select COMEDI_DAS08
	---help---
	  Enable support for the ComputerBoards/MeasurementComputing DAS-08
	  PCMCIA card

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

config COMEDI_NI_DAQ_700_CS
	tristate "NI DAQCard-700 PCMCIA support"
	---help---
	  Enable support for the National Instruments PCMCIA DAQCard-700 DIO

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

config COMEDI_NI_DAQ_DIO24_CS
	tristate "NI DAQ-Card DIO-24 PCMCIA support"
	select COMEDI_8255
	---help---
	  Enable support for the National Instruments PCMCIA DAQ-Card DIO-24

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

config COMEDI_NI_LABPC_CS
	tristate "NI DAQCard-1200 PCMCIA support"
	select COMEDI_NI_LABPC
	---help---
	  Enable support for the National Instruments PCMCIA DAQCard-1200

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

config COMEDI_NI_MIO_CS
	tristate "NI DAQCard E series PCMCIA support"
	select COMEDI_NI_TIO
	select COMEDI_8255
	---help---
	  Enable support for the National Instruments PCMCIA DAQCard E series
	  DAQCard-ai-16xe-50, DAQCard-ai-16e-4, DAQCard-6062E, DAQCard-6024E
	  and DAQCard-6036E

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

config COMEDI_QUATECH_DAQP_CS
	tristate "Quatech DAQP PCMCIA data capture card support"
	---help---
	  Enable support for the Quatech DAQP PCMCIA data capture cards
	  DAQP-208 and DAQP-308

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

endif # COMEDI_PCMCIA_DRIVERS

menuconfig COMEDI_USB_DRIVERS
	tristate "Comedi USB drivers"
	depends on USB
	---help---
	  Enable support for comedi USB drivers.

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

if COMEDI_USB_DRIVERS

config COMEDI_DT9812
	tristate "DataTranslation DT9812 USB module support"
	---help---
	  Enable support for the Data Translation DT9812 USB module

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

config COMEDI_NI_USB6501
	tristate "NI USB-6501 support"
	---help---
	  Enable support for the National Instruments USB-6501 module.

	  The NI USB-6501 is a Full-Speed USB 2.0 (12 Mbit/s) device that
	  provides 24 digital I/O lines channels and one 32-bit counter.

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

config COMEDI_USBDUX
	tristate "ITL USB-DUX-D support"
	---help---
	  Enable support for the Incite Technology Ltd USB-DUX-D Board

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

config COMEDI_USBDUXFAST
	tristate "ITL USB-DUXfast support"
	---help---
	  Enable support for the Incite Technology Ltd USB-DUXfast Board

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

config COMEDI_USBDUXSIGMA
	tristate "ITL USB-DUXsigma support"
	---help---
	  Enable support for the Incite Technology Ltd USB-DUXsigma Board

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

config COMEDI_VMK80XX
	tristate "Velleman VM110/VM140 USB Board support"
	---help---
	  Build the Velleman USB Board Low-Level Driver supporting the
	  K8055/K8061 aka VM110/VM140 devices

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

endif # COMEDI_USB_DRIVERS

config COMEDI_8254
	tristate

config COMEDI_8255
	tristate "Generic 8255 support"
	---help---
	  Enable generic 8255 support.

	  You should enable compilation this driver if you plan to use a board
	  that has an 8255 chip. For multifunction boards, the main driver will
	  configure the 8255 subdevice automatically.

	  Note that most PCI based 8255 boards use the 8255_pci driver as a
	  wrapper around this driver.

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

config COMEDI_KCOMEDILIB
	tristate "Comedi kcomedilib"
	---help---
	  Build the kcomedilib.

	  This is a kernel module used to open and manipulate Comedi devices
	  from within kernel code.  It is currently only used by the
	  comedi_bond driver, and its functionality has been stripped down to
	  the needs of that driver, so is currently not very useful for
	  anything else.

	  To compile kcomedilib as a module, choose M here: the module will be
	  called kcomedilib.

config COMEDI_AMPLC_DIO200
	select COMEDI_8254
	tristate

config COMEDI_AMPLC_PC236
	tristate
	select COMEDI_8255

config COMEDI_DAS08
	tristate
	select COMEDI_8254
	select COMEDI_8255

config COMEDI_ISADMA
	tristate

config COMEDI_NI_LABPC
	tristate
	select COMEDI_8254
	select COMEDI_8255

config COMEDI_NI_LABPC_ISADMA
	tristate
	select COMEDI_ISADMA

config COMEDI_NI_TIO
	tristate

endif # COMEDI
