xref: /openbmc/linux/drivers/mmc/host/Kconfig (revision df2634f43f5106947f3735a0b61a6527a4b278cd)
1#
2# MMC/SD host controller drivers
3#
4
5comment "MMC/SD/SDIO Host Controller Drivers"
6
7config MMC_ARMMMCI
8	tristate "ARM AMBA Multimedia Card Interface support"
9	depends on ARM_AMBA
10	help
11	  This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
12	  Interface (PL180 and PL181) support.  If you have an ARM(R)
13	  platform with a Multimedia Card slot, say Y or M here.
14
15	  If unsure, say N.
16
17config MMC_PXA
18	tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
19	depends on ARCH_PXA
20	help
21	  This selects the Intel(R) PXA(R) Multimedia card Interface.
22	  If you have a PXA(R) platform with a Multimedia Card slot,
23	  say Y or M here.
24
25	  If unsure, say N.
26
27config MMC_SDHCI
28	tristate "Secure Digital Host Controller Interface support"
29	depends on HAS_DMA
30	help
31	  This selects the generic Secure Digital Host Controller Interface.
32	  It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
33	  and Toshiba(R). Most controllers found in laptops are of this type.
34
35	  If you have a controller with this interface, say Y or M here. You
36	  also need to enable an appropriate bus interface.
37
38	  If unsure, say N.
39
40config MMC_SDHCI_IO_ACCESSORS
41	bool
42	depends on MMC_SDHCI
43	help
44	  This is silent Kconfig symbol that is selected by the drivers that
45	  need to overwrite SDHCI IO memory accessors.
46
47config MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
48	bool
49	select MMC_SDHCI_IO_ACCESSORS
50	help
51	  This option is selected by drivers running on big endian hosts
52	  and performing I/O to a SDHCI controller through a bus that
53	  implements a hardware byte swapper using a 32-bit datum.
54	  This endian mapping mode is called "data invariance" and
55	  has the effect of scrambling the addresses and formats of data
56	  accessed in sizes other than the datum size.
57
58	  This is the case for the Freescale eSDHC and Nintendo Wii SDHCI.
59
60config MMC_SDHCI_PCI
61	tristate "SDHCI support on PCI bus"
62	depends on MMC_SDHCI && PCI
63	help
64	  This selects the PCI Secure Digital Host Controller Interface.
65	  Most controllers found today are PCI devices.
66
67	  If you have a controller with this interface, say Y or M here.
68
69	  If unsure, say N.
70
71config MMC_RICOH_MMC
72	bool "Ricoh MMC Controller Disabler  (EXPERIMENTAL)"
73	depends on MMC_SDHCI_PCI
74	help
75	  This adds a pci quirk to disable Ricoh MMC Controller. This
76	  proprietary controller is unnecessary because the SDHCI driver
77	  supports MMC cards on the SD controller, but if it is not
78	  disabled, it will steal the MMC cards away - rendering them
79	  useless. It is safe to select this even if you don't
80	  have a Ricoh based card reader.
81
82	  If unsure, say Y.
83
84config MMC_SDHCI_OF
85	tristate "SDHCI support on OpenFirmware platforms"
86	depends on MMC_SDHCI && OF
87	help
88	  This selects the OF support for Secure Digital Host Controller
89	  Interfaces.
90
91	  If unsure, say N.
92
93config MMC_SDHCI_OF_ESDHC
94	bool "SDHCI OF support for the Freescale eSDHC controller"
95	depends on MMC_SDHCI_OF
96	depends on PPC_OF
97	select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
98	help
99	  This selects the Freescale eSDHC controller support.
100
101	  If unsure, say N.
102
103config MMC_SDHCI_OF_HLWD
104	bool "SDHCI OF support for the Nintendo Wii SDHCI controllers"
105	depends on MMC_SDHCI_OF
106	depends on PPC_OF
107	select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
108	help
109	  This selects the Secure Digital Host Controller Interface (SDHCI)
110	  found in the "Hollywood" chipset of the Nintendo Wii video game
111	  console.
112
113	  If unsure, say N.
114
115config MMC_SDHCI_PLTFM
116	tristate "SDHCI support on the platform specific bus"
117	depends on MMC_SDHCI
118	help
119	  This selects the platform specific bus support for Secure Digital Host
120	  Controller Interface.
121
122	  If you have a controller with this interface, say Y or M here.
123
124	  If unsure, say N.
125
126config MMC_SDHCI_CNS3XXX
127	bool "SDHCI support on the Cavium Networks CNS3xxx SoC"
128	depends on ARCH_CNS3XXX
129	depends on MMC_SDHCI_PLTFM
130	help
131	  This selects the SDHCI support for CNS3xxx System-on-Chip devices.
132
133	  If unsure, say N.
134
135config MMC_SDHCI_ESDHC_IMX
136	bool "SDHCI platform support for the Freescale eSDHC i.MX controller"
137	depends on MMC_SDHCI_PLTFM && (ARCH_MX25 || ARCH_MX35 || ARCH_MX5)
138	select MMC_SDHCI_IO_ACCESSORS
139	help
140	  This selects the Freescale eSDHC controller support on the platform
141	  bus, found on platforms like mx35/51.
142
143	  If unsure, say N.
144
145config MMC_SDHCI_DOVE
146	bool "SDHCI support on Marvell's Dove SoC"
147	depends on ARCH_DOVE
148	depends on MMC_SDHCI_PLTFM
149	select MMC_SDHCI_IO_ACCESSORS
150	help
151	  This selects the Secure Digital Host Controller Interface in
152	  Marvell's Dove SoC.
153
154	  If unsure, say N.
155
156config MMC_SDHCI_TEGRA
157	tristate "SDHCI platform support for the Tegra SD/MMC Controller"
158	depends on MMC_SDHCI_PLTFM && ARCH_TEGRA
159	select MMC_SDHCI_IO_ACCESSORS
160	help
161	  This selects the Tegra SD/MMC controller. If you have a Tegra
162	  platform with SD or MMC devices, say Y or M here.
163
164	  If unsure, say N.
165
166config MMC_SDHCI_S3C
167	tristate "SDHCI support on Samsung S3C SoC"
168	depends on MMC_SDHCI && PLAT_SAMSUNG
169	help
170	  This selects the Secure Digital Host Controller Interface (SDHCI)
171	  often referrered to as the HSMMC block in some of the Samsung S3C
172	  range of SoC.
173
174	  Note, due to the problems with DMA, the DMA support is only
175	  available with CONFIG_EXPERIMENTAL is selected.
176
177	  If you have a controller with this interface, say Y or M here.
178
179	  If unsure, say N.
180
181config MMC_SDHCI_PXA
182	tristate "Marvell PXA168/PXA910/MMP2 SD Host Controller support"
183	depends on ARCH_PXA || ARCH_MMP
184	select MMC_SDHCI
185	select MMC_SDHCI_IO_ACCESSORS
186	help
187	  This selects the Marvell(R) PXA168/PXA910/MMP2 SD Host Controller.
188	  If you have a PXA168/PXA910/MMP2 platform with SD Host Controller
189	  and a card slot, say Y or M here.
190
191	  If unsure, say N.
192
193config MMC_SDHCI_SPEAR
194	tristate "SDHCI support on ST SPEAr platform"
195	depends on MMC_SDHCI && PLAT_SPEAR
196	help
197	  This selects the Secure Digital Host Controller Interface (SDHCI)
198	  often referrered to as the HSMMC block in some of the ST SPEAR range
199	  of SoC
200
201	  If you have a controller with this interface, say Y or M here.
202
203	  If unsure, say N.
204
205config MMC_SDHCI_S3C_DMA
206	bool "DMA support on S3C SDHCI"
207	depends on MMC_SDHCI_S3C && EXPERIMENTAL
208	help
209	  Enable DMA support on the Samsung S3C SDHCI glue. The DMA
210	  has proved to be problematic if the controller encounters
211	  certain errors, and thus should be treated with care.
212
213	  YMMV.
214
215config MMC_OMAP
216	tristate "TI OMAP Multimedia Card Interface support"
217	depends on ARCH_OMAP
218	select TPS65010 if MACH_OMAP_H2
219	help
220	  This selects the TI OMAP Multimedia card Interface.
221	  If you have an OMAP board with a Multimedia Card slot,
222	  say Y or M here.
223
224	  If unsure, say N.
225
226config MMC_OMAP_HS
227	tristate "TI OMAP High Speed Multimedia Card Interface support"
228	depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
229	help
230	  This selects the TI OMAP High Speed Multimedia card Interface.
231	  If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
232	  Multimedia Card slot, say Y or M here.
233
234	  If unsure, say N.
235
236config MMC_WBSD
237	tristate "Winbond W83L51xD SD/MMC Card Interface support"
238	depends on ISA_DMA_API
239	help
240	  This selects the Winbond(R) W83L51xD Secure digital and
241          Multimedia card Interface.
242	  If you have a machine with a integrated W83L518D or W83L519D
243	  SD/MMC card reader, say Y or M here.
244
245	  If unsure, say N.
246
247config MMC_AU1X
248	tristate "Alchemy AU1XX0 MMC Card Interface support"
249	depends on SOC_AU1200
250	help
251	  This selects the AMD Alchemy(R) Multimedia card interface.
252	  If you have a Alchemy platform with a MMC slot, say Y or M here.
253
254	  If unsure, say N.
255
256choice
257	prompt "Atmel SD/MMC Driver"
258	depends on AVR32 || ARCH_AT91
259	default MMC_ATMELMCI if AVR32
260	help
261	  Choose which driver to use for the Atmel MCI Silicon
262
263config MMC_AT91
264	tristate "AT91 SD/MMC Card Interface support"
265	depends on ARCH_AT91
266	help
267	  This selects the AT91 MCI controller.
268
269	  If unsure, say N.
270
271config MMC_ATMELMCI
272	tristate "Atmel Multimedia Card Interface support"
273	depends on AVR32 || ARCH_AT91
274	help
275	  This selects the Atmel Multimedia Card Interface driver. If
276	  you have an AT32 (AVR32) or AT91 platform with a Multimedia
277	  Card slot, say Y or M here.
278
279	  If unsure, say N.
280
281endchoice
282
283config MMC_ATMELMCI_DMA
284	bool "Atmel MCI DMA support (EXPERIMENTAL)"
285	depends on MMC_ATMELMCI && (AVR32 || ARCH_AT91SAM9G45) && DMA_ENGINE && EXPERIMENTAL
286	help
287	  Say Y here to have the Atmel MCI driver use a DMA engine to
288	  do data transfers and thus increase the throughput and
289	  reduce the CPU utilization. Note that this is highly
290	  experimental and may cause the driver to lock up.
291
292	  If unsure, say N.
293
294config MMC_IMX
295	tristate "Motorola i.MX Multimedia Card Interface support"
296	depends on ARCH_MX1
297	help
298	  This selects the Motorola i.MX Multimedia card Interface.
299	  If you have a i.MX platform with a Multimedia Card slot,
300	  say Y or M here.
301
302	  If unsure, say N.
303
304config MMC_MSM
305	tristate "Qualcomm SDCC Controller Support"
306	depends on MMC && ARCH_MSM
307	help
308	  This provides support for the SD/MMC cell found in the
309	  MSM and QSD SOCs from Qualcomm. The controller also has
310	  support for SDIO devices.
311
312config MMC_MXC
313	tristate "Freescale i.MX2/3 Multimedia Card Interface support"
314	depends on ARCH_MXC
315	help
316	  This selects the Freescale i.MX2/3 Multimedia card Interface.
317	  If you have a i.MX platform with a Multimedia Card slot,
318	  say Y or M here.
319
320	  If unsure, say N.
321
322config MMC_TIFM_SD
323	tristate "TI Flash Media MMC/SD Interface support  (EXPERIMENTAL)"
324	depends on EXPERIMENTAL && PCI
325	select TIFM_CORE
326	help
327	  Say Y here if you want to be able to access MMC/SD cards with
328	  the Texas Instruments(R) Flash Media card reader, found in many
329	  laptops.
330	  This option 'selects' (turns on, enables) 'TIFM_CORE', but you
331	  probably also need appropriate card reader host adapter, such as
332	  'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
333	  (TIFM_7XX1)'.
334
335          To compile this driver as a module, choose M here: the
336	  module will be called tifm_sd.
337
338config MMC_MVSDIO
339	tristate "Marvell MMC/SD/SDIO host driver"
340	depends on PLAT_ORION
341	---help---
342	  This selects the Marvell SDIO host driver.
343	  SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
344	  SoC controllers.
345
346	  To compile this driver as a module, choose M here: the
347	  module will be called mvsdio.
348
349config MMC_DAVINCI
350        tristate "TI DAVINCI Multimedia Card Interface support"
351        depends on ARCH_DAVINCI
352        help
353          This selects the TI DAVINCI Multimedia card Interface.
354          If you have an DAVINCI board with a Multimedia Card slot,
355          say Y or M here.  If unsure, say N.
356
357config MMC_SPI
358	tristate "MMC/SD/SDIO over SPI"
359	depends on SPI_MASTER && !HIGHMEM && HAS_DMA
360	select CRC7
361	select CRC_ITU_T
362	help
363	  Some systems access MMC/SD/SDIO cards using a SPI controller
364	  instead of using a "native" MMC/SD/SDIO controller.  This has a
365	  disadvantage of being relatively high overhead, but a compensating
366	  advantage of working on many systems without dedicated MMC/SD/SDIO
367	  controllers.
368
369	  If unsure, or if your system has no SPI master driver, say N.
370
371config MMC_S3C
372	tristate "Samsung S3C SD/MMC Card Interface support"
373	depends on ARCH_S3C2410
374	help
375	  This selects a driver for the MCI interface found in
376          Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
377	  If you have a board based on one of those and a MMC/SD
378	  slot, say Y or M here.
379
380	  If unsure, say N.
381
382config MMC_S3C_HW_SDIO_IRQ
383       bool "Hardware support for SDIO IRQ"
384       depends on MMC_S3C
385       help
386         Enable the hardware support for SDIO interrupts instead of using
387	 the generic polling code.
388
389choice
390	prompt "Samsung S3C SD/MMC transfer code"
391	depends on MMC_S3C
392
393config MMC_S3C_PIO
394	bool "Use PIO transfers only"
395	help
396	  Use PIO to transfer data between memory and the hardware.
397
398	  PIO is slower than DMA as it requires CPU instructions to
399	  move the data. This has been the traditional default for
400	  the S3C MCI driver.
401
402config MMC_S3C_DMA
403	bool "Use DMA transfers only (EXPERIMENTAL)"
404	depends on EXPERIMENTAL
405	help
406	  Use DMA to transfer data between memory and the hardare.
407
408	  Currently, the DMA support in this driver seems to not be
409	  working properly and needs to be debugged before this
410	  option is useful.
411
412config MMC_S3C_PIODMA
413	bool "Support for both PIO and DMA (EXPERIMENTAL)"
414	help
415	  Compile both the PIO and DMA transfer routines into the
416	  driver and let the platform select at run-time which one
417	  is best.
418
419	  See notes for the DMA option.
420
421endchoice
422
423config MMC_SDRICOH_CS
424	tristate "MMC/SD driver for Ricoh Bay1Controllers (EXPERIMENTAL)"
425	depends on EXPERIMENTAL && PCI && PCMCIA
426	help
427	  Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
428	  card whenever you insert a MMC or SD card into the card slot.
429
430	  To compile this driver as a module, choose M here: the
431	  module will be called sdricoh_cs.
432
433config MMC_TMIO
434	tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
435	depends on MFD_TMIO || MFD_ASIC3 || MFD_SH_MOBILE_SDHI
436	help
437	  This provides support for the SD/MMC cell found in TC6393XB,
438	  T7L66XB and also HTC ASIC3
439
440config MMC_CB710
441	tristate "ENE CB710 MMC/SD Interface support"
442	depends on PCI
443	select MISC_DEVICES
444	select CB710_CORE
445	help
446	  This option enables support for MMC/SD part of ENE CB710/720 Flash
447	  memory card reader found in some laptops (ie. some versions of
448	  HP Compaq nx9500).
449
450	  This driver can also be built as a module. If so, the module
451	  will be called cb710-mmc.
452
453config MMC_VIA_SDMMC
454	tristate "VIA SD/MMC Card Reader Driver"
455	depends on PCI
456	help
457	  This selects the VIA SD/MMC Card Reader driver, say Y or M here.
458	  VIA provides one multi-functional card reader which integrated into
459	  some motherboards manufactured by VIA. This card reader supports
460	  SD/MMC/SDHC.
461	  If you have a controller with this interface, say Y or M here.
462
463	  If unsure, say N.
464
465config SDH_BFIN
466	tristate "Blackfin Secure Digital Host support"
467	depends on (BF54x && !BF544) || (BF51x && !BF512)
468	help
469	  If you say yes here you will get support for the Blackfin on-chip
470	  Secure Digital Host interface.  This includes support for MMC and
471	  SD cards.
472
473	  To compile this driver as a module, choose M here: the
474	  module will be called bfin_sdh.
475
476	  If unsure, say N.
477
478config SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND
479	bool "Blackfin EZkit Missing SDH_CMD Pull Up Resistor Workaround"
480	depends on SDH_BFIN
481	help
482	  If you say yes here SD-Cards may work on the EZkit.
483
484config MMC_DW
485	tristate "Synopsys DesignWare Memory Card Interface"
486	depends on ARM
487	help
488	  This selects support for the Synopsys DesignWare Mobile Storage IP
489	  block, this provides host support for SD and MMC interfaces, in both
490	  PIO and external DMA modes.
491
492config MMC_DW_IDMAC
493	bool "Internal DMAC interface"
494	depends on MMC_DW
495	help
496	  This selects support for the internal DMAC block within the Synopsys
497	  Designware Mobile Storage IP block. This disables the external DMA
498	  interface.
499
500config MMC_SH_MMCIF
501	tristate "SuperH Internal MMCIF support"
502	depends on MMC_BLOCK && (SUPERH || ARCH_SHMOBILE)
503	help
504	  This selects the MMC Host Interface controller (MMCIF).
505
506	  This driver supports MMCIF in sh7724/sh7757/sh7372.
507
508config MMC_JZ4740
509	tristate "JZ4740 SD/Multimedia Card Interface support"
510	depends on MACH_JZ4740
511	help
512	  This selects support for the SD/MMC controller on Ingenic JZ4740
513	  SoCs.
514	  If you have a board based on such a SoC and with a SD/MMC slot,
515	  say Y or M here.
516
517config MMC_USHC
518	tristate "USB SD Host Controller (USHC) support"
519	depends on USB
520	help
521	  This selects support for USB SD Host Controllers based on
522	  the Cypress Astoria chip with firmware compliant with CSR's
523	  USB SD Host Controller specification (CS-118793-SP).
524
525	  CSR boards with this device include: USB<>SDIO (M1985v2),
526	  and Ultrasira.
527
528	  Note: These controllers only support SDIO cards and do not
529	  support MMC or SD memory cards.
530