#
# Meilhaus configuration
#

menuconfig MEILHAUS
	tristate "Meilhaus support"
	depends on m
	---help---
	  If you have a Meilhaus card, say Y (or M) here.

	  You need both this driver, and the driver for the particular
	  data collection card.

	  To compile this driver as a module, choose M here. The module will
	  be called memain.

if MEILHAUS

config ME0600
	tristate "Meilhaus ME-600 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-600 family of boards
	  that do data collection and multipurpose I/O.

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

config ME0900
	tristate "Meilhaus ME-900 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-900 family of boards
	  that do data collection and multipurpose I/O.

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

config ME1000
	tristate "Meilhaus ME-1000 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-1000 family of boards
	  that do data collection and multipurpose I/O.

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

config ME1400
	tristate "Meilhaus ME-1400 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-1400 family of boards
	  that do data collection and multipurpose I/O.

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

config ME1600
	tristate "Meilhaus ME-1600 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-1600 family of boards
	  that do data collection and multipurpose I/O.

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

config ME4600
	tristate "Meilhaus ME-4600 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-4600 family of boards
	  that do data collection and multipurpose I/O.

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

config ME6000
	tristate "Meilhaus ME-6000 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-6000 family of boards
	  that do data collection and multipurpose I/O.

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

config ME8100
	tristate "Meilhaus ME-8100 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-8100 family of boards
	  that do data collection and multipurpose I/O.

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

config ME8200
	tristate "Meilhaus ME-8200 support"
	default n
	depends on PCI && m
	help
	  This driver supports the Meilhaus ME-8200 family of boards
	  that do data collection and multipurpose I/O.

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

config MEDUMMY
	tristate "Meilhaus dummy driver"
	default n
	depends on PCI && m
	help
	  This provides a dummy driver for the Meilhaus driver package

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

endif # MEILHAUS
