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

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

menuconfig COMEDI_MISC_DRIVERS
	tristate "Comedi misc drivers"
	depends on COMEDI
	default N
	---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_KCOMEDILIB
	tristate "Comedi kcomedilib"
	---help---
	  Build the kcomedilib

config COMEDI_BOND
	tristate "Device bonding support"
	depends on COMEDI_KCOMEDILIB
	default N
	---help---
	  Enable support for a driver to 'bond' (merge) multiple subdevices
	  from multiple devices together as one.

	  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"
	select COMEDI_FC
	default N
	---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"
	default N
	---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"
	default N
	---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_SKEL
	tristate "Comedi skeleton driver"
	default N
	---help---
	  Build the Skeleton driver, an example for driver writers

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

endif # COMEDI_MISC_DRIVERS

menuconfig COMEDI_ISA_DRIVERS
	tristate "Comedi ISA and PC/104 drivers"
	depends on COMEDI && ISA
	default N
	---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 && ISA

config COMEDI_ACL7225B
	tristate "ADlink NuDAQ ACL-7225b and compatibles support"
	default N
	---help---
	  Enable support for ADlink NuDAQ ACL-7225b and compatibles,
	  ADlink ACL-7225b (acl7225b), ICP P16R16DIO (p16r16dio)

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

config COMEDI_PCL711
	tristate "Advantech PCL-711/711b and ADlink ACL-8112 ISA card support"
	default N
	---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
	default N
	---help---
	  Enable support for Advantech PCL-724, PCL-722, PCL-731 and
	  ADlink ACL-7122, ACL-7124, PET-48DIO ISA cards

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

config COMEDI_PCL725
	tristate "Advantech PCL-725 and compatible ISA card support"
	default N
	---help---
	  Enable support for Advantech PCL-725 and compatible ISA cards.

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

config COMEDI_PCL726
	tristate "Advantech PCL-726 and compatible ISA card support"
	default N
	---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 "Advantech PCL-730 and ADlink ACL-7130 ISA card support"
	default N
	---help---
	  Enable support for Advantech PCL-730, ICP ISO-730 and ADlink
	  ACL-7130 ISA cards

	  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"
	default N
	---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"
	default N
	---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"
	default N
	---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
	default N
	---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_PCM3730
	tristate "Advantech PCM-3730 and clone PC/104 board support"
	default N
	---help---
	  Enable support for Advantech PCM-3730 and clone PC/104 boards

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

config COMEDI_RTI800
	tristate "Analog Devices RTI-800/815 ISA card support"
	default N
	---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"
	default N
	---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_DAS16M1
	tristate "MeasurementComputing CIO-DAS16/M1DAS-16 ISA card support"
	select COMEDI_8255
	select COMEDI_FC
	default N
	---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_DAS16
	tristate "DAS-16 compatible ISA and PC/104 card support"
	select COMEDI_8255
	select COMEDI_FC
	default N
	---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_FC
	default N
	---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_FC
	default N
	---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"
	default N
	---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"
	default N
	---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"
	default N
	---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"
	default N
	---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"
	default N
	---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"
	default N
	---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_FC
	default N
	---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"
	default N
	---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_FL512
	tristate "FL512 ISA card support"
	default N
	---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
	default N
	---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"
	default N
	---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_C6XDIGIO
	tristate "Mechatronic Systems Inc. C6x_DIGIO DSP daughter card support"
	default N
	---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"
	default N
	---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"
	default N
	---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"
	depends on COMEDI_NI_COMMON
	default N
	---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"
	depends on COMEDI_NI_COMMON
	default N
	---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"
	depends on ISAPNP && COMEDI_NI_TIO && COMEDI_NI_COMMON
	select COMEDI_8255
	default N
	---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-MIO16/AT-MIO16D series ISA-PNP card support"
	depends on ISAPNP && COMEDI_NI_COMMON
	select COMEDI_8255
	default N
	---help---
	  Enable support for National Instruments AT-MIO16/AT-MIO16D cards.

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

config COMEDI_PCMAD
	tristate "Winsystems PCM-A/D12 and PCM-A/D16 PC/104 board support"
	default N
	---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"
	default N
	---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"
	default N
	---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"
	default N
	---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"
	default N
	---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_POC
	tristate "Generic driver for very simple devices"
	default N
	---help---
	  Enable generic support for very simple / POC (Piece of Crap) boards,
	  Keithley Metrabyte DAC-02 (dac02), Advantech PCL-733 (pcl733) and
	  PCL-734 (pcl734)

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

endif # COMEDI_ISA_DRIVERS

menuconfig COMEDI_PCI_DRIVERS
	tristate "Comedi PCI drivers"
	depends on COMEDI && PCI
	default N
	---help---
	  Enable comedi PCI 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 PCI comedi drivers.

if COMEDI_PCI_DRIVERS && PCI

config COMEDI_ADDI_APCI_035
	tristate "ADDI-DATA APCI_035 support"
	default N
	---help---
	  Enable support for ADDI-DATA APCI_035 cards

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

config COMEDI_ADDI_APCI_1032
	tristate "ADDI-DATA APCI_1032 support"
	default N
	---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"
	default N
	---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_1516 support"
	default N
	---help---
	  Enable support for ADDI-DATA APCI_1516 cards

	  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"
	default N
	---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"
	default N
	---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_2016
	tristate "ADDI-DATA APCI_2016 support"
	default N
	---help---
	  Enable support for ADDI-DATA APCI_2016 cards

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

config COMEDI_ADDI_APCI_2032
	tristate "ADDI-DATA APCI_2032 support"
	default N
	---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"
	default N
	---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_3001
	tristate "ADDI-DATA APCI_3001 support"
	select COMEDI_FC
	default N
	---help---
	  Enable support for ADDI-DATA APCI_3001 cards

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

config COMEDI_ADDI_APCI_3120
	tristate "ADDI-DATA APCI_3520 support"
	select COMEDI_FC
	default N
	---help---
	  Enable support for ADDI-DATA APCI_3520 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"
	default N
	---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"
	default N
	---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"
	select COMEDI_8255
	default N
	---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_PCI7230
	tristate "ADLink PCI-7230 digital io board support"
	default N
	---help---
	  Enable support for ADlink PCI-7230 digital io board support

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

config COMEDI_ADL_PCI7296
	tristate "ADLink PCI-7296 96 ch. digital io board support"
	default N
	---help---
	  Enable support for ADlink PCI-7296 96 ch. digital io board support

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

config COMEDI_ADL_PCI7432
	tristate "ADLink PCI-7432 64 ch. isolated digital io board support"
	default N
	---help---
	  Enable support for ADlink PCI-7432 64 ch. isolated digital io board

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

config COMEDI_ADL_PCI8164
	tristate "ADLink PCI-8164 4 Axes Motion Control board support"
	default N
	---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_FC
	default N
	---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"
	select COMEDI_FC
	default N
	---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"
	default N
	---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"
	default N
	---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_PCI_DIO
	tristate "Advantech PCI DIO card support"
	select COMEDI_8255
	default N
	---help---
	  Enable support for Advantech PCI DIO cards
	  PCI-1730, PCI-1733, PCI-1734, PCI-1736UP, PCI-1750, PCI-1751,
	  PCI-1752, PCI-1753/E, PCI-1754, PCI-1756 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
	tristate "Amplicon PC272E and PCI272 DIO board support"
	select COMEDI_8255
	default N
	---help---
	  Enable support for Amplicon PC272E and PCI272 DIO boards

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

config COMEDI_AMPLC_PC236
	tristate "Amplicon PC36AT and PCI236 DIO board support"
	select COMEDI_8255
	default N
	---help---
	  Enable support for Amplicon PC36AT and PCI236 DIO boards

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

config COMEDI_AMPLC_PC263
	tristate "Amplicon PC263 and PCI263 relay board support"
	default N
	---help---
	  Enable support for Amplicon PC263 and PCI263 relay boards

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

config COMEDI_AMPLC_PCI224
	tristate "Amplicon PCI224 and PCI234 support"
	select COMEDI_FC
	default N
	---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_8255
	default N
	---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"
	default N
	---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_DT3000
	tristate "Data Translation DT3000 series support"
	default N
	---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_UNIOXX5
	tristate "Fastwel UNIOxx-5 analog and digital io board support"
	default N
	---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_GSC_HPDI
	tristate "General Standards PCI-HPDI32 / PMC-HPDI32 support"
	select COMEDI_FC
	default N
	---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_ICP_MULTI
	tristate "Inova ICP_MULTI support"
	default N
	---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_II_PCI20KC
	tristate "Intelligent Instruments PCI-20001C carrier support"
	default N
	---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_DAQBOARD2000
	tristate "IOtech DAQboard/2000 support"
	select COMEDI_8255
	default N
	---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"
	default N
	---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"
	default N
	---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
	select COMEDI_FC
	default N
	---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_8255
	select COMEDI_FC
	default N
	---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
	default N
	---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_PCIDIO
	tristate "MeasurementComputing PCI-DIO series support"
	select COMEDI_8255
	default N
	---help---
	  Enable support for ComputerBoards/MeasurementComputing PCI-DIO series
	  PCI-DIO24, PCI-DIO24H and PCI-DIO48H

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

config COMEDI_CB_PCIMDAS
	tristate "MeasurementComputing PCIM-DAS1602/16 support"
	select COMEDI_8255
	default N
	---help---
	  Enable support for ComputerBoards/MeasurementComputing PCI Migration
	  series PCIM-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
	default N
	---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"
	default N
	---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"
	default N
	---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"
	depends on COMEDI_MITE
	default N
	---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"
	depends on COMEDI_MITE
	default N
	---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 COMEDI_NI_TIO && COMEDI_NI_COMMON
	default N
	---help---
	  Enable support for National Instruments PCI-6601 (ni_660x), PCI-6602,
	  PXI-6602 and PXI-6608.

	  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"
	depends on COMEDI_MITE
	default N
	---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_PCIDIO
	tristate "NI PCI-DIO32HS, PCI-DIO96, PCI-6533, PCI-6503 support"
	depends on COMEDI_MITE
	select COMEDI_8255
	default N
	---help---
	  Enable support for National Instruments PCI-DIO-32HS, PXI-6533,
	  PCI-DIO-96, PCI-DIO-96B, PXI-6508, PCI-6503, PCI-6503B, PCI-6503X,
	  PXI-6503, PCI-6533 and PCI-6534
	  The DIO-96 appears as four 8255 subdevices. See the 8255
	  driver notes for details.

	  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 COMEDI_NI_TIO && COMEDI_NI_COMMON
	select COMEDI_8255
	select COMEDI_FC
	default N
	---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"
	select COMEDI_8255
	default N
	---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_S526
	tristate "Sensoray s526 support"
	default N
	---help---
	  Enable support for Sensoray s526

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

config COMEDI_S626
	tristate "Sensoray 626 support"
	select COMEDI_FC
	default N
	---help---
	  Enable support for Sensoray 626

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

config COMEDI_SSV_DNP
	tristate "SSV Embedded Systems DIL/Net-PC support"
	default N
	---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_PCI_DRIVERS

menuconfig COMEDI_PCMCIA_DRIVERS
	tristate "Comedi PCMCIA drivers"
	depends on COMEDI && (PCMCIA || PCCARD)
	default N
	---help---
	  Enable comedi PCMCIA and PCCARD 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 PCMCIA comedi drivers.

if COMEDI_PCMCIA_DRIVERS && PCMCIA

config COMEDI_CB_DAS16_CS
	tristate "CB DAS16 series PCMCIA support"
	default N
	---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
	default N
	---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"
	depends on COMEDI_NI_COMMON
	default N
	---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"
	depends on COMEDI_NI_COMMON
	select COMEDI_8255
	default N
	---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"
	depends on COMEDI_NI_LABPC
	default N
	---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"
	depends on COMEDI_NI_TIO && COMEDI_NI_COMMON
	select COMEDI_8255
	select COMEDI_FC
	default N
	---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"
	default N
	---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 COMEDI && USB
	default N
	---help---
	  Enable comedi USB 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 USB comedi drivers.

if COMEDI_USB_DRIVERS && USB

config COMEDI_DT9812
	tristate "DataTranslation DT9812 USB module support"
	default N
	---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_USBDUX
	tristate "ITL USBDUX support"
	default N
	---help---
	  Enable support for the University of Stirling USB DAQ and INCITE
	  Technology Limited driver

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

config COMEDI_USBDUXFAST
	tristate "ITL USB-DUXfast support"
	select COMEDI_FC
	default N
	---help---
	  Enable support for the University of Stirling USB-DUXfast and INCITE
	  Technology Limited driver

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

config COMEDI_VMK80XX
	tristate "Velleman VM110/VM140 USB Board support"
	default N
	---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

menuconfig COMEDI_NI_COMMON
	tristate "Comedi National Instruments card support"
	depends on COMEDI
	default N
	---help---
	  Enable comedi support for National Instruments cards.
	  Modules in this section are used by many comedi NI drivers.

	  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 National Instruments cards.

if COMEDI_NI_COMMON

config COMEDI_MITE
	tristate "NI Mite PCI interface chip support"
	depends on PCI
	default N
	---help---
	  Enable support for National Instruments Mite PCI interface chip

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

config COMEDI_NI_TIO
	tristate "NI general purpose counter support"
	depends on COMEDI_MITE
	default N
	---help---
	  Enable support for National Instruments general purpose counters.
	  This module is not used directly by end-users. Rather, it
	  is used by other drivers (for example ni_660x and ni_pcimio)
	  to provide support for NI's general purpose counters.

	  To compile this driver as a modules, choose M here: two modules will
	  be build: ni_tio and ni_tiocmd.

config COMEDI_NI_LABPC
	tristate "NI Lab-PC and compatibles ISA and PCI support"
	depends on COMEDI_MITE
	select COMEDI_8255
	select COMEDI_FC
	default N
	---help---
	  Enable support for National Instruments Lab-PC and compatibles
	  Lab-PC-1200, Lab-PC-1200AI, Lab-PC+ and PCI-1200.
	  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.

endif # COMEDI_NI_COMMON

config COMEDI_8255
	tristate "Generic 8255 support"
	depends on COMEDI
	default N
	---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 8255 boards do NOT work with this driver, and
	  need a separate driver as a wrapper.

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

config COMEDI_DAS08
	tristate "DAS-08 compatible support"
	depends on COMEDI
	select COMEDI_8255
	default N
	---help---
	  Enable support for DAS08 and compatible ISA, PC/104 and PCI cards.

	  Note that PCMCIA DAS08 cards are not directly supported by this
	  driver, and need a separate driver as a wrapper.

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

config COMEDI_FC
	tristate "Comedi shared functions for low-level driver support"
	depends on COMEDI
	default N
	---help---
	  Enable support for shared functions for low-level drivers.
	  This module is not used directly by end-users. Rather, it
	  is used by many other comedi drivers.

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