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