Merge tag 'mmc-updates-for-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel...
[~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_SDHCI_BCM2835
242         tristate "SDHCI platform support for the BCM2835 SD/MMC Controller"
243         depends on ARCH_BCM2835
244         depends on MMC_SDHCI_PLTFM
245         select MMC_SDHCI_IO_ACCESSORS
246         help
247           This selects the BCM2835 SD/MMC controller. If you have a BCM2835
248           platform with SD or MMC devices, say Y or M here.
249
250           If unsure, say N.
251
252 config MMC_OMAP
253         tristate "TI OMAP Multimedia Card Interface support"
254         depends on ARCH_OMAP
255         select TPS65010 if MACH_OMAP_H2
256         help
257           This selects the TI OMAP Multimedia card Interface.
258           If you have an OMAP board with a Multimedia Card slot,
259           say Y or M here.
260
261           If unsure, say N.
262
263 config MMC_OMAP_HS
264         tristate "TI OMAP High Speed Multimedia Card Interface support"
265         depends on SOC_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
266         help
267           This selects the TI OMAP High Speed Multimedia card Interface.
268           If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
269           Multimedia Card slot, say Y or M here.
270
271           If unsure, say N.
272
273 config MMC_WBSD
274         tristate "Winbond W83L51xD SD/MMC Card Interface support"
275         depends on ISA_DMA_API
276         help
277           This selects the Winbond(R) W83L51xD Secure digital and
278           Multimedia card Interface.
279           If you have a machine with a integrated W83L518D or W83L519D
280           SD/MMC card reader, say Y or M here.
281
282           If unsure, say N.
283
284 config MMC_AU1X
285         tristate "Alchemy AU1XX0 MMC Card Interface support"
286         depends on MIPS_ALCHEMY
287         help
288           This selects the AMD Alchemy(R) Multimedia card interface.
289           If you have a Alchemy platform with a MMC slot, say Y or M here.
290
291           If unsure, say N.
292
293 config MMC_ATMELMCI
294         tristate "Atmel SD/MMC Driver (Multimedia Card Interface)"
295         depends on AVR32 || ARCH_AT91
296         help
297           This selects the Atmel Multimedia Card Interface driver. If
298           you have an AT32 (AVR32) or AT91 platform with a Multimedia
299           Card slot, say Y or M here.
300
301           If unsure, say N.
302
303 config MMC_ATMELMCI_DMA
304         bool "Atmel MCI DMA support"
305         depends on MMC_ATMELMCI && (AVR32 || ARCH_AT91SAM9G45) && DMA_ENGINE
306         help
307           Say Y here to have the Atmel MCI driver use a DMA engine to
308           do data transfers and thus increase the throughput and
309           reduce the CPU utilization.
310
311           If unsure, say N.
312
313 config MMC_MSM
314         tristate "Qualcomm SDCC Controller Support"
315         depends on MMC && ARCH_MSM
316         help
317           This provides support for the SD/MMC cell found in the
318           MSM and QSD SOCs from Qualcomm. The controller also has
319           support for SDIO devices.
320
321 config MMC_MXC
322         tristate "Freescale i.MX21/27/31 Multimedia Card Interface support"
323         depends on ARCH_MXC
324         help
325           This selects the Freescale i.MX21, i.MX27 and i.MX31 Multimedia card
326           Interface. If you have a i.MX platform with a Multimedia Card slot,
327           say Y or M here.
328
329           If unsure, say N.
330
331 config MMC_MXS
332         tristate "Freescale MXS Multimedia Card Interface support"
333         depends on ARCH_MXS && MXS_DMA
334         help
335           This selects the Freescale SSP MMC controller found on MXS based
336           platforms like mx23/28.
337
338           If unsure, say N.
339
340 config MMC_TIFM_SD
341         tristate "TI Flash Media MMC/SD Interface support"
342         depends on PCI
343         select TIFM_CORE
344         help
345           Say Y here if you want to be able to access MMC/SD cards with
346           the Texas Instruments(R) Flash Media card reader, found in many
347           laptops.
348           This option 'selects' (turns on, enables) 'TIFM_CORE', but you
349           probably also need appropriate card reader host adapter, such as
350           'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
351           (TIFM_7XX1)'.
352
353           To compile this driver as a module, choose M here: the
354           module will be called tifm_sd.
355
356 config MMC_MVSDIO
357         tristate "Marvell MMC/SD/SDIO host driver"
358         depends on PLAT_ORION
359         ---help---
360           This selects the Marvell SDIO host driver.
361           SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
362           SoC controllers.
363
364           To compile this driver as a module, choose M here: the
365           module will be called mvsdio.
366
367 config MMC_DAVINCI
368         tristate "TI DAVINCI Multimedia Card Interface support"
369         depends on ARCH_DAVINCI
370         help
371           This selects the TI DAVINCI Multimedia card Interface.
372           If you have an DAVINCI board with a Multimedia Card slot,
373           say Y or M here.  If unsure, say N.
374
375 config MMC_GOLDFISH
376         tristate "goldfish qemu Multimedia Card Interface support"
377         depends on GOLDFISH
378         help
379           This selects the Goldfish Multimedia card Interface emulation
380           found on the Goldfish Android virtual device emulation.
381
382 config MMC_SPI
383         tristate "MMC/SD/SDIO over SPI"
384         depends on SPI_MASTER && !HIGHMEM && HAS_DMA
385         select CRC7
386         select CRC_ITU_T
387         help
388           Some systems access MMC/SD/SDIO cards using a SPI controller
389           instead of using a "native" MMC/SD/SDIO controller.  This has a
390           disadvantage of being relatively high overhead, but a compensating
391           advantage of working on many systems without dedicated MMC/SD/SDIO
392           controllers.
393
394           If unsure, or if your system has no SPI master driver, say N.
395
396 config MMC_S3C
397         tristate "Samsung S3C SD/MMC Card Interface support"
398         depends on ARCH_S3C24XX
399         help
400           This selects a driver for the MCI interface found in
401           Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
402           If you have a board based on one of those and a MMC/SD
403           slot, say Y or M here.
404
405           If unsure, say N.
406
407 config MMC_S3C_HW_SDIO_IRQ
408        bool "Hardware support for SDIO IRQ"
409        depends on MMC_S3C
410        help
411          Enable the hardware support for SDIO interrupts instead of using
412          the generic polling code.
413
414 choice
415         prompt "Samsung S3C SD/MMC transfer code"
416         depends on MMC_S3C
417
418 config MMC_S3C_PIO
419         bool "Use PIO transfers only"
420         help
421           Use PIO to transfer data between memory and the hardware.
422
423           PIO is slower than DMA as it requires CPU instructions to
424           move the data. This has been the traditional default for
425           the S3C MCI driver.
426
427 config MMC_S3C_DMA
428         bool "Use DMA transfers only"
429         help
430           Use DMA to transfer data between memory and the hardare.
431
432           Currently, the DMA support in this driver seems to not be
433           working properly and needs to be debugged before this
434           option is useful.
435
436 config MMC_S3C_PIODMA
437         bool "Support for both PIO and DMA"
438         help
439           Compile both the PIO and DMA transfer routines into the
440           driver and let the platform select at run-time which one
441           is best.
442
443           See notes for the DMA option.
444
445 endchoice
446
447 config MMC_SDRICOH_CS
448         tristate "MMC/SD driver for Ricoh Bay1Controllers"
449         depends on PCI && PCMCIA
450         help
451           Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
452           card whenever you insert a MMC or SD card into the card slot.
453
454           To compile this driver as a module, choose M here: the
455           module will be called sdricoh_cs.
456
457 config MMC_TMIO_CORE
458         tristate
459
460 config MMC_TMIO
461         tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
462         depends on MFD_TMIO || MFD_ASIC3
463         select MMC_TMIO_CORE
464         help
465           This provides support for the SD/MMC cell found in TC6393XB,
466           T7L66XB and also HTC ASIC3
467
468 config MMC_SDHI
469         tristate "SH-Mobile SDHI SD/SDIO controller support"
470         depends on SUPERH || ARCH_SHMOBILE
471         select MMC_TMIO_CORE
472         help
473           This provides support for the SDHI SD/SDIO controller found in
474           SuperH and ARM SH-Mobile SoCs
475
476 config MMC_CB710
477         tristate "ENE CB710 MMC/SD Interface support"
478         depends on PCI && GENERIC_HARDIRQS
479         select CB710_CORE
480         help
481           This option enables support for MMC/SD part of ENE CB710/720 Flash
482           memory card reader found in some laptops (ie. some versions of
483           HP Compaq nx9500).
484
485           This driver can also be built as a module. If so, the module
486           will be called cb710-mmc.
487
488 config MMC_VIA_SDMMC
489         tristate "VIA SD/MMC Card Reader Driver"
490         depends on PCI
491         help
492           This selects the VIA SD/MMC Card Reader driver, say Y or M here.
493           VIA provides one multi-functional card reader which integrated into
494           some motherboards manufactured by VIA. This card reader supports
495           SD/MMC/SDHC.
496           If you have a controller with this interface, say Y or M here.
497
498           If unsure, say N.
499
500 config SDH_BFIN
501         tristate "Blackfin Secure Digital Host support"
502         depends on (BF54x && !BF544) || (BF51x && !BF512)
503         help
504           If you say yes here you will get support for the Blackfin on-chip
505           Secure Digital Host interface.  This includes support for MMC and
506           SD cards.
507
508           To compile this driver as a module, choose M here: the
509           module will be called bfin_sdh.
510
511           If unsure, say N.
512
513 config SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND
514         bool "Blackfin EZkit Missing SDH_CMD Pull Up Resistor Workaround"
515         depends on SDH_BFIN
516         help
517           If you say yes here SD-Cards may work on the EZkit.
518
519 config MMC_DW
520         tristate "Synopsys DesignWare Memory Card Interface"
521         depends on ARM
522         help
523           This selects support for the Synopsys DesignWare Mobile Storage IP
524           block, this provides host support for SD and MMC interfaces, in both
525           PIO and external DMA modes.
526
527 config MMC_DW_IDMAC
528         bool "Internal DMAC interface"
529         depends on MMC_DW
530         help
531           This selects support for the internal DMAC block within the Synopsys
532           Designware Mobile Storage IP block. This disables the external DMA
533           interface.
534
535 config MMC_DW_PLTFM
536         tristate "Synopsys Designware MCI Support as platform device"
537         depends on MMC_DW
538         default y
539         help
540           This selects the common helper functions support for Host Controller
541           Interface based platform driver. Please select this option if the IP
542           is present as a platform device. This is the common interface for the
543           Synopsys Designware IP.
544
545           If you have a controller with this interface, say Y or M here.
546
547           If unsure, say Y.
548
549 config MMC_DW_EXYNOS
550         tristate "Exynos specific extensions for Synopsys DW Memory Card Interface"
551         depends on MMC_DW
552         select MMC_DW_PLTFM
553         help
554           This selects support for Samsung Exynos SoC specific extensions to the
555           Synopsys DesignWare Memory Card Interface driver. Select this option
556           for platforms based on Exynos4 and Exynos5 SoC's.
557
558 config MMC_DW_PCI
559         tristate "Synopsys Designware MCI support on PCI bus"
560         depends on MMC_DW && PCI
561         help
562           This selects the PCI bus for the Synopsys Designware Mobile Storage IP.
563           Select this option if the IP is present on PCI platform.
564
565           If you have a controller with this interface, say Y or M here.
566
567           If unsure, say N.
568
569 config MMC_SH_MMCIF
570         tristate "SuperH Internal MMCIF support"
571         depends on MMC_BLOCK && (SUPERH || ARCH_SHMOBILE)
572         help
573           This selects the MMC Host Interface controller (MMCIF).
574
575           This driver supports MMCIF in sh7724/sh7757/sh7372.
576
577 config MMC_JZ4740
578         tristate "JZ4740 SD/Multimedia Card Interface support"
579         depends on MACH_JZ4740
580         help
581           This selects support for the SD/MMC controller on Ingenic JZ4740
582           SoCs.
583           If you have a board based on such a SoC and with a SD/MMC slot,
584           say Y or M here.
585
586 config MMC_VUB300
587         tristate "VUB300 USB to SDIO/SD/MMC Host Controller support"
588         depends on USB
589         help
590           This selects support for Elan Digital Systems' VUB300 chip.
591
592           The VUB300 is a USB-SDIO Host Controller Interface chip
593           that enables the host computer to use SDIO/SD/MMC cards
594           via a USB 2.0 or USB 1.1 host.
595
596           The VUB300 chip will be found in both physically separate
597           USB to SDIO/SD/MMC adapters and embedded on some motherboards.
598
599           The VUB300 chip supports SD and MMC memory cards in addition
600           to single and multifunction SDIO cards.
601
602           Some SDIO cards will need a firmware file to be loaded and
603           sent to VUB300 chip in order to achieve better data throughput.
604           Download these "Offload Pseudocode" from Elan Digital Systems'
605           web-site http://www.elandigitalsystems.com/support/downloads.php
606           and put them in /lib/firmware. Note that without these additional
607           firmware files the VUB300 chip will still function, but not at
608           the best obtainable data rate.
609
610           To compile this mmc host controller driver as a module,
611           choose M here: the module will be called vub300.
612
613           If you have a computer with an embedded VUB300 chip
614           or if you intend connecting a USB adapter based on a
615           VUB300 chip say Y or M here.
616
617 config MMC_USHC
618         tristate "USB SD Host Controller (USHC) support"
619         depends on USB
620         help
621           This selects support for USB SD Host Controllers based on
622           the Cypress Astoria chip with firmware compliant with CSR's
623           USB SD Host Controller specification (CS-118793-SP).
624
625           CSR boards with this device include: USB<>SDIO (M1985v2),
626           and Ultrasira.
627
628           Note: These controllers only support SDIO cards and do not
629           support MMC or SD memory cards.
630
631 config MMC_WMT
632         tristate "Wondermedia SD/MMC Host Controller support"
633         depends on ARCH_VT8500
634         default y
635         help
636           This selects support for the SD/MMC Host Controller on
637           Wondermedia WM8505/WM8650 based SoCs.
638
639           To compile this driver as a module, choose M here: the
640           module will be called wmt-sdmmc.
641
642 config MMC_REALTEK_PCI
643         tristate "Realtek PCI-E SD/MMC Card Interface Driver"
644         depends on MFD_RTSX_PCI
645         help
646           Say Y here to include driver code to support SD/MMC card interface
647           of Realtek PCI-E card reader