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