Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / drivers / mmc / host / Kconfig
blob6824131b69b188cae58c8f48076715ca647ca28c
1 # SPDX-License-Identifier: GPL-2.0-only
3 # MMC/SD host controller drivers
6 comment "MMC/SD/SDIO Host Controller Drivers"
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.
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.
24           If unsure, say N
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.
34           If unsure, say N.
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.
45           if unsure, say N.
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.
55           If unsure, say N.
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.
65           If unsure, say N.
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.
75           If you have a controller with this interface, say Y or M here. You
76           also need to enable an appropriate bus interface.
78           If unsure, say N.
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.
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.
99           This is the case for the Nintendo Wii SDHCI.
101 config MMC_SDHCI_UHS2
102         tristate "UHS2 support on SDHCI controller" if COMPILE_TEST
103         depends on MMC_SDHCI
104         help
105           This option is selected by SDHCI controller drivers that want to
106           support UHS2-capable devices.
108           If you have a controller with this feature, say Y or M here.
110 config MMC_SDHCI_PCI
111         tristate "SDHCI support on PCI bus"
112         depends on MMC_SDHCI && PCI
113         select MMC_CQHCI
114         select MMC_SDHCI_UHS2
115         select IOSF_MBI if X86
116         select MMC_SDHCI_IO_ACCESSORS
117         help
118           This selects the PCI Secure Digital Host Controller Interface.
119           Most controllers found today are PCI devices.
121           If you have a controller with this interface, say Y or M here.
123           If unsure, say N.
125 config MMC_RICOH_MMC
126         bool "Ricoh MMC Controller Disabler"
127         depends on MMC_SDHCI_PCI
128         default y
129         help
130           This adds a pci quirk to disable Ricoh MMC Controller. This
131           proprietary controller is unnecessary because the SDHCI driver
132           supports MMC cards on the SD controller, but if it is not
133           disabled, it will steal the MMC cards away - rendering them
134           useless. It is safe to select this even if you don't
135           have a Ricoh based card reader.
137           If unsure, say Y.
139 config MMC_SDHCI_ACPI
140         tristate "SDHCI support for ACPI enumerated SDHCI controllers"
141         depends on MMC_SDHCI && ACPI && PCI
142         select IOSF_MBI if X86
143         help
144           This selects support for ACPI enumerated SDHCI controllers,
145           identified by ACPI Compatibility ID PNP0D40 or specific
146           ACPI Hardware IDs.
148           If you have a controller with this interface, say Y or M here.
150           If unsure, say N.
152 config MMC_SDHCI_PLTFM
153         tristate "SDHCI platform and OF driver helper"
154         depends on MMC_SDHCI
155         help
156           This selects the common helper functions support for Secure Digital
157           Host Controller Interface based platform and OF drivers.
159           If you have a controller with this interface, say Y or M here.
161           If unsure, say N.
163 config MMC_SDHCI_OF_ARASAN
164         tristate "SDHCI OF support for the Arasan SDHCI controllers"
165         depends on MMC_SDHCI_PLTFM
166         depends on OF
167         depends on COMMON_CLK
168         select MMC_CQHCI
169         help
170           This selects the Arasan Secure Digital Host Controller Interface
171           (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC.
173           If you have a controller with this interface, say Y or M here.
175           If unsure, say N.
177 config MMC_SDHCI_OF_ASPEED
178         tristate "SDHCI OF support for the ASPEED SDHCI controller"
179         depends on ARCH_ASPEED || COMPILE_TEST
180         depends on MMC_SDHCI_PLTFM
181         depends on OF && OF_ADDRESS
182         select MMC_SDHCI_IO_ACCESSORS
183         help
184           This selects the ASPEED Secure Digital Host Controller Interface.
186           If you have a controller with this interface, say Y or M here. You
187           also need to enable an appropriate bus interface.
189           If unsure, say N.
191 config MMC_SDHCI_OF_ASPEED_TEST
192         bool "Tests for the ASPEED SDHCI driver" if !KUNIT_ALL_TESTS
193         depends on MMC_SDHCI_OF_ASPEED && KUNIT
194         depends on (MMC_SDHCI_OF_ASPEED=m || KUNIT=y)
195         default KUNIT_ALL_TESTS
196         help
197           Enable KUnit tests for the ASPEED SDHCI driver. Select this
198           option only if you will boot the kernel for the purpose of running
199           unit tests (e.g. under UML or qemu).
201           The KUnit tests generally exercise parts of the driver that do not
202           directly touch the hardware, for example, the phase correction
203           calculations.
205           If unsure, say N.
207 config MMC_SDHCI_OF_AT91
208         tristate "SDHCI OF support for the Atmel SDMMC controller"
209         depends on MMC_SDHCI_PLTFM
210         depends on OF && HAVE_CLK
211         help
212           This selects the Atmel SDMMC driver
214 config MMC_SDHCI_OF_ESDHC
215         tristate "SDHCI OF support for the Freescale eSDHC controller"
216         depends on MMC_SDHCI_PLTFM
217         depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
218         select MMC_SDHCI_IO_ACCESSORS
219         select FSL_GUTS
220         help
221           This selects the Freescale eSDHC controller support.
223           If you have a controller with this interface, say Y or M here.
225           If unsure, say N.
227 config MMC_SDHCI_OF_HLWD
228         tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
229         depends on MMC_SDHCI_PLTFM
230         depends on PPC
231         select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
232         help
233           This selects the Secure Digital Host Controller Interface (SDHCI)
234           found in the "Hollywood" chipset of the Nintendo Wii video game
235           console.
237           If you have a controller with this interface, say Y or M here.
239           If unsure, say N.
241 config MMC_SDHCI_OF_DWCMSHC
242         tristate "SDHCI OF support for the Synopsys DWC MSHC"
243         depends on MMC_SDHCI_PLTFM
244         depends on OF
245         depends on COMMON_CLK
246         select MMC_CQHCI
247         help
248           This selects Synopsys DesignWare Cores Mobile Storage Controller
249           support.
250           If you have a controller with this interface, say Y or M here.
251           If unsure, say N.
253 config MMC_SDHCI_OF_SPARX5
254         tristate "SDHCI OF support for the MCHP Sparx5 SoC"
255         depends on MMC_SDHCI_PLTFM
256         depends on ARCH_SPARX5 || COMPILE_TEST
257         help
258           This selects the Secure Digital Host Controller Interface (SDHCI)
259           found in the MCHP Sparx5 SoC.
261           If you have a Sparx5 SoC with this interface, say Y or M here.
263           If unsure, say N.
265 config MMC_SDHCI_OF_MA35D1
266         tristate "SDHCI OF support for the MA35D1 SDHCI controller"
267         depends on ARCH_MA35 || COMPILE_TEST
268         depends on MMC_SDHCI_PLTFM
269         help
270           This selects the MA35D1 Secure Digital Host Controller Interface.
271           The controller supports SD/MMC/SDIO devices.
273           If you have a controller with this interface, say Y or M here.
275           If unsure, say N.
277 config MMC_SDHCI_CADENCE
278         tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller"
279         depends on MMC_SDHCI_PLTFM
280         depends on OF
281         select MMC_SDHCI_IO_ACCESSORS
282         help
283           This selects the Cadence SD/SDIO/eMMC driver.
285           If you have a controller with this interface, say Y or M here.
287           If unsure, say N.
289 config MMC_SDHCI_ESDHC_MCF
290         tristate "SDHCI support for the Freescale eSDHC ColdFire controller"
291         depends on M5441x
292         depends on MMC_SDHCI_PLTFM
293         select MMC_SDHCI_IO_ACCESSORS
294         help
295           This selects the Freescale eSDHC controller support for
296           ColdFire mcf5441x devices.
298           If you have a controller with this interface, say Y or M here.
300           If unsure, say N.
302 config MMC_SDHCI_ESDHC_IMX
303         tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
304         depends on ARCH_MXC || COMPILE_TEST
305         depends on MMC_SDHCI_PLTFM
306         depends on OF
307         select MMC_SDHCI_IO_ACCESSORS
308         select MMC_CQHCI
309         help
310           This selects the Freescale eSDHC/uSDHC controller support
311           found on i.MX25, i.MX35 i.MX5x and i.MX6x.
313           If you have a controller with this interface, say Y or M here.
315           If unsure, say N.
317 config MMC_SDHCI_DOVE
318         tristate "SDHCI support on Marvell's Dove SoC"
319         depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
320         depends on MMC_SDHCI_PLTFM
321         select MMC_SDHCI_IO_ACCESSORS
322         help
323           This selects the Secure Digital Host Controller Interface in
324           Marvell's Dove SoC.
326           If you have a controller with this interface, say Y or M here.
328           If unsure, say N.
330 config MMC_SDHCI_TEGRA
331         tristate "SDHCI platform support for the Tegra SD/MMC Controller"
332         depends on ARCH_TEGRA || COMPILE_TEST
333         depends on MMC_SDHCI_PLTFM
334         select MMC_SDHCI_IO_ACCESSORS
335         select MMC_CQHCI
336         help
337           This selects the Tegra SD/MMC controller. If you have a Tegra
338           platform with SD or MMC devices, say Y or M here.
340           If unsure, say N.
342 config MMC_SDHCI_S3C
343         tristate "SDHCI support on Samsung S3C/S5P/Exynos SoC"
344         depends on MMC_SDHCI
345         depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
346         help
347           This selects the Secure Digital Host Controller Interface (SDHCI)
348           often referrered to as the HSMMC block in some of the Samsung
349           S3C6410, S5Pv210 and Exynos (Exynso4210, Exynos4412) SoCs.
351           If you have a controller with this interface (thereforeyou build for
352           such Samsung SoC), say Y or M here.
354           If unsure, say N.
356 config MMC_SDHCI_PXAV3
357         tristate "Marvell MMP2 SD Host Controller support (PXAV3)"
358         depends on HAVE_CLK
359         depends on MMC_SDHCI_PLTFM
360         depends on ARCH_BERLIN || ARCH_MMP || ARCH_MVEBU || COMPILE_TEST
361         default CPU_MMP2
362         help
363           This selects the Marvell(R) PXAV3 SD Host Controller.
364           If you have a MMP2 platform with SD Host Controller
365           and a card slot, say Y or M here.
367           If unsure, say N.
369 config MMC_SDHCI_PXAV2
370         tristate "Marvell PXA9XX SD Host Controller support (PXAV2)"
371         depends on HAVE_CLK
372         depends on MMC_SDHCI_PLTFM
373         depends on ARCH_MMP || COMPILE_TEST
374         default CPU_PXA910
375         select MMC_SDHCI_IO_ACCESSORS
376         help
377           This selects the Marvell(R) PXAV2 SD Host Controller.
378           If you have a PXA9XX platform with SD Host Controller
379           and a card slot, say Y or M here.
381           If unsure, say N.
383 config MMC_SDHCI_SPEAR
384         tristate "SDHCI support on ST SPEAr platform"
385         depends on MMC_SDHCI
386         depends on PLAT_SPEAR || COMPILE_TEST
387         depends on OF
388         help
389           This selects the Secure Digital Host Controller Interface (SDHCI)
390           often referrered to as the HSMMC block in some of the ST SPEAR range
391           of SoC
393           If you have a controller with this interface, say Y or M here.
395           If unsure, say N.
397 config MMC_SDHCI_S3C_DMA
398         bool "DMA support on S3C SDHCI"
399         depends on MMC_SDHCI_S3C
400         help
401           Enable DMA support on the Samsung S3C SDHCI glue. The DMA
402           has proved to be problematic if the controller encounters
403           certain errors, and thus should be treated with care.
405           YMMV.
407 config MMC_SDHCI_BCM_KONA
408         tristate "SDHCI support on Broadcom KONA platform"
409         depends on ARCH_BCM_MOBILE || COMPILE_TEST
410         depends on MMC_SDHCI_PLTFM
411         help
412           This selects the Broadcom Kona Secure Digital Host Controller
413           Interface(SDHCI) support.
414           This is used in Broadcom mobile SoCs.
416           If you have a controller with this interface, say Y or M here.
418 config MMC_SDHCI_F_SDH30
419         tristate "SDHCI support for Fujitsu Semiconductor F_SDH30"
420         depends on MMC_SDHCI_PLTFM
421         depends on OF || ACPI
422         help
423           This selects the Secure Digital Host Controller Interface (SDHCI)
424           Needed by some Fujitsu SoC for MMC / SD / SDIO support.
425           If you have a controller with this interface, say Y or M here.
427           If unsure, say N.
429 config MMC_SDHCI_MILBEAUT
430         tristate "SDHCI support for Socionext Milbeaut Serieas using F_SDH30"
431         depends on MMC_SDHCI_PLTFM
432         depends on OF
433         help
434           This selects the Secure Digital Host Controller Interface (SDHCI)
435           Needed by Milbeaut SoC for MMC / SD / SDIO support.
436           If you have a controller with this interface, say Y or M here.
438           If unsure, say N.
440 config MMC_SDHCI_IPROC
441         tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
442         depends on ARCH_BCM2835 || ARCH_BCM_IPROC || ARCH_BRCMSTB || COMPILE_TEST
443         depends on MMC_SDHCI_PLTFM
444         depends on OF || ACPI
445         default ARCH_BCM_IPROC
446         select MMC_SDHCI_IO_ACCESSORS
447         help
448           This selects the iProc SD/MMC controller.
450           If you have a BCM2835 or IPROC platform with SD or MMC devices,
451           say Y or M here.
453           If unsure, say N.
455 config MMC_SDHCI_NPCM
456         tristate "Secure Digital Host Controller Interface support for NPCM"
457         depends on ARCH_NPCM || COMPILE_TEST
458         depends on MMC_SDHCI_PLTFM
459         help
460           This provides support for the SD/eMMC controller found in
461           NPCM BMC family SoCs.
463 config MMC_MESON_GX
464         tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
465         depends on ARCH_MESON|| COMPILE_TEST
466         depends on COMMON_CLK
467         help
468           This selects support for the Amlogic SD/MMC Host Controller
469           found on the S905/GX*/AXG family of SoCs.  This controller is
470           MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces.
472           If you have a controller with this interface, say Y here.
474 config MMC_MESON_MX_SDHC
475         tristate "Amlogic Meson SDHC Host Controller support"
476         depends on (ARM && ARCH_MESON) || COMPILE_TEST
477         depends on COMMON_CLK
478         depends on OF
479         help
480           This selects support for the SDHC Host Controller on
481           Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs.
482           The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x
483           with 1, 4, and 8 bit bus widths.
485           If you have a controller with this interface, say Y or M here.
486           If unsure, say N.
488 config MMC_MESON_MX_SDIO
489         tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support"
490         depends on ARCH_MESON || COMPILE_TEST
491         depends on COMMON_CLK
492         depends on OF_ADDRESS
493         help
494           This selects support for the SD/MMC Host Controller on
495           Amlogic Meson6, Meson8 and Meson8b SoCs.
497           If you have a controller with this interface, say Y or M here.
498           If unsure, say N.
500 config MMC_MOXART
501         tristate "MOXART SD/MMC Host Controller support"
502         depends on ARCH_MOXART || COMPILE_TEST
503         help
504           This selects support for the MOXART SD/MMC Host Controller.
505           MOXA provides one multi-functional card reader which can
506           be found on some embedded hardware such as UC-7112-LX.
507           If you have a controller with this interface, say Y here.
509 config MMC_SDHCI_ST
510         tristate "SDHCI support on STMicroelectronics SoC"
511         depends on ARCH_STI || FSP2 || COMPILE_TEST
512         depends on MMC_SDHCI_PLTFM
513         select MMC_SDHCI_IO_ACCESSORS
514         help
515           This selects the Secure Digital Host Controller Interface in
516           STMicroelectronics SoCs.
518           If you have a controller with this interface, say Y or M here.
519           If unsure, say N.
521 config MMC_OMAP
522         tristate "TI OMAP Multimedia Card Interface support"
523         depends on ARCH_OMAP
524         help
525           This selects the TI OMAP Multimedia card Interface.
526           If you have an OMAP board with a Multimedia Card slot,
527           say Y or M here.
529           If unsure, say N.
531 config MMC_OMAP_HS
532         tristate "TI OMAP High Speed Multimedia Card Interface support"
533         depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
534         help
535           This selects the TI OMAP High Speed Multimedia card Interface.
536           If you have an omap2plus board with a Multimedia Card slot,
537           say Y or M here.
539           If unsure, say N.
541 config MMC_WBSD
542         tristate "Winbond W83L51xD SD/MMC Card Interface support"
543         depends on ISA_DMA_API
544         help
545           This selects the Winbond(R) W83L51xD Secure digital and
546           Multimedia card Interface.
547           If you have a machine with a integrated W83L518D or W83L519D
548           SD/MMC card reader, say Y or M here.
550           If unsure, say N.
552 config MMC_ALCOR
553         tristate "Alcor Micro/Alcor Link SD/MMC controller"
554         depends on MISC_ALCOR_PCI
555         help
556           Say Y here to include driver code to support SD/MMC card interface
557           of Alcor Micro PCI-E card reader
559 config MMC_AU1X
560         bool "Alchemy AU1XX0 MMC Card Interface support"
561         depends on MIPS_ALCHEMY
562         depends on MMC=y
563         help
564           This selects the AMD Alchemy(R) Multimedia card interface.
565           If you have a Alchemy platform with a MMC slot, say Y here.
567           If unsure, say N.
569 config MMC_ATMELMCI
570         tristate "Atmel SD/MMC Driver (Multimedia Card Interface)"
571         depends on ARCH_AT91
572         help
573           This selects the Atmel Multimedia Card Interface driver.
574           If you have an AT91 platform with a Multimedia Card slot,
575           say Y or M here.
577           If unsure, say N.
579 config MMC_SDHCI_MSM
580         tristate "Qualcomm SDHCI Controller Support"
581         depends on ARCH_QCOM || COMPILE_TEST
582         depends on MMC_SDHCI_PLTFM
583         select MMC_SDHCI_IO_ACCESSORS
584         select MMC_CQHCI
585         select QCOM_INLINE_CRYPTO_ENGINE if MMC_CRYPTO
586         help
587           This selects the Secure Digital Host Controller Interface (SDHCI)
588           support present in Qualcomm SOCs. The controller supports
589           SD/MMC/SDIO devices.
591           If you have a controller with this interface, say Y or M here.
593           If unsure, say N.
595 config MMC_MXC
596         tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
597         depends on ARCH_MXC || PPC_MPC512x
598         help
599           This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
600           Multimedia Card Interface. If you have an i.MX or MPC512x platform
601           with a Multimedia Card slot, say Y or M here.
603           If unsure, say N.
605 config MMC_MXS
606         tristate "Freescale MXS Multimedia Card Interface support"
607         depends on ARCH_MXS && MXS_DMA
608         help
609           This selects the Freescale SSP MMC controller found on MXS based
610           platforms like mx23/28.
612           If unsure, say N.
614 config MMC_TIFM_SD
615         tristate "TI Flash Media MMC/SD Interface support"
616         depends on PCI
617         select TIFM_CORE
618         help
619           Say Y here if you want to be able to access MMC/SD cards with
620           the Texas Instruments(R) Flash Media card reader, found in many
621           laptops.
622           This option 'selects' (turns on, enables) 'TIFM_CORE', but you
623           probably also need appropriate card reader host adapter, such as
624           'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
625           (TIFM_7XX1)'.
627           To compile this driver as a module, choose M here: the
628           module will be called tifm_sd.
630 config MMC_MVSDIO
631         tristate "Marvell MMC/SD/SDIO host driver"
632         depends on PLAT_ORION || (COMPILE_TEST && ARM)
633         depends on OF
634         help
635           This selects the Marvell SDIO host driver.
636           SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
637           SoC controllers.
639           To compile this driver as a module, choose M here: the
640           module will be called mvsdio.
642 config MMC_DAVINCI
643         tristate "TI DAVINCI Multimedia Card Interface support"
644         depends on ARCH_DAVINCI || COMPILE_TEST
645         help
646           This selects the TI DAVINCI Multimedia card Interface.
647           If you have an DAVINCI board with a Multimedia Card slot,
648           say Y or M here.  If unsure, say N.
650 config MMC_SPI
651         tristate "MMC/SD/SDIO over SPI"
652         depends on SPI_MASTER
653         select CRC7
654         select CRC_ITU_T
655         help
656           Some systems access MMC/SD/SDIO cards using a SPI controller
657           instead of using a "native" MMC/SD/SDIO controller.  This has a
658           disadvantage of being relatively high overhead, but a compensating
659           advantage of working on many systems without dedicated MMC/SD/SDIO
660           controllers.
662           If unsure, or if your system has no SPI master driver, say N.
664 config MMC_SDRICOH_CS
665         tristate "MMC/SD driver for Ricoh Bay1Controllers"
666         depends on PCI && PCMCIA
667         help
668           Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
669           card whenever you insert a MMC or SD card into the card slot.
671           To compile this driver as a module, choose M here: the
672           module will be called sdricoh_cs.
674 config MMC_SDHCI_SPRD
675         tristate "Spreadtrum SDIO host Controller"
676         depends on ARCH_SPRD || COMPILE_TEST
677         depends on MMC_SDHCI_PLTFM
678         select MMC_SDHCI_IO_ACCESSORS
679         select MMC_HSQ
680         help
681           This selects the SDIO Host Controller in Spreadtrum
682           SoCs, this driver supports R11(IP version: R11P0).
684           If you have a controller with this interface, say Y or M here.
686           If unsure, say N.
688 config MMC_TMIO_CORE
689         tristate
691 config MMC_SDHI
692         tristate "Renesas SDHI SD/SDIO controller support"
693         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
694         select MMC_TMIO_CORE
695         select RESET_CONTROLLER if ARCH_RENESAS
696         help
697           This provides support for the SDHI SD/SDIO controller found in
698           Renesas SuperH, ARM and ARM64 based SoCs
700 config MMC_SDHI_SYS_DMAC
701         tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC"
702         depends on MMC_SDHI
703         default MMC_SDHI if (SUPERH || ARM)
704         help
705           This provides DMA support for SDHI SD/SDIO controllers
706           using SYS-DMAC via DMA Engine. This supports the controllers
707           found in SuperH and Renesas ARM based SoCs.
709 config MMC_SDHI_INTERNAL_DMAC
710         tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering"
711         depends on ARCH_RENESAS || COMPILE_TEST
712         depends on MMC_SDHI
713         default MMC_SDHI if ARCH_RENESAS
714         help
715           This provides DMA support for SDHI SD/SDIO controllers
716           using on-chip bus mastering. This supports the controllers
717           found in arm64 based SoCs. This controller is also found in
718           some RZ family SoCs.
720 config MMC_UNIPHIER
721         tristate "UniPhier SD/eMMC Host Controller support"
722         depends on ARCH_UNIPHIER || COMPILE_TEST
723         depends on OF
724         select MMC_TMIO_CORE
725         help
726           This provides support for the SD/eMMC controller found in
727           UniPhier SoCs. The eMMC variant of this controller is used
728           only for 32-bit SoCs.
730 config MMC_CB710
731         tristate "ENE CB710 MMC/SD Interface support"
732         depends on PCI
733         select CB710_CORE
734         help
735           This option enables support for MMC/SD part of ENE CB710/720 Flash
736           memory card reader found in some laptops (ie. some versions of
737           HP Compaq nx9500).
739           This driver can also be built as a module. If so, the module
740           will be called cb710-mmc.
742 config MMC_VIA_SDMMC
743         tristate "VIA SD/MMC Card Reader Driver"
744         depends on PCI
745         help
746           This selects the VIA SD/MMC Card Reader driver, say Y or M here.
747           VIA provides one multi-functional card reader which integrated into
748           some motherboards manufactured by VIA. This card reader supports
749           SD/MMC/SDHC.
750           If you have a controller with this interface, say Y or M here.
752           If unsure, say N.
754 config MMC_CAVIUM_OCTEON
755         tristate "Cavium OCTEON SD/MMC Card Interface support"
756         depends on CAVIUM_OCTEON_SOC
757         help
758           This selects Cavium OCTEON SD/MMC card Interface.
759           If you have an OCTEON board with a Multimedia Card slot,
760           say Y or M here.
762           If unsure, say N.
764 config MMC_CAVIUM_THUNDERX
765         tristate "Cavium ThunderX SD/MMC Card Interface support"
766         depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
767         depends on GPIO_THUNDERX
768         depends on OF_ADDRESS
769         help
770           This selects Cavium ThunderX SD/MMC Card Interface.
771           If you have an Cavium ARM64 board with a Multimedia Card slot
772           or builtin eMMC chip say Y or M here. If built as a module
773           the module will be called thunderx_mmc.ko.
775 config MMC_DW
776         tristate "Synopsys DesignWare Memory Card Interface"
777         depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST
778         help
779           This selects support for the Synopsys DesignWare Mobile Storage IP
780           block, this provides host support for SD and MMC interfaces, in both
781           PIO, internal DMA mode and external DMA mode.
783 config MMC_DW_PLTFM
784         tristate "Synopsys Designware MCI Support as platform device"
785         depends on MMC_DW
786         default y
787         help
788           This selects the common helper functions support for Host Controller
789           Interface based platform driver. Please select this option if the IP
790           is present as a platform device. This is the common interface for the
791           Synopsys Designware IP.
793           If you have a controller with this interface, say Y or M here.
795           If unsure, say Y.
797 config MMC_DW_BLUEFIELD
798         tristate "BlueField specific extensions for Synopsys DW Memory Card Interface"
799         depends on MMC_DW
800         select MMC_DW_PLTFM
801         help
802           This selects support for Mellanox BlueField SoC specific extensions to
803           the Synopsys DesignWare Memory Card Interface driver. Select this
804           option for platforms based on Mellanox BlueField SoC's.
806 config MMC_DW_EXYNOS
807         tristate "Exynos specific extensions for Synopsys DW Memory Card Interface"
808         depends on MMC_DW
809         select MMC_DW_PLTFM
810         help
811           This selects support for Samsung Exynos SoC specific extensions to the
812           Synopsys DesignWare Memory Card Interface driver. Select this option
813           for platforms based on Exynos4 and Exynos5 SoC's.
815 config MMC_DW_HI3798CV200
816         tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface"
817         depends on MMC_DW
818         select MMC_DW_PLTFM
819         help
820           This selects support for HiSilicon Hi3798CV200 SoC specific extensions to the
821           Synopsys DesignWare Memory Card Interface driver. Select this option
822           for platforms based on HiSilicon Hi3798CV200 SoC.
824 config MMC_DW_HI3798MV200
825         tristate "Hi3798MV200 specific extensions for Synopsys DW Memory Card Interface"
826         depends on MMC_DW
827         select MMC_DW_PLTFM
828         help
829           This selects support for HiSilicon Hi3798MV200 SoC specific extensions to the
830           Synopsys DesignWare Memory Card Interface driver. Select this option
831           for platforms based on HiSilicon Hi3798MV200 SoC.
833 config MMC_DW_K3
834         tristate "K3 specific extensions for Synopsys DW Memory Card Interface"
835         depends on MMC_DW
836         select MMC_DW_PLTFM
837         help
838           This selects support for Hisilicon K3 SoC specific extensions to the
839           Synopsys DesignWare Memory Card Interface driver. Select this option
840           for platforms based on Hisilicon K3 SoC's.
842 config MMC_DW_PCI
843         tristate "Synopsys Designware MCI support on PCI bus"
844         depends on MMC_DW && PCI
845         help
846           This selects the PCI bus for the Synopsys Designware Mobile Storage IP.
847           Select this option if the IP is present on PCI platform.
849           If you have a controller with this interface, say Y or M here.
851           If unsure, say N.
853 config MMC_DW_ROCKCHIP
854         tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface"
855         depends on MMC_DW && ARCH_ROCKCHIP
856         select MMC_DW_PLTFM
857         help
858           This selects support for Rockchip SoC specific extensions to the
859           Synopsys DesignWare Memory Card Interface driver. Select this option
860           for platforms based on RK3066, RK3188 and RK3288 SoC's.
862 config MMC_DW_STARFIVE
863         tristate "StarFive specific extensions for Synopsys DW Memory Card Interface"
864         depends on SOC_STARFIVE
865         depends on MMC_DW
866         select MMC_DW_PLTFM
867         help
868           This selects support for StarFive JH7110 SoC specific extensions to the
869           Synopsys DesignWare Memory Card Interface driver. Select this option
870           for platforms based on StarFive JH7110 SoC.
872 config MMC_SH_MMCIF
873         tristate "SuperH Internal MMCIF support"
874         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
875         help
876           This selects the MMC Host Interface controller (MMCIF) found in various
877           Renesas SoCs for SH and ARM architectures.
880 config MMC_JZ4740
881         tristate "Ingenic JZ47xx SD/Multimedia Card Interface support"
882         depends on MIPS
883         help
884           This selects support for the SD/MMC controller on Ingenic
885           JZ4740, JZ4750, JZ4770 and JZ4780 SoCs.
887           If you have a board based on such a SoC and with a SD/MMC slot,
888           say Y or M here.
890 config MMC_VUB300
891         tristate "VUB300 USB to SDIO/SD/MMC Host Controller support"
892         depends on USB
893         help
894           This selects support for Elan Digital Systems' VUB300 chip.
896           The VUB300 is a USB-SDIO Host Controller Interface chip
897           that enables the host computer to use SDIO/SD/MMC cards
898           via a USB 2.0 or USB 1.1 host.
900           The VUB300 chip will be found in both physically separate
901           USB to SDIO/SD/MMC adapters and embedded on some motherboards.
903           The VUB300 chip supports SD and MMC memory cards in addition
904           to single and multifunction SDIO cards.
906           Some SDIO cards will need a firmware file to be loaded and
907           sent to VUB300 chip in order to achieve better data throughput.
908           Download these "Offload Pseudocode" from Elan Digital Systems'
909           web-site http://www.elandigitalsystems.com/support/downloads.php
910           and put them in /lib/firmware. Note that without these additional
911           firmware files the VUB300 chip will still function, but not at
912           the best obtainable data rate.
914           To compile this mmc host controller driver as a module,
915           choose M here: the module will be called vub300.
917           If you have a computer with an embedded VUB300 chip
918           or if you intend connecting a USB adapter based on a
919           VUB300 chip say Y or M here.
921 config MMC_USHC
922         tristate "USB SD Host Controller (USHC) support"
923         depends on USB
924         help
925           This selects support for USB SD Host Controllers based on
926           the Cypress Astoria chip with firmware compliant with CSR's
927           USB SD Host Controller specification (CS-118793-SP).
929           CSR boards with this device include: USB<>SDIO (M1985v2),
930           and Ultrasira.
932           Note: These controllers only support SDIO cards and do not
933           support MMC or SD memory cards.
935 config MMC_WMT
936         tristate "Wondermedia SD/MMC Host Controller support"
937         depends on ARCH_VT8500
938         default y
939         help
940           This selects support for the SD/MMC Host Controller on
941           Wondermedia WM8505/WM8650 based SoCs.
943           To compile this driver as a module, choose M here: the
944           module will be called wmt-sdmmc.
946 config MMC_USDHI6ROL0
947         tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support"
948         depends on HAS_DMA
949         help
950           This selects support for the Renesas USDHI6ROL0 SD/SDIO
951           Host Controller
953 config MMC_REALTEK_PCI
954         tristate "Realtek PCI-E SD/MMC Card Interface Driver"
955         depends on MISC_RTSX_PCI
956         help
957           Say Y here to include driver code to support SD/MMC card interface
958           of Realtek PCI-E card reader
960 config MMC_REALTEK_USB
961         tristate "Realtek USB SD/MMC Card Interface Driver"
962         depends on MISC_RTSX_USB
963         help
964           Say Y here to include driver code to support SD/MMC card interface
965           of Realtek RTS5129/39 series card reader
967 config MMC_SUNXI
968         tristate "Allwinner sunxi SD/MMC Host Controller support"
969         depends on ARCH_SUNXI || COMPILE_TEST
970         depends on SUNXI_CCU
971         help
972           This selects support for the SD/MMC Host Controller on
973           Allwinner sunxi SoCs.
975 config MMC_CQHCI
976         tristate "Command Queue Host Controller Interface support"
977         depends on HAS_DMA
978         help
979           This selects the Command Queue Host Controller Interface (CQHCI)
980           support present in host controllers of Qualcomm Technologies, Inc
981           amongst others.
982           This controller supports eMMC devices with command queue support.
984           If you have a controller with this interface, say Y or M here.
986           If unsure, say N.
988 config MMC_HSQ
989         tristate "MMC Host Software Queue support"
990         help
991           This selects the MMC Host Software Queue support. This may increase
992           performance, if the host controller and its driver supports it.
994           If you have a controller/driver supporting this interface, say Y or M
995           here.
997           If unsure, say N.
999 config MMC_TOSHIBA_PCI
1000         tristate "Toshiba Type A SD/MMC Card Interface Driver"
1001         depends on PCI
1003 config MMC_BCM2835
1004         tristate "Broadcom BCM2835 SDHOST MMC Controller support"
1005         depends on ARCH_BCM2835 || COMPILE_TEST
1006         help
1007           This selects the BCM2835 SDHOST MMC controller. If you have
1008           a BCM2835 platform with SD or MMC devices, say Y or M here.
1010           Note that the BCM2835 has two SD controllers: The Arasan
1011           sdhci controller (supported by MMC_SDHCI_IPROC) and a custom
1012           sdhost controller (supported by this driver).
1014           If unsure, say N.
1016 config MMC_MTK
1017         tristate "MediaTek SD/MMC Card Interface support"
1018         depends on HAS_DMA
1019         depends on COMMON_CLK
1020         select REGULATOR
1021         select MMC_CQHCI
1022         select MMC_HSQ
1023         help
1024           This selects the MediaTek(R) Secure digital and Multimedia card Interface.
1025           If you have a machine with a integrated SD/MMC card reader, say Y or M here.
1026           This is needed if support for any SD/SDIO/MMC devices is required.
1027           If unsure, say N.
1029 config MMC_SDHCI_MICROCHIP_PIC32
1030         tristate "Microchip PIC32MZDA SDHCI support"
1031         depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM
1032         help
1033           This selects the Secure Digital Host Controller Interface (SDHCI)
1034           for PIC32MZDA platform.
1036           If you have a controller with this interface, say Y or M here.
1038           If unsure, say N.
1040 config MMC_SDHCI_BRCMSTB
1041         tristate "Broadcom SDIO/SD/MMC support"
1042         depends on ARCH_BRCMSTB || ARCH_BCM2835 || BMIPS_GENERIC || COMPILE_TEST
1043         depends on MMC_SDHCI_PLTFM
1044         select MMC_CQHCI
1045         default ARCH_BRCMSTB || BMIPS_GENERIC
1046         help
1047           This selects support for the SDIO/SD/MMC Host Controller on
1048           Broadcom STB SoCs.
1050           If unsure, say Y.
1052 config MMC_SDHCI_XENON
1053         tristate "Marvell Xenon eMMC/SD/SDIO SDHCI driver"
1054         depends on MMC_SDHCI_PLTFM
1055         help
1056           This selects Marvell Xenon eMMC/SD/SDIO SDHCI.
1057           If you have a controller with this interface, say Y or M here.
1058           If unsure, say N.
1060 config MMC_SDHCI_OMAP
1061         tristate "TI SDHCI Controller Support"
1062         depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
1063         depends on MMC_SDHCI_PLTFM && OF
1064         select THERMAL
1065         imply TI_SOC_THERMAL
1066         select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE
1067         help
1068           This selects the Secure Digital Host Controller Interface (SDHCI)
1069           support present in TI's Keystone/OMAP2+/DRA7 SOCs. The controller
1070           supports SD/MMC/SDIO devices.
1072           If you have a controller with this interface, say Y or M here.
1074           If unsure, say N.
1076 config MMC_SDHCI_AM654
1077         tristate "Support for the SDHCI Controller in TI's AM654 SOCs"
1078         depends on ARCH_K3 || COMPILE_TEST
1079         depends on MMC_SDHCI_PLTFM && OF
1080         select MMC_SDHCI_IO_ACCESSORS
1081         select MMC_CQHCI
1082         select REGMAP_MMIO
1083         help
1084           This selects the Secure Digital Host Controller Interface (SDHCI)
1085           support present in TI's AM65x/AM64x/AM62x/J721E SOCs. The controller
1086           supports SD/MMC/SDIO devices.
1088           If you have a controller with this interface, say Y or M here.
1090           If unsure, say N.
1092 config MMC_OWL
1093         tristate "Actions Semi Owl SD/MMC Host Controller support"
1094         depends on HAS_DMA
1095         depends on ARCH_ACTIONS || COMPILE_TEST
1096         help
1097           This selects support for the SD/MMC Host Controller on
1098           Actions Semi Owl SoCs.
1100 config MMC_SDHCI_EXTERNAL_DMA
1101         bool
1103 config MMC_LITEX
1104         tristate "LiteX MMC Host Controller support"
1105         depends on ((PPC_MICROWATT || LITEX) && OF && HAVE_CLK) || COMPILE_TEST
1106         select REGULATOR
1107         select REGULATOR_FIXED_VOLTAGE
1108         help
1109           This selects support for the MMC Host Controller found in LiteX SoCs.
1111           To compile this driver as a module, choose M here: the
1112           module will be called litex_mmc.
1114           If unsure, say N.