#
# PCMCIA Network device configuration
#

menuconfig NET_PCMCIA
	bool "PCMCIA network device support"
	depends on PCMCIA
	---help---
	  Say Y if you would like to include support for any PCMCIA or CardBus
	  network adapters, then say Y to the driver for your particular card
	  below.  PCMCIA- or PC-cards are credit-card size devices often used
	  with laptops computers; CardBus is the newer and faster version of
	  PCMCIA.

	  To use your PC-cards, you will need supporting software from David
	  Hinds' pcmcia-cs package (see the file <file:Documentation/Changes>
	  for location).  You also want to check out the PCMCIA-HOWTO,
	  available from <http://www.tldp.org/docs.html#howto>.

	  If unsure, say N.

if NET_PCMCIA && PCMCIA

config PCMCIA_FMVJ18X
	tristate "Fujitsu FMV-J18x PCMCIA support"
	select CRC32
	help
	  Say Y here if you intend to attach a Fujitsu FMV-J18x or compatible
	  PCMCIA (PC-card) Ethernet card to your computer.

	  To compile this driver as a module, choose M here: the module will be
	  called fmvj18x_cs.  If unsure, say N.

config PCMCIA_SMC91C92
	tristate "SMC 91Cxx PCMCIA support"
	select CRC32
	select MII
	help
	  Say Y here if you intend to attach an SMC 91Cxx compatible PCMCIA
	  (PC-card) Ethernet or Fast Ethernet card to your computer.

	  To compile this driver as a module, choose M here: the module will be
	  called smc91c92_cs.  If unsure, say N.

config PCMCIA_XIRC2PS
	tristate "Xircom 16-bit PCMCIA support"
	help
	  Say Y here if you intend to attach a Xircom 16-bit PCMCIA (PC-card)
	  Ethernet or Fast Ethernet card to your computer.

	  To compile this driver as a module, choose M here: the module will be
	  called xirc2ps_cs.  If unsure, say N.

config ARCNET_COM20020_CS
	tristate "COM20020 ARCnet PCMCIA support"
	depends on ARCNET_COM20020
	help
	  Say Y here if you intend to attach this type of ARCnet PCMCIA card
	  to your computer.

	  To compile this driver as a module, choose M here: the module will be
	  called com20020_cs.  If unsure, say N.

config PCMCIA_IBMTR
	tristate "IBM PCMCIA tokenring adapter support"
	depends on IBMTR!=y && TR
	help
	  Say Y here if you intend to attach this type of Token Ring PCMCIA
	  card to your computer. You then also need to say Y to "Token Ring
	  driver support".

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

endif # NET_PCMCIA
