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