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