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