menuconfig UIO
	tristate "Userspace I/O drivers"
	depends on !S390
	default n
	help
	  Enable this to allow the userspace driver core code to be
	  built.  This code allows userspace programs easy access to
	  kernel interrupts and memory locations, allowing some drivers
	  to be written in userspace.  Note that a small kernel driver
	  is also required for interrupt handling to work properly.

	  If you don't know what to do here, say N.

if UIO

config UIO_CIF
	tristate "generic Hilscher CIF Card driver"
	depends on PCI
	default n
	help
	  Driver for Hilscher CIF DeviceNet and Profibus cards.  This
	  driver requires a userspace component that handles all of the
	  heavy lifting and can be found at:
	  	http://www.osadl.org/projects/downloads/UIO/user/cif-*

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

config UIO_PDRV
	tristate "Userspace I/O platform driver"
	help
	  Generic platform driver for Userspace I/O devices.

	  If you don't know what to do here, say N.

config UIO_PDRV_GENIRQ
	tristate "Userspace I/O platform driver with generic IRQ handling"
	help
	  Platform driver for Userspace I/O devices, including generic
	  interrupt handling code. Shared interrupts are not supported.

	  This kernel driver requires that the matching userspace driver
	  handles interrupts in a special way. Userspace is responsible
	  for acknowledging the hardware device if needed, and re-enabling
	  interrupts in the interrupt controller using the write() syscall.

	  If you don't know what to do here, say N.

config UIO_SMX
	tristate "SMX cryptengine UIO interface"
	default n
	help
	  Userspace IO interface to the Cryptography engine found on the
	  Nias Digital SMX boards.  These will be available from Q4 2008
	  from http://www.niasdigital.com.  The userspace part of this
	  driver will be released under the GPL at the same time as the
	  hardware and will be able to be downloaded from the same site.

	  If you compile this as a module, it will be called uio_smx.

config UIO_SERCOS3
	tristate "Automata Sercos III PCI card driver"
	default n
	help
	  Userspace I/O interface for the Sercos III PCI card from
	  Automata GmbH. The userspace part of this driver will be
	  available for download from the Automata GmbH web site.

	  Automata GmbH:        http://www.automataweb.com
	  Sercos III interface: http://www.sercos.com

	  If you compile this as a module, it will be called uio_sercos3.

endif
