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