#
# PCMCIA character device configuration
#

menu "PCMCIA character devices"
	depends on PCMCIA!=n

config SYNCLINK_CS
	tristate "SyncLink PC Card support"
	depends on PCMCIA && TTY
	help
	  Enable support for the SyncLink PC Card serial adapter, running
	  asynchronous and HDLC communications up to 512Kbps. The port is
	  selectable for RS-232, V.35, RS-449, RS-530, and X.21

	  This driver may be built as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want).
	  The module will be called synclinkmp.  If you want to do that, say M
	  here.

config CARDMAN_4000
	tristate "Omnikey Cardman 4000 support"
	depends on PCMCIA
	select BITREVERSE
	help
	  Enable support for the Omnikey Cardman 4000 PCMCIA Smartcard
	  reader.

	  This kernel driver requires additional userspace support, either
	  by the vendor-provided PC/SC ifd_handler (http://www.omnikey.com/),
	  or via the cm4000 backend of OpenCT (http://www.opensc-project.org/opensc).

config CARDMAN_4040
	tristate "Omnikey CardMan 4040 support"
	depends on PCMCIA
	help
	  Enable support for the Omnikey CardMan 4040 PCMCIA Smartcard
	  reader.

	  This card is basically a USB CCID device connected to a FIFO
	  in I/O space.  To use the kernel driver, you will need either the
	  PC/SC ifdhandler provided from the Omnikey homepage
	  (http://www.omnikey.com/), or a current development version of OpenCT
	  (http://www.opensc-project.org/opensc).

config IPWIRELESS
	tristate "IPWireless 3G UMTS PCMCIA card support"
	depends on PCMCIA && NETDEVICES && TTY
	select PPP
	help
	  This is a driver for 3G UMTS PCMCIA card from IPWireless company. In
	  some countries (for example Czech Republic, T-Mobile ISP) this card
	  is shipped for service called UMTS 4G.

endmenu

