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