162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# PCCARD (PCMCIA/CardBus) bus subsystem configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig PCCARD
762306a36Sopenharmony_ci	tristate "PCCard (PCMCIA/CardBus) support"
862306a36Sopenharmony_ci	help
962306a36Sopenharmony_ci	  Say Y here if you want to attach PCMCIA- or PC-cards to your Linux
1062306a36Sopenharmony_ci	  computer.  These are credit-card size devices such as network cards,
1162306a36Sopenharmony_ci	  modems or hard drives often used with laptops computers.  There are
1262306a36Sopenharmony_ci	  actually two varieties of these cards: 16 bit PCMCIA and 32 bit
1362306a36Sopenharmony_ci	  CardBus cards.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	  To compile this driver as modules, choose M here: the
1662306a36Sopenharmony_ci	  module will be called pcmcia_core.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciif PCCARD
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciconfig PCMCIA
2162306a36Sopenharmony_ci	tristate "16-bit PCMCIA support"
2262306a36Sopenharmony_ci	depends on HAS_IOMEM
2362306a36Sopenharmony_ci	select CRC32
2462306a36Sopenharmony_ci	default y
2562306a36Sopenharmony_ci	help
2662306a36Sopenharmony_ci	   This option enables support for 16-bit PCMCIA cards. Most older
2762306a36Sopenharmony_ci	   PC-cards are such 16-bit PCMCIA cards, so unless you know you're
2862306a36Sopenharmony_ci	   only using 32-bit CardBus cards, say Y or M here.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	   To use 16-bit PCMCIA cards, you will need supporting software in
3162306a36Sopenharmony_ci	   most cases. (see the file <file:Documentation/Changes> for
3262306a36Sopenharmony_ci	   location and details).
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	   To compile this driver as modules, choose M here: the
3562306a36Sopenharmony_ci	   module will be called pcmcia.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci	   If unsure, say Y.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciconfig PCMCIA_LOAD_CIS
4062306a36Sopenharmony_ci	bool "Load CIS updates from userspace"
4162306a36Sopenharmony_ci	depends on PCMCIA
4262306a36Sopenharmony_ci	select FW_LOADER
4362306a36Sopenharmony_ci	default y
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  Some PCMCIA cards require an updated Card Information Structure (CIS)
4662306a36Sopenharmony_ci	  to be loaded from userspace to work correctly. If you say Y here,
4762306a36Sopenharmony_ci	  and your userspace is arranged correctly, this will be loaded
4862306a36Sopenharmony_ci	  automatically using the in-kernel firmware loader and the hotplug
4962306a36Sopenharmony_ci	  subsystem, instead of relying on cardmgr from pcmcia-cs to do so.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	  If unsure, say Y.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciconfig CARDBUS
5462306a36Sopenharmony_ci	bool "32-bit CardBus support"
5562306a36Sopenharmony_ci	depends on PCI
5662306a36Sopenharmony_ci	default y
5762306a36Sopenharmony_ci	help
5862306a36Sopenharmony_ci	  CardBus is a bus mastering architecture for PC-cards, which allows
5962306a36Sopenharmony_ci	  for 32 bit PC-cards (the original PCMCIA standard specifies only
6062306a36Sopenharmony_ci	  a 16 bit wide bus). Many newer PC-cards are actually CardBus cards.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci	  To use 32 bit PC-cards, you also need a CardBus compatible host
6362306a36Sopenharmony_ci	  bridge. Virtually all modern PCMCIA bridges do this, and most of
6462306a36Sopenharmony_ci	  them are "yenta-compatible", so say Y or M there, too.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	  If unsure, say Y.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciconfig PCMCIA_MAX1600
6962306a36Sopenharmony_ci	tristate
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cicomment "PC-card bridges"
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciconfig YENTA
7462306a36Sopenharmony_ci	tristate "CardBus yenta-compatible bridge support"
7562306a36Sopenharmony_ci	depends on PCI
7662306a36Sopenharmony_ci	select CARDBUS if !EXPERT
7762306a36Sopenharmony_ci	select PCCARD_NONSTATIC if PCMCIA != n
7862306a36Sopenharmony_ci	help
7962306a36Sopenharmony_ci	  This option enables support for CardBus host bridges.  Virtually
8062306a36Sopenharmony_ci	  all modern PCMCIA bridges are CardBus compatible.  A "bridge" is
8162306a36Sopenharmony_ci	  the hardware inside your computer that PCMCIA cards are plugged
8262306a36Sopenharmony_ci	  into.
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci	  To compile this driver as modules, choose M here: the
8562306a36Sopenharmony_ci	  module will be called yenta_socket.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	  If unsure, say Y.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciconfig YENTA_O2
9062306a36Sopenharmony_ci	default y
9162306a36Sopenharmony_ci	bool "Special initialization for O2Micro bridges" if EXPERT
9262306a36Sopenharmony_ci	depends on YENTA
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciconfig YENTA_RICOH
9562306a36Sopenharmony_ci	default y
9662306a36Sopenharmony_ci	bool "Special initialization for Ricoh bridges" if EXPERT
9762306a36Sopenharmony_ci	depends on YENTA
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciconfig YENTA_TI
10062306a36Sopenharmony_ci	default y
10162306a36Sopenharmony_ci	bool "Special initialization for TI and EnE bridges" if EXPERT
10262306a36Sopenharmony_ci	depends on YENTA
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciconfig YENTA_ENE_TUNE
10562306a36Sopenharmony_ci	default y
10662306a36Sopenharmony_ci	bool "Auto-tune EnE bridges for CB cards" if EXPERT
10762306a36Sopenharmony_ci	depends on YENTA_TI && CARDBUS
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciconfig YENTA_TOSHIBA
11062306a36Sopenharmony_ci	default y
11162306a36Sopenharmony_ci	bool "Special initialization for Toshiba ToPIC bridges" if EXPERT
11262306a36Sopenharmony_ci	depends on YENTA
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ciconfig PD6729
11562306a36Sopenharmony_ci	tristate "Cirrus PD6729 compatible bridge support"
11662306a36Sopenharmony_ci	depends on PCMCIA && PCI && HAS_IOPORT
11762306a36Sopenharmony_ci	select PCCARD_NONSTATIC
11862306a36Sopenharmony_ci	help
11962306a36Sopenharmony_ci	  This provides support for the Cirrus PD6729 PCI-to-PCMCIA bridge
12062306a36Sopenharmony_ci	  device, found in some older laptops and PCMCIA card readers.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig I82092
12362306a36Sopenharmony_ci	tristate "i82092 compatible bridge support"
12462306a36Sopenharmony_ci	depends on PCMCIA && PCI && HAS_IOPORT
12562306a36Sopenharmony_ci	select PCCARD_NONSTATIC
12662306a36Sopenharmony_ci	help
12762306a36Sopenharmony_ci	  This provides support for the Intel I82092AA PCI-to-PCMCIA bridge device,
12862306a36Sopenharmony_ci	  found in some older laptops and more commonly in evaluation boards for the
12962306a36Sopenharmony_ci	  chip.
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ciconfig I82365
13262306a36Sopenharmony_ci	tristate "i82365 compatible bridge support"
13362306a36Sopenharmony_ci	depends on PCMCIA && ISA
13462306a36Sopenharmony_ci	select PCCARD_NONSTATIC
13562306a36Sopenharmony_ci	help
13662306a36Sopenharmony_ci	  Say Y here to include support for ISA-bus PCMCIA host bridges that
13762306a36Sopenharmony_ci	  are register compatible with the Intel i82365.  These are found on
13862306a36Sopenharmony_ci	  older laptops and ISA-bus card readers for desktop systems.  A
13962306a36Sopenharmony_ci	  "bridge" is the hardware inside your computer that PCMCIA cards are
14062306a36Sopenharmony_ci	  plugged into. If unsure, say N.
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ciconfig TCIC
14362306a36Sopenharmony_ci	tristate "Databook TCIC host bridge support"
14462306a36Sopenharmony_ci	depends on PCMCIA && ISA
14562306a36Sopenharmony_ci	select PCCARD_NONSTATIC
14662306a36Sopenharmony_ci	help
14762306a36Sopenharmony_ci	  Say Y here to include support for the Databook TCIC family of PCMCIA
14862306a36Sopenharmony_ci	  host bridges. These are only found on a handful of old systems.
14962306a36Sopenharmony_ci	  "Bridge" is the name used for the hardware inside your computer that
15062306a36Sopenharmony_ci	  PCMCIA cards are plugged into. If unsure, say N.
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ciconfig PCMCIA_ALCHEMY_DEVBOARD
15362306a36Sopenharmony_ci	tristate "Alchemy Db/Pb1xxx PCMCIA socket services"
15462306a36Sopenharmony_ci	depends on MIPS_DB1XXX && PCMCIA
15562306a36Sopenharmony_ci	help
15662306a36Sopenharmony_ci	  Enable this driver of you want PCMCIA support on your Alchemy
15762306a36Sopenharmony_ci	  Db1000, Db/Pb1100, Db/Pb1500, Db/Pb1550, Db/Pb1200, DB1300
15862306a36Sopenharmony_ci	  board.  NOT suitable for the PB1000!
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci	  This driver is also available as a module called db1xxx_ss.ko
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ciconfig PCMCIA_XXS1500
16362306a36Sopenharmony_ci	tristate "MyCable XXS1500 PCMCIA socket support"
16462306a36Sopenharmony_ci	depends on PCMCIA && MIPS_XXS1500
16562306a36Sopenharmony_ci	help
16662306a36Sopenharmony_ci	  Support for the PCMCIA/CF socket interface on MyCable XXS1500
16762306a36Sopenharmony_ci	  systems.
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci	  This driver is also available as a module called xxs1500_ss.ko
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ciconfig PCMCIA_BCM63XX
17262306a36Sopenharmony_ci	tristate "bcm63xx pcmcia support"
17362306a36Sopenharmony_ci	depends on BCM63XX && PCMCIA
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ciconfig PCMCIA_SOC_COMMON
17662306a36Sopenharmony_ci	tristate
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ciconfig PCMCIA_SA11XX_BASE
17962306a36Sopenharmony_ci	tristate
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ciconfig PCMCIA_SA1100
18262306a36Sopenharmony_ci	tristate "SA1100 support"
18362306a36Sopenharmony_ci	depends on ARM && ARCH_SA1100 && PCMCIA
18462306a36Sopenharmony_ci	select PCMCIA_SOC_COMMON
18562306a36Sopenharmony_ci	select PCMCIA_SA11XX_BASE
18662306a36Sopenharmony_ci	help
18762306a36Sopenharmony_ci	  Say Y here to include support for SA11x0-based PCMCIA or CF
18862306a36Sopenharmony_ci	  sockets, found on HP iPAQs, Yopy, and other StrongARM(R)/
18962306a36Sopenharmony_ci	  Xscale(R) embedded machines.
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci	  This driver is also available as a module called sa1100_cs.
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ciconfig PCMCIA_SA1111
19462306a36Sopenharmony_ci	tristate "SA1111 support"
19562306a36Sopenharmony_ci	depends on ARM && SA1111 && PCMCIA
19662306a36Sopenharmony_ci	select PCMCIA_SOC_COMMON
19762306a36Sopenharmony_ci	select PCMCIA_SA11XX_BASE
19862306a36Sopenharmony_ci	select PCMCIA_MAX1600 if ASSABET_NEPONSET
19962306a36Sopenharmony_ci	help
20062306a36Sopenharmony_ci	  Say Y  here to include support for SA1111-based PCMCIA or CF
20162306a36Sopenharmony_ci	  sockets, found on the Jornada 720, Graphicsmaster and other
20262306a36Sopenharmony_ci	  StrongARM(R)/Xscale(R) embedded machines.
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_ci	  This driver is also available as a module called sa1111_cs.
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ciconfig PCMCIA_PXA2XX
20762306a36Sopenharmony_ci	tristate "PXA2xx support"
20862306a36Sopenharmony_ci	depends on ARM && ARCH_PXA && PCMCIA && PXA_SHARPSL
20962306a36Sopenharmony_ci	select PCMCIA_SOC_COMMON
21062306a36Sopenharmony_ci	help
21162306a36Sopenharmony_ci	  Say Y here to include support for the PXA2xx PCMCIA controller
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ciconfig PCMCIA_DEBUG
21462306a36Sopenharmony_ci	bool "Enable debugging"
21562306a36Sopenharmony_ci	depends on (PCMCIA_SA1111 || PCMCIA_SA1100 || PCMCIA_PXA2XX)
21662306a36Sopenharmony_ci	help
21762306a36Sopenharmony_ci	  Say Y here to enable debugging for the SoC PCMCIA layer.
21862306a36Sopenharmony_ci	  You will need to choose the debugging level either via the
21962306a36Sopenharmony_ci	  kernel command line, or module options depending whether
22062306a36Sopenharmony_ci	  you build the drivers as modules.
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci	  The kernel command line options are:
22362306a36Sopenharmony_ci	    sa11xx_core.pc_debug=N
22462306a36Sopenharmony_ci	    pxa2xx_core.pc_debug=N
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ci	  The module option is called pc_debug=N
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ci	  In all the above examples, N is the debugging verbosity
22962306a36Sopenharmony_ci	  level.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ciconfig PCMCIA_PROBE
23262306a36Sopenharmony_ci	bool
23362306a36Sopenharmony_ci	default y if ISA && !ARCH_SA1100 && !PARISC
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ciconfig OMAP_CF
23662306a36Sopenharmony_ci	tristate "OMAP CompactFlash Controller"
23762306a36Sopenharmony_ci	depends on PCMCIA
23862306a36Sopenharmony_ci	depends on ARCH_OMAP16XX || (ARM && COMPILE_TEST)
23962306a36Sopenharmony_ci	help
24062306a36Sopenharmony_ci	  Say Y here to support the CompactFlash controller on OMAP.
24162306a36Sopenharmony_ci	  Note that this doesn't support "True IDE" mode.
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ciconfig ELECTRA_CF
24462306a36Sopenharmony_ci	tristate "Electra CompactFlash Controller"
24562306a36Sopenharmony_ci	depends on PCMCIA && PPC_PASEMI
24662306a36Sopenharmony_ci	help
24762306a36Sopenharmony_ci	  Say Y here to support the CompactFlash controller on the
24862306a36Sopenharmony_ci	  PA Semi Electra eval board.
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_ciconfig PCCARD_NONSTATIC
25162306a36Sopenharmony_ci	bool
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ciconfig PCCARD_IODYN
25462306a36Sopenharmony_ci	bool
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ciendif	# PCCARD
257