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