]> asedeno.scripts.mit.edu Git - linux.git/blob - drivers/mmc/host/Kconfig
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux.git] / drivers / mmc / host / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # MMC/SD host controller drivers
4 #
5
6 comment "MMC/SD/SDIO Host Controller Drivers"
7
8 config MMC_DEBUG
9         bool "MMC host drivers debugging"
10         depends on MMC != n
11         help
12           This is an option for use by developers; most people should
13           say N here. This enables MMC host driver debugging. And further
14           added host drivers please don't invent their private macro for
15           debugging.
16
17 config MMC_ARMMMCI
18         tristate "ARM AMBA Multimedia Card Interface support"
19         depends on ARM_AMBA
20         help
21           This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
22           Interface (PL180 and PL181) support.  If you have an ARM(R)
23           platform with a Multimedia Card slot, say Y or M here.
24
25           If unsure, say N.
26
27 config MMC_QCOM_DML
28         bool "Qualcomm Data Mover for SD Card Controller"
29         depends on MMC_ARMMMCI && QCOM_BAM_DMA
30         default y
31         help
32           This selects the Qualcomm Data Mover lite/local on SD Card controller.
33           This option will enable the dma to work correctly, if you are using
34           Qcom SOCs and MMC, you would probably need this option to get DMA working.
35
36           if unsure, say N.
37
38 config MMC_STM32_SDMMC
39         bool "STMicroelectronics STM32 SDMMC Controller"
40         depends on MMC_ARMMMCI
41         default y
42         help
43           This selects the STMicroelectronics STM32 SDMMC host controller.
44           If you have a STM32 sdmmc host with internal DMA say Y here.
45
46           If unsure, say N.
47
48 config MMC_PXA
49         tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
50         depends on ARCH_PXA
51         help
52           This selects the Intel(R) PXA(R) Multimedia card Interface.
53           If you have a PXA(R) platform with a Multimedia Card slot,
54           say Y or M here.
55
56           If unsure, say N.
57
58 config MMC_SDHCI
59         tristate "Secure Digital Host Controller Interface support"
60         depends on HAS_DMA
61         help
62           This selects the generic Secure Digital Host Controller Interface.
63           It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
64           and Toshiba(R). Most controllers found in laptops are of this type.
65
66           If you have a controller with this interface, say Y or M here. You
67           also need to enable an appropriate bus interface.
68
69           If unsure, say N.
70
71 config MMC_SDHCI_IO_ACCESSORS
72         bool
73         depends on MMC_SDHCI
74         help
75           This is silent Kconfig symbol that is selected by the drivers that
76           need to overwrite SDHCI IO memory accessors.
77
78 config MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
79         bool
80         depends on MMC_SDHCI
81         select MMC_SDHCI_IO_ACCESSORS
82         help
83           This option is selected by drivers running on big endian hosts
84           and performing I/O to a SDHCI controller through a bus that
85           implements a hardware byte swapper using a 32-bit datum.
86           This endian mapping mode is called "data invariance" and
87           has the effect of scrambling the addresses and formats of data
88           accessed in sizes other than the datum size.
89
90           This is the case for the Nintendo Wii SDHCI.
91
92 config MMC_SDHCI_PCI
93         tristate "SDHCI support on PCI bus"
94         depends on MMC_SDHCI && PCI
95         select MMC_CQHCI
96         select IOSF_MBI if X86
97         select MMC_SDHCI_IO_ACCESSORS
98         help
99           This selects the PCI Secure Digital Host Controller Interface.
100           Most controllers found today are PCI devices.
101
102           If you have a controller with this interface, say Y or M here.
103
104           If unsure, say N.
105
106 config MMC_RICOH_MMC
107         bool "Ricoh MMC Controller Disabler"
108         depends on MMC_SDHCI_PCI
109         default y
110         help
111           This adds a pci quirk to disable Ricoh MMC Controller. This
112           proprietary controller is unnecessary because the SDHCI driver
113           supports MMC cards on the SD controller, but if it is not
114           disabled, it will steal the MMC cards away - rendering them
115           useless. It is safe to select this even if you don't
116           have a Ricoh based card reader.
117
118           If unsure, say Y.
119
120 config MMC_SDHCI_ACPI
121         tristate "SDHCI support for ACPI enumerated SDHCI controllers"
122         depends on MMC_SDHCI && ACPI && PCI
123         select IOSF_MBI if X86
124         help
125           This selects support for ACPI enumerated SDHCI controllers,
126           identified by ACPI Compatibility ID PNP0D40 or specific
127           ACPI Hardware IDs.
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_PLTFM
134         tristate "SDHCI platform and OF driver helper"
135         depends on MMC_SDHCI
136         help
137           This selects the common helper functions support for Secure Digital
138           Host Controller Interface based platform and OF drivers.
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_OF_ARASAN
145         tristate "SDHCI OF support for the Arasan SDHCI controllers"
146         depends on MMC_SDHCI_PLTFM
147         depends on OF
148         depends on COMMON_CLK
149         select MMC_CQHCI
150         help
151           This selects the Arasan Secure Digital Host Controller Interface
152           (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC.
153
154           If you have a controller with this interface, say Y or M here.
155
156           If unsure, say N.
157
158 config MMC_SDHCI_OF_ASPEED
159         tristate "SDHCI OF support for the ASPEED SDHCI controller"
160         depends on MMC_SDHCI_PLTFM
161         depends on OF && OF_ADDRESS
162         help
163           This selects the ASPEED Secure Digital Host Controller Interface.
164
165           If you have a controller with this interface, say Y or M here. You
166           also need to enable an appropriate bus interface.
167
168           If unsure, say N.
169
170 config MMC_SDHCI_OF_AT91
171         tristate "SDHCI OF support for the Atmel SDMMC controller"
172         depends on MMC_SDHCI_PLTFM
173         depends on OF
174         help
175           This selects the Atmel SDMMC driver
176
177 config MMC_SDHCI_OF_ESDHC
178         tristate "SDHCI OF support for the Freescale eSDHC controller"
179         depends on MMC_SDHCI_PLTFM
180         depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE
181         select MMC_SDHCI_IO_ACCESSORS
182         select FSL_GUTS
183         help
184           This selects the Freescale eSDHC controller support.
185
186           If you have a controller with this interface, say Y or M here.
187
188           If unsure, say N.
189
190 config MMC_SDHCI_OF_HLWD
191         tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
192         depends on MMC_SDHCI_PLTFM
193         depends on PPC
194         select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
195         help
196           This selects the Secure Digital Host Controller Interface (SDHCI)
197           found in the "Hollywood" chipset of the Nintendo Wii video game
198           console.
199
200           If you have a controller with this interface, say Y or M here.
201
202           If unsure, say N.
203
204 config MMC_SDHCI_OF_DWCMSHC
205         tristate "SDHCI OF support for the Synopsys DWC MSHC"
206         depends on MMC_SDHCI_PLTFM
207         depends on OF
208         depends on COMMON_CLK
209         help
210           This selects Synopsys DesignWare Cores Mobile Storage Controller
211           support.
212           If you have a controller with this interface, say Y or M here.
213           If unsure, say N.
214
215 config MMC_SDHCI_CADENCE
216         tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller"
217         depends on MMC_SDHCI_PLTFM
218         depends on OF
219         help
220           This selects the Cadence SD/SDIO/eMMC driver.
221
222           If you have a controller with this interface, say Y or M here.
223
224           If unsure, say N.
225
226 config MMC_SDHCI_CNS3XXX
227         tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
228         depends on ARCH_CNS3XXX
229         depends on MMC_SDHCI_PLTFM
230         help
231           This selects the SDHCI support for CNS3xxx System-on-Chip devices.
232
233           If you have a controller with this interface, say Y or M here.
234
235           If unsure, say N.
236
237 config MMC_SDHCI_ESDHC_IMX
238         tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
239         depends on ARCH_MXC
240         depends on MMC_SDHCI_PLTFM
241         select MMC_SDHCI_IO_ACCESSORS
242         select MMC_CQHCI
243         help
244           This selects the Freescale eSDHC/uSDHC controller support
245           found on i.MX25, i.MX35 i.MX5x and i.MX6x.
246
247           If you have a controller with this interface, say Y or M here.
248
249           If unsure, say N.
250
251 config MMC_SDHCI_DOVE
252         tristate "SDHCI support on Marvell's Dove SoC"
253         depends on ARCH_DOVE || MACH_DOVE
254         depends on MMC_SDHCI_PLTFM
255         select MMC_SDHCI_IO_ACCESSORS
256         help
257           This selects the Secure Digital Host Controller Interface in
258           Marvell's Dove SoC.
259
260           If you have a controller with this interface, say Y or M here.
261
262           If unsure, say N.
263
264 config MMC_SDHCI_TEGRA
265         tristate "SDHCI platform support for the Tegra SD/MMC Controller"
266         depends on ARCH_TEGRA
267         depends on MMC_SDHCI_PLTFM
268         select MMC_SDHCI_IO_ACCESSORS
269         select MMC_CQHCI
270         help
271           This selects the Tegra SD/MMC controller. If you have a Tegra
272           platform with SD or MMC devices, say Y or M here.
273
274           If unsure, say N.
275
276 config MMC_SDHCI_S3C
277         tristate "SDHCI support on Samsung S3C SoC"
278         depends on MMC_SDHCI && PLAT_SAMSUNG
279         help
280           This selects the Secure Digital Host Controller Interface (SDHCI)
281           often referrered to as the HSMMC block in some of the Samsung S3C
282           range of SoC.
283
284           If you have a controller with this interface, say Y or M here.
285
286           If unsure, say N.
287
288 config MMC_SDHCI_SIRF
289         tristate "SDHCI support on CSR SiRFprimaII and SiRFmarco SoCs"
290         depends on ARCH_SIRF
291         depends on MMC_SDHCI_PLTFM
292         select MMC_SDHCI_IO_ACCESSORS
293         help
294           This selects the SDHCI support for SiRF System-on-Chip devices.
295
296           If you have a controller with this interface, say Y or M here.
297
298           If unsure, say N.
299
300 config MMC_SDHCI_PXAV3
301         tristate "Marvell MMP2 SD Host Controller support (PXAV3)"
302         depends on CLKDEV_LOOKUP
303         depends on MMC_SDHCI_PLTFM
304         depends on ARCH_BERLIN || ARCH_MMP || ARCH_MVEBU || COMPILE_TEST
305         default CPU_MMP2
306         help
307           This selects the Marvell(R) PXAV3 SD Host Controller.
308           If you have a MMP2 platform with SD Host Controller
309           and a card slot, say Y or M here.
310
311           If unsure, say N.
312
313 config MMC_SDHCI_PXAV2
314         tristate "Marvell PXA9XX SD Host Controller support (PXAV2)"
315         depends on CLKDEV_LOOKUP
316         depends on MMC_SDHCI_PLTFM
317         depends on ARCH_MMP || COMPILE_TEST
318         default CPU_PXA910
319         help
320           This selects the Marvell(R) PXAV2 SD Host Controller.
321           If you have a PXA9XX platform with SD Host Controller
322           and a card slot, say Y or M here.
323
324           If unsure, say N.
325
326 config MMC_SDHCI_SPEAR
327         tristate "SDHCI support on ST SPEAr platform"
328         depends on MMC_SDHCI && PLAT_SPEAR
329         depends on OF
330         help
331           This selects the Secure Digital Host Controller Interface (SDHCI)
332           often referrered to as the HSMMC block in some of the ST SPEAR range
333           of SoC
334
335           If you have a controller with this interface, say Y or M here.
336
337           If unsure, say N.
338
339 config MMC_SDHCI_S3C_DMA
340         bool "DMA support on S3C SDHCI"
341         depends on MMC_SDHCI_S3C
342         help
343           Enable DMA support on the Samsung S3C SDHCI glue. The DMA
344           has proved to be problematic if the controller encounters
345           certain errors, and thus should be treated with care.
346
347           YMMV.
348
349 config MMC_SDHCI_BCM_KONA
350         tristate "SDHCI support on Broadcom KONA platform"
351         depends on ARCH_BCM_MOBILE
352         depends on MMC_SDHCI_PLTFM
353         help
354           This selects the Broadcom Kona Secure Digital Host Controller
355           Interface(SDHCI) support.
356           This is used in Broadcom mobile SoCs.
357
358           If you have a controller with this interface, say Y or M here.
359
360 config MMC_SDHCI_F_SDH30
361         tristate "SDHCI support for Fujitsu Semiconductor F_SDH30"
362         depends on MMC_SDHCI_PLTFM
363         depends on OF || ACPI
364         help
365           This selects the Secure Digital Host Controller Interface (SDHCI)
366           Needed by some Fujitsu SoC for MMC / SD / SDIO support.
367           If you have a controller with this interface, say Y or M here.
368
369           If unsure, say N.
370
371 config MMC_SDHCI_IPROC
372         tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
373         depends on ARCH_BCM2835 || ARCH_BCM_IPROC || COMPILE_TEST
374         depends on MMC_SDHCI_PLTFM
375         depends on OF || ACPI
376         default ARCH_BCM_IPROC
377         select MMC_SDHCI_IO_ACCESSORS
378         help
379           This selects the iProc SD/MMC controller.
380
381           If you have a BCM2835 or IPROC platform with SD or MMC devices,
382           say Y or M here.
383
384           If unsure, say N.
385
386 config MMC_MESON_GX
387         tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
388         depends on ARCH_MESON && MMC
389         help
390           This selects support for the Amlogic SD/MMC Host Controller
391           found on the S905/GX*/AXG family of SoCs.  This controller is
392           MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces.
393
394           If you have a controller with this interface, say Y here.
395
396 config MMC_MESON_MX_SDIO
397         tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support"
398         depends on ARCH_MESON || COMPILE_TEST
399         depends on COMMON_CLK
400         depends on OF
401         help
402           This selects support for the SD/MMC Host Controller on
403           Amlogic Meson6, Meson8 and Meson8b SoCs.
404
405           If you have a controller with this interface, say Y or M here.
406           If unsure, say N.
407
408 config MMC_MOXART
409         tristate "MOXART SD/MMC Host Controller support"
410         depends on ARCH_MOXART && MMC
411         help
412           This selects support for the MOXART SD/MMC Host Controller.
413           MOXA provides one multi-functional card reader which can
414           be found on some embedded hardware such as UC-7112-LX.
415           If you have a controller with this interface, say Y here.
416
417 config MMC_SDHCI_ST
418         tristate "SDHCI support on STMicroelectronics SoC"
419         depends on ARCH_STI || FSP2
420         depends on MMC_SDHCI_PLTFM
421         select MMC_SDHCI_IO_ACCESSORS
422         help
423           This selects the Secure Digital Host Controller Interface in
424           STMicroelectronics SoCs.
425
426           If you have a controller with this interface, say Y or M here.
427           If unsure, say N.
428
429 config MMC_OMAP
430         tristate "TI OMAP Multimedia Card Interface support"
431         depends on ARCH_OMAP
432         depends on TPS65010 || !MACH_OMAP_H2
433         help
434           This selects the TI OMAP Multimedia card Interface.
435           If you have an OMAP board with a Multimedia Card slot,
436           say Y or M here.
437
438           If unsure, say N.
439
440 config MMC_OMAP_HS
441         tristate "TI OMAP High Speed Multimedia Card Interface support"
442         depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
443         help
444           This selects the TI OMAP High Speed Multimedia card Interface.
445           If you have an omap2plus board with a Multimedia Card slot,
446           say Y or M here.
447
448           If unsure, say N.
449
450 config MMC_WBSD
451         tristate "Winbond W83L51xD SD/MMC Card Interface support"
452         depends on ISA_DMA_API
453         help
454           This selects the Winbond(R) W83L51xD Secure digital and
455           Multimedia card Interface.
456           If you have a machine with a integrated W83L518D or W83L519D
457           SD/MMC card reader, say Y or M here.
458
459           If unsure, say N.
460
461 config MMC_ALCOR
462         tristate "Alcor Micro/Alcor Link SD/MMC controller"
463         depends on MISC_ALCOR_PCI
464         help
465           Say Y here to include driver code to support SD/MMC card interface
466           of Alcor Micro PCI-E card reader
467
468 config MMC_AU1X
469         tristate "Alchemy AU1XX0 MMC Card Interface support"
470         depends on MIPS_ALCHEMY
471         help
472           This selects the AMD Alchemy(R) Multimedia card interface.
473           If you have a Alchemy platform with a MMC slot, say Y or M here.
474
475           If unsure, say N.
476
477 config MMC_ATMELMCI
478         tristate "Atmel SD/MMC Driver (Multimedia Card Interface)"
479         depends on ARCH_AT91
480         help
481           This selects the Atmel Multimedia Card Interface driver.
482           If you have an AT91 platform with a Multimedia Card slot,
483           say Y or M here.
484
485           If unsure, say N.
486
487 config MMC_SDHCI_MSM
488         tristate "Qualcomm SDHCI Controller Support"
489         depends on ARCH_QCOM || (ARM && COMPILE_TEST)
490         depends on MMC_SDHCI_PLTFM
491         select MMC_SDHCI_IO_ACCESSORS
492         help
493           This selects the Secure Digital Host Controller Interface (SDHCI)
494           support present in Qualcomm SOCs. The controller supports
495           SD/MMC/SDIO devices.
496
497           If you have a controller with this interface, say Y or M here.
498
499           If unsure, say N.
500
501 config MMC_MXC
502         tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
503         depends on ARCH_MXC || PPC_MPC512x
504         help
505           This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
506           Multimedia Card Interface. If you have an i.MX or MPC512x platform
507           with a Multimedia Card slot, say Y or M here.
508
509           If unsure, say N.
510
511 config MMC_MXS
512         tristate "Freescale MXS Multimedia Card Interface support"
513         depends on ARCH_MXS && MXS_DMA
514         help
515           This selects the Freescale SSP MMC controller found on MXS based
516           platforms like mx23/28.
517
518           If unsure, say N.
519
520 config MMC_TIFM_SD
521         tristate "TI Flash Media MMC/SD Interface support"
522         depends on PCI
523         select TIFM_CORE
524         help
525           Say Y here if you want to be able to access MMC/SD cards with
526           the Texas Instruments(R) Flash Media card reader, found in many
527           laptops.
528           This option 'selects' (turns on, enables) 'TIFM_CORE', but you
529           probably also need appropriate card reader host adapter, such as
530           'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
531           (TIFM_7XX1)'.
532
533           To compile this driver as a module, choose M here: the
534           module will be called tifm_sd.
535
536 config MMC_MVSDIO
537         tristate "Marvell MMC/SD/SDIO host driver"
538         depends on PLAT_ORION
539         depends on OF
540         ---help---
541           This selects the Marvell SDIO host driver.
542           SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
543           SoC controllers.
544
545           To compile this driver as a module, choose M here: the
546           module will be called mvsdio.
547
548 config MMC_DAVINCI
549         tristate "TI DAVINCI Multimedia Card Interface support"
550         depends on ARCH_DAVINCI
551         help
552           This selects the TI DAVINCI Multimedia card Interface.
553           If you have an DAVINCI board with a Multimedia Card slot,
554           say Y or M here.  If unsure, say N.
555
556 config MMC_GOLDFISH
557         tristate "goldfish qemu Multimedia Card Interface support"
558         depends on GOLDFISH || COMPILE_TEST
559         help
560           This selects the Goldfish Multimedia card Interface emulation
561           found on the Goldfish Android virtual device emulation.
562
563 config MMC_SPI
564         tristate "MMC/SD/SDIO over SPI"
565         depends on SPI_MASTER && HAS_DMA
566         select CRC7
567         select CRC_ITU_T
568         help
569           Some systems access MMC/SD/SDIO cards using a SPI controller
570           instead of using a "native" MMC/SD/SDIO controller.  This has a
571           disadvantage of being relatively high overhead, but a compensating
572           advantage of working on many systems without dedicated MMC/SD/SDIO
573           controllers.
574
575           If unsure, or if your system has no SPI master driver, say N.
576
577 config MMC_S3C
578         tristate "Samsung S3C SD/MMC Card Interface support"
579         depends on ARCH_S3C24XX
580         depends on S3C24XX_DMAC
581         help
582           This selects a driver for the MCI interface found in
583           Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
584           If you have a board based on one of those and a MMC/SD
585           slot, say Y or M here.
586
587           If unsure, say N.
588
589 config MMC_S3C_HW_SDIO_IRQ
590         bool "Hardware support for SDIO IRQ"
591         depends on MMC_S3C
592         help
593           Enable the hardware support for SDIO interrupts instead of using
594           the generic polling code.
595
596 choice
597         prompt "Samsung S3C SD/MMC transfer code"
598         depends on MMC_S3C
599
600 config MMC_S3C_PIO
601         bool "Use PIO transfers only"
602         help
603           Use PIO to transfer data between memory and the hardware.
604
605           PIO is slower than DMA as it requires CPU instructions to
606           move the data. This has been the traditional default for
607           the S3C MCI driver.
608
609 config MMC_S3C_DMA
610         bool "Use DMA transfers only"
611         help
612           Use DMA to transfer data between memory and the hardare.
613
614           Currently, the DMA support in this driver seems to not be
615           working properly and needs to be debugged before this
616           option is useful.
617
618 endchoice
619
620 config MMC_SDRICOH_CS
621         tristate "MMC/SD driver for Ricoh Bay1Controllers"
622         depends on PCI && PCMCIA
623         help
624           Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
625           card whenever you insert a MMC or SD card into the card slot.
626
627           To compile this driver as a module, choose M here: the
628           module will be called sdricoh_cs.
629
630 config MMC_SDHCI_SPRD
631         tristate "Spreadtrum SDIO host Controller"
632         depends on ARCH_SPRD
633         depends on MMC_SDHCI_PLTFM
634         select MMC_SDHCI_IO_ACCESSORS
635         help
636           This selects the SDIO Host Controller in Spreadtrum
637           SoCs, this driver supports R11(IP version: R11P0).
638
639           If you have a controller with this interface, say Y or M here.
640
641           If unsure, say N.
642
643 config MMC_TMIO_CORE
644         tristate
645
646 config MMC_TMIO
647         tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
648         depends on MFD_TMIO || MFD_ASIC3
649         select MMC_TMIO_CORE
650         help
651           This provides support for the SD/MMC cell found in TC6393XB,
652           T7L66XB and also HTC ASIC3
653
654 config MMC_SDHI
655         tristate "Renesas SDHI SD/SDIO controller support"
656         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
657         select MMC_TMIO_CORE
658         help
659           This provides support for the SDHI SD/SDIO controller found in
660           Renesas SuperH, ARM and ARM64 based SoCs
661
662 config MMC_SDHI_SYS_DMAC
663         tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC"
664         depends on MMC_SDHI
665         default MMC_SDHI if (SUPERH || ARM)
666         help
667           This provides DMA support for SDHI SD/SDIO controllers
668           using SYS-DMAC via DMA Engine. This supports the controllers
669           found in SuperH and Renesas ARM based SoCs.
670
671 config MMC_SDHI_INTERNAL_DMAC
672         tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering"
673         depends on ARM64 || ARCH_R7S9210 || ARCH_R8A77470 || COMPILE_TEST
674         depends on MMC_SDHI
675         default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470)
676         help
677           This provides DMA support for SDHI SD/SDIO controllers
678           using on-chip bus mastering. This supports the controllers
679           found in arm64 based SoCs. This controller is also found in
680           some RZ family SoCs.
681
682 config MMC_UNIPHIER
683         tristate "UniPhier SD/eMMC Host Controller support"
684         depends on ARCH_UNIPHIER || COMPILE_TEST
685         depends on OF
686         select MMC_TMIO_CORE
687         help
688           This provides support for the SD/eMMC controller found in
689           UniPhier SoCs. The eMMC variant of this controller is used
690           only for 32-bit SoCs.
691
692 config MMC_CB710
693         tristate "ENE CB710 MMC/SD Interface support"
694         depends on PCI
695         select CB710_CORE
696         help
697           This option enables support for MMC/SD part of ENE CB710/720 Flash
698           memory card reader found in some laptops (ie. some versions of
699           HP Compaq nx9500).
700
701           This driver can also be built as a module. If so, the module
702           will be called cb710-mmc.
703
704 config MMC_VIA_SDMMC
705         tristate "VIA SD/MMC Card Reader Driver"
706         depends on PCI
707         help
708           This selects the VIA SD/MMC Card Reader driver, say Y or M here.
709           VIA provides one multi-functional card reader which integrated into
710           some motherboards manufactured by VIA. This card reader supports
711           SD/MMC/SDHC.
712           If you have a controller with this interface, say Y or M here.
713
714           If unsure, say N.
715
716 config MMC_CAVIUM_OCTEON
717         tristate "Cavium OCTEON SD/MMC Card Interface support"
718         depends on CAVIUM_OCTEON_SOC
719         help
720           This selects Cavium OCTEON SD/MMC card Interface.
721           If you have an OCTEON board with a Multimedia Card slot,
722           say Y or M here.
723
724           If unsure, say N.
725
726 config MMC_CAVIUM_THUNDERX
727         tristate "Cavium ThunderX SD/MMC Card Interface support"
728         depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
729         depends on GPIO_THUNDERX
730         depends on OF_ADDRESS
731         help
732           This selects Cavium ThunderX SD/MMC Card Interface.
733           If you have an Cavium ARM64 board with a Multimedia Card slot
734           or builtin eMMC chip say Y or M here. If built as a module
735           the module will be called thunderx_mmc.ko.
736
737 config MMC_DW
738         tristate "Synopsys DesignWare Memory Card Interface"
739         depends on ARC || ARM || ARM64 || MIPS || COMPILE_TEST
740         help
741           This selects support for the Synopsys DesignWare Mobile Storage IP
742           block, this provides host support for SD and MMC interfaces, in both
743           PIO, internal DMA mode and external DMA mode.
744
745 config MMC_DW_PLTFM
746         tristate "Synopsys Designware MCI Support as platform device"
747         depends on MMC_DW
748         default y
749         help
750           This selects the common helper functions support for Host Controller
751           Interface based platform driver. Please select this option if the IP
752           is present as a platform device. This is the common interface for the
753           Synopsys Designware IP.
754
755           If you have a controller with this interface, say Y or M here.
756
757           If unsure, say Y.
758
759 config MMC_DW_BLUEFIELD
760         tristate "BlueField specific extensions for Synopsys DW Memory Card Interface"
761         depends on MMC_DW
762         select MMC_DW_PLTFM
763         help
764           This selects support for Mellanox BlueField SoC specific extensions to
765           the Synopsys DesignWare Memory Card Interface driver. Select this
766           option for platforms based on Mellanox BlueField SoC's.
767
768 config MMC_DW_EXYNOS
769         tristate "Exynos specific extensions for Synopsys DW Memory Card Interface"
770         depends on MMC_DW
771         select MMC_DW_PLTFM
772         help
773           This selects support for Samsung Exynos SoC specific extensions to the
774           Synopsys DesignWare Memory Card Interface driver. Select this option
775           for platforms based on Exynos4 and Exynos5 SoC's.
776
777 config MMC_DW_HI3798CV200
778         tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface"
779         depends on MMC_DW
780         select MMC_DW_PLTFM
781         help
782           This selects support for HiSilicon Hi3798CV200 SoC specific extensions to the
783           Synopsys DesignWare Memory Card Interface driver. Select this option
784           for platforms based on HiSilicon Hi3798CV200 SoC.
785
786 config MMC_DW_K3
787         tristate "K3 specific extensions for Synopsys DW Memory Card Interface"
788         depends on MMC_DW
789         select MMC_DW_PLTFM
790         help
791           This selects support for Hisilicon K3 SoC specific extensions to the
792           Synopsys DesignWare Memory Card Interface driver. Select this option
793           for platforms based on Hisilicon K3 SoC's.
794
795 config MMC_DW_PCI
796         tristate "Synopsys Designware MCI support on PCI bus"
797         depends on MMC_DW && PCI
798         help
799           This selects the PCI bus for the Synopsys Designware Mobile Storage IP.
800           Select this option if the IP is present on PCI platform.
801
802           If you have a controller with this interface, say Y or M here.
803
804           If unsure, say N.
805
806 config MMC_DW_ROCKCHIP
807         tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface"
808         depends on MMC_DW && ARCH_ROCKCHIP
809         select MMC_DW_PLTFM
810         help
811           This selects support for Rockchip SoC specific extensions to the
812           Synopsys DesignWare Memory Card Interface driver. Select this option
813           for platforms based on RK3066, RK3188 and RK3288 SoC's.
814
815 config MMC_DW_ZX
816         tristate "ZTE specific extensions for Synopsys DW Memory Card Interface"
817         depends on MMC_DW && ARCH_ZX
818         select MMC_DW_PLTFM
819         help
820           This selects support for ZTE SoC specific extensions to the
821           Synopsys DesignWare Memory Card Interface driver. Select this option
822           for platforms based on ZX296718 SoC's.
823
824 config MMC_SH_MMCIF
825         tristate "SuperH Internal MMCIF support"
826         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
827         help
828           This selects the MMC Host Interface controller (MMCIF) found in various
829           Renesas SoCs for SH and ARM architectures.
830
831
832 config MMC_JZ4740
833         tristate "Ingenic JZ47xx SD/Multimedia Card Interface support"
834         depends on MIPS
835         help
836           This selects support for the SD/MMC controller on Ingenic
837           JZ4740, JZ4750, JZ4770 and JZ4780 SoCs.
838
839           If you have a board based on such a SoC and with a SD/MMC slot,
840           say Y or M here.
841
842 config MMC_VUB300
843         tristate "VUB300 USB to SDIO/SD/MMC Host Controller support"
844         depends on USB
845         help
846           This selects support for Elan Digital Systems' VUB300 chip.
847
848           The VUB300 is a USB-SDIO Host Controller Interface chip
849           that enables the host computer to use SDIO/SD/MMC cards
850           via a USB 2.0 or USB 1.1 host.
851
852           The VUB300 chip will be found in both physically separate
853           USB to SDIO/SD/MMC adapters and embedded on some motherboards.
854
855           The VUB300 chip supports SD and MMC memory cards in addition
856           to single and multifunction SDIO cards.
857
858           Some SDIO cards will need a firmware file to be loaded and
859           sent to VUB300 chip in order to achieve better data throughput.
860           Download these "Offload Pseudocode" from Elan Digital Systems'
861           web-site http://www.elandigitalsystems.com/support/downloads.php
862           and put them in /lib/firmware. Note that without these additional
863           firmware files the VUB300 chip will still function, but not at
864           the best obtainable data rate.
865
866           To compile this mmc host controller driver as a module,
867           choose M here: the module will be called vub300.
868
869           If you have a computer with an embedded VUB300 chip
870           or if you intend connecting a USB adapter based on a
871           VUB300 chip say Y or M here.
872
873 config MMC_USHC
874         tristate "USB SD Host Controller (USHC) support"
875         depends on USB
876         help
877           This selects support for USB SD Host Controllers based on
878           the Cypress Astoria chip with firmware compliant with CSR's
879           USB SD Host Controller specification (CS-118793-SP).
880
881           CSR boards with this device include: USB<>SDIO (M1985v2),
882           and Ultrasira.
883
884           Note: These controllers only support SDIO cards and do not
885           support MMC or SD memory cards.
886
887 config MMC_WMT
888         tristate "Wondermedia SD/MMC Host Controller support"
889         depends on ARCH_VT8500
890         default y
891         help
892           This selects support for the SD/MMC Host Controller on
893           Wondermedia WM8505/WM8650 based SoCs.
894
895           To compile this driver as a module, choose M here: the
896           module will be called wmt-sdmmc.
897
898 config MMC_USDHI6ROL0
899         tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support"
900         depends on HAS_DMA
901         help
902           This selects support for the Renesas USDHI6ROL0 SD/SDIO
903           Host Controller
904
905 config MMC_REALTEK_PCI
906         tristate "Realtek PCI-E SD/MMC Card Interface Driver"
907         depends on MISC_RTSX_PCI
908         help
909           Say Y here to include driver code to support SD/MMC card interface
910           of Realtek PCI-E card reader
911
912 config MMC_REALTEK_USB
913         tristate "Realtek USB SD/MMC Card Interface Driver"
914         depends on MISC_RTSX_USB
915         help
916           Say Y here to include driver code to support SD/MMC card interface
917           of Realtek RTS5129/39 series card reader
918
919 config MMC_SUNXI
920         tristate "Allwinner sunxi SD/MMC Host Controller support"
921         depends on ARCH_SUNXI
922         help
923           This selects support for the SD/MMC Host Controller on
924           Allwinner sunxi SoCs.
925
926 config MMC_CQHCI
927         tristate "Command Queue Host Controller Interface support"
928         depends on HAS_DMA
929         help
930           This selects the Command Queue Host Controller Interface (CQHCI)
931           support present in host controllers of Qualcomm Technologies, Inc
932           amongst others.
933           This controller supports eMMC devices with command queue support.
934
935           If you have a controller with this interface, say Y or M here.
936
937           If unsure, say N.
938
939 config MMC_TOSHIBA_PCI
940         tristate "Toshiba Type A SD/MMC Card Interface Driver"
941         depends on PCI
942
943 config MMC_BCM2835
944         tristate "Broadcom BCM2835 SDHOST MMC Controller support"
945         depends on ARCH_BCM2835 || COMPILE_TEST
946         help
947           This selects the BCM2835 SDHOST MMC controller. If you have
948           a BCM2835 platform with SD or MMC devices, say Y or M here.
949
950           Note that the BCM2835 has two SD controllers: The Arasan
951           sdhci controller (supported by MMC_SDHCI_IPROC) and a custom
952           sdhost controller (supported by this driver).
953
954           If unsure, say N.
955
956 config MMC_MTK
957         tristate "MediaTek SD/MMC Card Interface support"
958         depends on HAS_DMA
959         select REGULATOR
960         help
961           This selects the MediaTek(R) Secure digital and Multimedia card Interface.
962           If you have a machine with a integrated SD/MMC card reader, say Y or M here.
963           This is needed if support for any SD/SDIO/MMC devices is required.
964           If unsure, say N.
965
966 config MMC_SDHCI_MICROCHIP_PIC32
967         tristate "Microchip PIC32MZDA SDHCI support"
968         depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM
969         help
970           This selects the Secure Digital Host Controller Interface (SDHCI)
971           for PIC32MZDA platform.
972
973           If you have a controller with this interface, say Y or M here.
974
975           If unsure, say N.
976
977 config MMC_SDHCI_BRCMSTB
978         tristate "Broadcom SDIO/SD/MMC support"
979         depends on ARCH_BRCMSTB || BMIPS_GENERIC
980         depends on MMC_SDHCI_PLTFM
981         default y
982         help
983           This selects support for the SDIO/SD/MMC Host Controller on
984           Broadcom STB SoCs.
985
986           If unsure, say Y.
987
988 config MMC_SDHCI_XENON
989         tristate "Marvell Xenon eMMC/SD/SDIO SDHCI driver"
990         depends on MMC_SDHCI_PLTFM
991         help
992           This selects Marvell Xenon eMMC/SD/SDIO SDHCI.
993           If you have a controller with this interface, say Y or M here.
994           If unsure, say N.
995
996 config MMC_SDHCI_OMAP
997         tristate "TI SDHCI Controller Support"
998         depends on MMC_SDHCI_PLTFM && OF
999         select THERMAL
1000         imply TI_SOC_THERMAL
1001         help
1002           This selects the Secure Digital Host Controller Interface (SDHCI)
1003           support present in TI's DRA7 SOCs. The controller supports
1004           SD/MMC/SDIO devices.
1005
1006           If you have a controller with this interface, say Y or M here.
1007
1008           If unsure, say N.
1009
1010 config MMC_SDHCI_AM654
1011         tristate "Support for the SDHCI Controller in TI's AM654 SOCs"
1012         depends on MMC_SDHCI_PLTFM && OF && REGMAP_MMIO
1013         select MMC_SDHCI_IO_ACCESSORS
1014         help
1015           This selects the Secure Digital Host Controller Interface (SDHCI)
1016           support present in TI's AM654 SOCs. The controller supports
1017           SD/MMC/SDIO devices.
1018
1019           If you have a controller with this interface, say Y or M here.
1020
1021           If unsure, say N.