# SPDX-License-Identifier: GPL-2.0-only
#
# PCCARD (PCMCIA/CardBus) bus subsystem configuration
#

menuconfig PCCARD
	tristate "PCCard (PCMCIA/CardBus) support"
	help
	  Say Y here if you want to attach PCMCIA- or PC-cards to your Linux
	  computer.  These are credit-card size devices such as network cards,
	  modems or hard drives often used with laptops computers.  There are
	  actually two varieties of these cards: 16 bit PCMCIA and 32 bit
	  CardBus cards.

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

if PCCARD

config PCMCIA
	tristate "16-bit PCMCIA support"
	depends on HAS_IOMEM
	select CRC32
	default y
	help
	   This option enables support for 16-bit PCMCIA cards. Most older
	   PC-cards are such 16-bit PCMCIA cards, so unless you know you're
	   only using 32-bit CardBus cards, say Y or M here.

	   To use 16-bit PCMCIA cards, you will need supporting software in
	   most cases. (see the file <file:Documentation/Changes> for
	   location and details).

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

	   If unsure, say Y.

config PCMCIA_LOAD_CIS
	bool "Load CIS updates from userspace"
	depends on PCMCIA
	select FW_LOADER
	default y
	help
	  Some PCMCIA cards require an updated Card Information Structure (CIS)
	  to be loaded from userspace to work correctly. If you say Y here,
	  and your userspace is arranged correctly, this will be loaded
	  automatically using the in-kernel firmware loader and the hotplug
	  subsystem, instead of relying on cardmgr from pcmcia-cs to do so.

	  If unsure, say Y.

config CARDBUS
	bool "32-bit CardBus support"
	depends on PCI
	default y
	help
	  CardBus is a bus mastering architecture for PC-cards, which allows
	  for 32 bit PC-cards (the original PCMCIA standard specifies only
	  a 16 bit wide bus). Many newer PC-cards are actually CardBus cards.

	  To use 32 bit PC-cards, you also need a CardBus compatible host
	  bridge. Virtually all modern PCMCIA bridges do this, and most of
	  them are "yenta-compatible", so say Y or M there, too.

	  If unsure, say Y.

config PCMCIA_MAX1600
	tristate

comment "PC-card bridges"

config YENTA
	tristate "CardBus yenta-compatible bridge support"
	depends on PCI
	select CARDBUS if !EXPERT
	select PCCARD_NONSTATIC if PCMCIA != n
	help
	  This option enables support for CardBus host bridges.  Virtually
	  all modern PCMCIA bridges are CardBus compatible.  A "bridge" is
	  the hardware inside your computer that PCMCIA cards are plugged
	  into.

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

	  If unsure, say Y.

config YENTA_O2
	default y
	bool "Special initialization for O2Micro bridges" if EXPERT
	depends on YENTA

config YENTA_RICOH
	default y
	bool "Special initialization for Ricoh bridges" if EXPERT
	depends on YENTA

config YENTA_TI
	default y
	bool "Special initialization for TI and EnE bridges" if EXPERT
	depends on YENTA

config YENTA_ENE_TUNE
	default y
	bool "Auto-tune EnE bridges for CB cards" if EXPERT
	depends on YENTA_TI && CARDBUS

config YENTA_TOSHIBA
	default y
	bool "Special initialization for Toshiba ToPIC bridges" if EXPERT
	depends on YENTA

config PD6729
	tristate "Cirrus PD6729 compatible bridge support"
	depends on PCMCIA && PCI && HAS_IOPORT
	select PCCARD_NONSTATIC
	help
	  This provides support for the Cirrus PD6729 PCI-to-PCMCIA bridge
	  device, found in some older laptops and PCMCIA card readers.

config I82092
	tristate "i82092 compatible bridge support"
	depends on PCMCIA && PCI && HAS_IOPORT
	select PCCARD_NONSTATIC
	help
	  This provides support for the Intel I82092AA PCI-to-PCMCIA bridge device,
	  found in some older laptops and more commonly in evaluation boards for the
	  chip.

config I82365
	tristate "i82365 compatible bridge support"
	depends on PCMCIA && ISA
	select PCCARD_NONSTATIC
	help
	  Say Y here to include support for ISA-bus PCMCIA host bridges that
	  are register compatible with the Intel i82365.  These are found on
	  older laptops and ISA-bus card readers for desktop systems.  A
	  "bridge" is the hardware inside your computer that PCMCIA cards are
	  plugged into. If unsure, say N.

config TCIC
	tristate "Databook TCIC host bridge support"
	depends on PCMCIA && ISA
	select PCCARD_NONSTATIC
	help
	  Say Y here to include support for the Databook TCIC family of PCMCIA
	  host bridges. These are only found on a handful of old systems.
	  "Bridge" is the name used for the hardware inside your computer that
	  PCMCIA cards are plugged into. If unsure, say N.

config PCMCIA_ALCHEMY_DEVBOARD
	tristate "Alchemy Db/Pb1xxx PCMCIA socket services"
	depends on MIPS_DB1XXX && PCMCIA
	help
	  Enable this driver of you want PCMCIA support on your Alchemy
	  Db1000, Db/Pb1100, Db/Pb1500, Db/Pb1550, Db/Pb1200, DB1300
	  board.  NOT suitable for the PB1000!

	  This driver is also available as a module called db1xxx_ss.ko

config PCMCIA_XXS1500
	tristate "MyCable XXS1500 PCMCIA socket support"
	depends on PCMCIA && MIPS_XXS1500
	help
	  Support for the PCMCIA/CF socket interface on MyCable XXS1500
	  systems.

	  This driver is also available as a module called xxs1500_ss.ko

config PCMCIA_BCM63XX
	tristate "bcm63xx pcmcia support"
	depends on BCM63XX && PCMCIA

config PCMCIA_SOC_COMMON
	tristate

config PCMCIA_SA11XX_BASE
	tristate

config PCMCIA_SA1100
	tristate "SA1100 support"
	depends on ARM && ARCH_SA1100 && PCMCIA
	select PCMCIA_SOC_COMMON
	select PCMCIA_SA11XX_BASE
	help
	  Say Y here to include support for SA11x0-based PCMCIA or CF
	  sockets, found on HP iPAQs, Yopy, and other StrongARM(R)/
	  Xscale(R) embedded machines.

	  This driver is also available as a module called sa1100_cs.

config PCMCIA_SA1111
	tristate "SA1111 support"
	depends on ARM && SA1111 && PCMCIA
	select PCMCIA_SOC_COMMON
	select PCMCIA_SA11XX_BASE
	select PCMCIA_MAX1600 if ASSABET_NEPONSET
	help
	  Say Y  here to include support for SA1111-based PCMCIA or CF
	  sockets, found on the Jornada 720, Graphicsmaster and other
	  StrongARM(R)/Xscale(R) embedded machines.

	  This driver is also available as a module called sa1111_cs.

config PCMCIA_PXA2XX
	tristate "PXA2xx support"
	depends on ARM && ARCH_PXA && PCMCIA && PXA_SHARPSL
	select PCMCIA_SOC_COMMON
	help
	  Say Y here to include support for the PXA2xx PCMCIA controller

config PCMCIA_DEBUG
	bool "Enable debugging"
	depends on (PCMCIA_SA1111 || PCMCIA_SA1100 || PCMCIA_PXA2XX)
	help
	  Say Y here to enable debugging for the SoC PCMCIA layer.
	  You will need to choose the debugging level either via the
	  kernel command line, or module options depending whether
	  you build the drivers as modules.

	  The kernel command line options are:
	    sa11xx_core.pc_debug=N
	    pxa2xx_core.pc_debug=N

	  The module option is called pc_debug=N

	  In all the above examples, N is the debugging verbosity
	  level.

config PCMCIA_PROBE
	bool
	default y if ISA && !ARCH_SA1100 && !PARISC

config OMAP_CF
	tristate "OMAP CompactFlash Controller"
	depends on PCMCIA
	depends on ARCH_OMAP16XX || (ARM && COMPILE_TEST)
	help
	  Say Y here to support the CompactFlash controller on OMAP.
	  Note that this doesn't support "True IDE" mode.

config ELECTRA_CF
	tristate "Electra CompactFlash Controller"
	depends on PCMCIA && PPC_PASEMI
	help
	  Say Y here to support the CompactFlash controller on the
	  PA Semi Electra eval board.

config PCCARD_NONSTATIC
	bool

config PCCARD_IODYN
	bool

endif	# PCCARD