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