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