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