1 # SPDX-License-Identifier: GPL-2.0-only
3 # MMC/SD host controller drivers
6 comment "MMC/SD/SDIO Host Controller Drivers"
9 bool "MMC host drivers debugging"
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
18 tristate "ARM AMBA Multimedia Card Interface support"
21 This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
22 Interface (PL180 and PL181) support. If you have an ARM(R)
23 platform with a Multimedia Card slot, say Y or M here.
28 bool "Qualcomm Data Mover for SD Card Controller"
29 depends on MMC_ARMMMCI && QCOM_BAM_DMA
32 This selects the Qualcomm Data Mover lite/local on SD Card controller.
33 This option will enable the dma to work correctly, if you are using
34 Qcom SOCs and MMC, you would probably need this option to get DMA working.
38 config MMC_STM32_SDMMC
39 bool "STMicroelectronics STM32 SDMMC Controller"
40 depends on MMC_ARMMMCI
43 This selects the STMicroelectronics STM32 SDMMC host controller.
44 If you have a STM32 sdmmc host with internal DMA say Y here.
49 tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
52 This selects the Intel(R) PXA(R) Multimedia card Interface.
53 If you have a PXA(R) platform with a Multimedia Card slot,
59 tristate "Secure Digital Host Controller Interface support"
62 This selects the generic Secure Digital Host Controller Interface.
63 It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
64 and Toshiba(R). Most controllers found in laptops are of this type.
66 If you have a controller with this interface, say Y or M here. You
67 also need to enable an appropriate bus interface.
71 config MMC_SDHCI_IO_ACCESSORS
75 This is silent Kconfig symbol that is selected by the drivers that
76 need to overwrite SDHCI IO memory accessors.
78 config MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
81 select MMC_SDHCI_IO_ACCESSORS
83 This option is selected by drivers running on big endian hosts
84 and performing I/O to a SDHCI controller through a bus that
85 implements a hardware byte swapper using a 32-bit datum.
86 This endian mapping mode is called "data invariance" and
87 has the effect of scrambling the addresses and formats of data
88 accessed in sizes other than the datum size.
90 This is the case for the Nintendo Wii SDHCI.
93 tristate "SDHCI support on PCI bus"
94 depends on MMC_SDHCI && PCI
96 select IOSF_MBI if X86
97 select MMC_SDHCI_IO_ACCESSORS
99 This selects the PCI Secure Digital Host Controller Interface.
100 Most controllers found today are PCI devices.
102 If you have a controller with this interface, say Y or M here.
107 bool "Ricoh MMC Controller Disabler"
108 depends on MMC_SDHCI_PCI
111 This adds a pci quirk to disable Ricoh MMC Controller. This
112 proprietary controller is unnecessary because the SDHCI driver
113 supports MMC cards on the SD controller, but if it is not
114 disabled, it will steal the MMC cards away - rendering them
115 useless. It is safe to select this even if you don't
116 have a Ricoh based card reader.
120 config MMC_SDHCI_ACPI
121 tristate "SDHCI support for ACPI enumerated SDHCI controllers"
122 depends on MMC_SDHCI && ACPI && PCI
123 select IOSF_MBI if X86
125 This selects support for ACPI enumerated SDHCI controllers,
126 identified by ACPI Compatibility ID PNP0D40 or specific
129 If you have a controller with this interface, say Y or M here.
133 config MMC_SDHCI_PLTFM
134 tristate "SDHCI platform and OF driver helper"
137 This selects the common helper functions support for Secure Digital
138 Host Controller Interface based platform and OF drivers.
140 If you have a controller with this interface, say Y or M here.
144 config MMC_SDHCI_OF_ARASAN
145 tristate "SDHCI OF support for the Arasan SDHCI controllers"
146 depends on MMC_SDHCI_PLTFM
148 depends on COMMON_CLK
151 This selects the Arasan Secure Digital Host Controller Interface
152 (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC.
154 If you have a controller with this interface, say Y or M here.
158 config MMC_SDHCI_OF_ASPEED
159 tristate "SDHCI OF support for the ASPEED SDHCI controller"
160 depends on ARCH_ASPEED || COMPILE_TEST
161 depends on MMC_SDHCI_PLTFM
162 depends on OF && OF_ADDRESS
163 select MMC_SDHCI_IO_ACCESSORS
165 This selects the ASPEED Secure Digital Host Controller Interface.
167 If you have a controller with this interface, say Y or M here. You
168 also need to enable an appropriate bus interface.
172 config MMC_SDHCI_OF_ASPEED_TEST
173 bool "Tests for the ASPEED SDHCI driver" if !KUNIT_ALL_TESTS
174 depends on MMC_SDHCI_OF_ASPEED && KUNIT
175 depends on (MMC_SDHCI_OF_ASPEED=m || KUNIT=y)
176 default KUNIT_ALL_TESTS
178 Enable KUnit tests for the ASPEED SDHCI driver. Select this
179 option only if you will boot the kernel for the purpose of running
180 unit tests (e.g. under UML or qemu).
182 The KUnit tests generally exercise parts of the driver that do not
183 directly touch the hardware, for example, the phase correction
188 config MMC_SDHCI_OF_AT91
189 tristate "SDHCI OF support for the Atmel SDMMC controller"
190 depends on MMC_SDHCI_PLTFM
191 depends on OF && HAVE_CLK
193 This selects the Atmel SDMMC driver
195 config MMC_SDHCI_OF_ESDHC
196 tristate "SDHCI OF support for the Freescale eSDHC controller"
197 depends on MMC_SDHCI_PLTFM
198 depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
199 select MMC_SDHCI_IO_ACCESSORS
202 This selects the Freescale eSDHC controller support.
204 If you have a controller with this interface, say Y or M here.
208 config MMC_SDHCI_OF_HLWD
209 tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
210 depends on MMC_SDHCI_PLTFM
212 select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
214 This selects the Secure Digital Host Controller Interface (SDHCI)
215 found in the "Hollywood" chipset of the Nintendo Wii video game
218 If you have a controller with this interface, say Y or M here.
222 config MMC_SDHCI_OF_DWCMSHC
223 tristate "SDHCI OF support for the Synopsys DWC MSHC"
224 depends on MMC_SDHCI_PLTFM
226 depends on COMMON_CLK
228 This selects Synopsys DesignWare Cores Mobile Storage Controller
230 If you have a controller with this interface, say Y or M here.
233 config MMC_SDHCI_OF_SPARX5
234 tristate "SDHCI OF support for the MCHP Sparx5 SoC"
235 depends on MMC_SDHCI_PLTFM
236 depends on ARCH_SPARX5 || COMPILE_TEST
238 This selects the Secure Digital Host Controller Interface (SDHCI)
239 found in the MCHP Sparx5 SoC.
241 If you have a Sparx5 SoC with this interface, say Y or M here.
245 config MMC_SDHCI_CADENCE
246 tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller"
247 depends on MMC_SDHCI_PLTFM
250 This selects the Cadence SD/SDIO/eMMC driver.
252 If you have a controller with this interface, say Y or M here.
256 config MMC_SDHCI_CNS3XXX
257 tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
258 depends on ARCH_CNS3XXX || COMPILE_TEST
259 depends on MMC_SDHCI_PLTFM
261 This selects the SDHCI support for CNS3xxx System-on-Chip devices.
263 If you have a controller with this interface, say Y or M here.
267 config MMC_SDHCI_ESDHC_MCF
268 tristate "SDHCI support for the Freescale eSDHC ColdFire controller"
270 depends on MMC_SDHCI_PLTFM
271 select MMC_SDHCI_IO_ACCESSORS
273 This selects the Freescale eSDHC controller support for
274 ColdFire mcf5441x devices.
276 If you have a controller with this interface, say Y or M here.
280 config MMC_SDHCI_ESDHC_IMX
281 tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
282 depends on ARCH_MXC || COMPILE_TEST
283 depends on MMC_SDHCI_PLTFM
285 select MMC_SDHCI_IO_ACCESSORS
288 This selects the Freescale eSDHC/uSDHC controller support
289 found on i.MX25, i.MX35 i.MX5x and i.MX6x.
291 If you have a controller with this interface, say Y or M here.
295 config MMC_SDHCI_DOVE
296 tristate "SDHCI support on Marvell's Dove SoC"
297 depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
298 depends on MMC_SDHCI_PLTFM
299 select MMC_SDHCI_IO_ACCESSORS
301 This selects the Secure Digital Host Controller Interface in
304 If you have a controller with this interface, say Y or M here.
308 config MMC_SDHCI_TEGRA
309 tristate "SDHCI platform support for the Tegra SD/MMC Controller"
310 depends on ARCH_TEGRA || COMPILE_TEST
311 depends on MMC_SDHCI_PLTFM
312 select MMC_SDHCI_IO_ACCESSORS
315 This selects the Tegra SD/MMC controller. If you have a Tegra
316 platform with SD or MMC devices, say Y or M here.
321 tristate "SDHCI support on Samsung S3C/S5P/Exynos SoC"
323 depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
325 This selects the Secure Digital Host Controller Interface (SDHCI)
326 often referrered to as the HSMMC block in some of the Samsung S3C
327 (S3C2416, S3C2443, S3C6410), S5Pv210 and Exynos (Exynso4210,
330 If you have a controller with this interface (thereforeyou build for
331 such Samsung SoC), say Y or M here.
335 config MMC_SDHCI_PXAV3
336 tristate "Marvell MMP2 SD Host Controller support (PXAV3)"
338 depends on MMC_SDHCI_PLTFM
339 depends on ARCH_BERLIN || ARCH_MMP || ARCH_MVEBU || COMPILE_TEST
342 This selects the Marvell(R) PXAV3 SD Host Controller.
343 If you have a MMP2 platform with SD Host Controller
344 and a card slot, say Y or M here.
348 config MMC_SDHCI_PXAV2
349 tristate "Marvell PXA9XX SD Host Controller support (PXAV2)"
351 depends on MMC_SDHCI_PLTFM
352 depends on ARCH_MMP || COMPILE_TEST
355 This selects the Marvell(R) PXAV2 SD Host Controller.
356 If you have a PXA9XX platform with SD Host Controller
357 and a card slot, say Y or M here.
361 config MMC_SDHCI_SPEAR
362 tristate "SDHCI support on ST SPEAr platform"
364 depends on PLAT_SPEAR || COMPILE_TEST
367 This selects the Secure Digital Host Controller Interface (SDHCI)
368 often referrered to as the HSMMC block in some of the ST SPEAR range
371 If you have a controller with this interface, say Y or M here.
375 config MMC_SDHCI_S3C_DMA
376 bool "DMA support on S3C SDHCI"
377 depends on MMC_SDHCI_S3C
379 Enable DMA support on the Samsung S3C SDHCI glue. The DMA
380 has proved to be problematic if the controller encounters
381 certain errors, and thus should be treated with care.
385 config MMC_SDHCI_BCM_KONA
386 tristate "SDHCI support on Broadcom KONA platform"
387 depends on ARCH_BCM_MOBILE || COMPILE_TEST
388 depends on MMC_SDHCI_PLTFM
390 This selects the Broadcom Kona Secure Digital Host Controller
391 Interface(SDHCI) support.
392 This is used in Broadcom mobile SoCs.
394 If you have a controller with this interface, say Y or M here.
396 config MMC_SDHCI_F_SDH30
397 tristate "SDHCI support for Fujitsu Semiconductor F_SDH30"
398 depends on MMC_SDHCI_PLTFM
399 depends on OF || ACPI
401 This selects the Secure Digital Host Controller Interface (SDHCI)
402 Needed by some Fujitsu SoC for MMC / SD / SDIO support.
403 If you have a controller with this interface, say Y or M here.
407 config MMC_SDHCI_MILBEAUT
408 tristate "SDHCI support for Socionext Milbeaut Serieas using F_SDH30"
409 depends on MMC_SDHCI_PLTFM
412 This selects the Secure Digital Host Controller Interface (SDHCI)
413 Needed by Milbeaut SoC for MMC / SD / SDIO support.
414 If you have a controller with this interface, say Y or M here.
418 config MMC_SDHCI_IPROC
419 tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
420 depends on ARCH_BCM2835 || ARCH_BCM_IPROC || ARCH_BRCMSTB || COMPILE_TEST
421 depends on MMC_SDHCI_PLTFM
422 depends on OF || ACPI
423 default ARCH_BCM_IPROC
424 select MMC_SDHCI_IO_ACCESSORS
426 This selects the iProc SD/MMC controller.
428 If you have a BCM2835 or IPROC platform with SD or MMC devices,
434 tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
435 depends on ARCH_MESON|| COMPILE_TEST
436 depends on COMMON_CLK
438 This selects support for the Amlogic SD/MMC Host Controller
439 found on the S905/GX*/AXG family of SoCs. This controller is
440 MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces.
442 If you have a controller with this interface, say Y here.
444 config MMC_MESON_MX_SDHC
445 tristate "Amlogic Meson SDHC Host Controller support"
446 depends on (ARM && ARCH_MESON) || COMPILE_TEST
447 depends on COMMON_CLK
450 This selects support for the SDHC Host Controller on
451 Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs.
452 The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x
453 with 1, 4, and 8 bit bus widths.
455 If you have a controller with this interface, say Y or M here.
458 config MMC_MESON_MX_SDIO
459 tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support"
460 depends on ARCH_MESON || COMPILE_TEST
461 depends on COMMON_CLK
462 depends on OF_ADDRESS
464 This selects support for the SD/MMC Host Controller on
465 Amlogic Meson6, Meson8 and Meson8b SoCs.
467 If you have a controller with this interface, say Y or M here.
471 tristate "MOXART SD/MMC Host Controller support"
472 depends on ARCH_MOXART || COMPILE_TEST
474 This selects support for the MOXART SD/MMC Host Controller.
475 MOXA provides one multi-functional card reader which can
476 be found on some embedded hardware such as UC-7112-LX.
477 If you have a controller with this interface, say Y here.
480 tristate "SDHCI support on STMicroelectronics SoC"
481 depends on ARCH_STI || FSP2 || COMPILE_TEST
482 depends on MMC_SDHCI_PLTFM
483 select MMC_SDHCI_IO_ACCESSORS
485 This selects the Secure Digital Host Controller Interface in
486 STMicroelectronics SoCs.
488 If you have a controller with this interface, say Y or M here.
492 tristate "TI OMAP Multimedia Card Interface support"
494 depends on TPS65010 || !MACH_OMAP_H2
496 This selects the TI OMAP Multimedia card Interface.
497 If you have an OMAP board with a Multimedia Card slot,
503 tristate "TI OMAP High Speed Multimedia Card Interface support"
504 depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
506 This selects the TI OMAP High Speed Multimedia card Interface.
507 If you have an omap2plus board with a Multimedia Card slot,
513 tristate "Winbond W83L51xD SD/MMC Card Interface support"
514 depends on ISA_DMA_API
516 This selects the Winbond(R) W83L51xD Secure digital and
517 Multimedia card Interface.
518 If you have a machine with a integrated W83L518D or W83L519D
519 SD/MMC card reader, say Y or M here.
524 tristate "Alcor Micro/Alcor Link SD/MMC controller"
525 depends on MISC_ALCOR_PCI
527 Say Y here to include driver code to support SD/MMC card interface
528 of Alcor Micro PCI-E card reader
531 tristate "Alchemy AU1XX0 MMC Card Interface support"
532 depends on MIPS_ALCHEMY
534 This selects the AMD Alchemy(R) Multimedia card interface.
535 If you have a Alchemy platform with a MMC slot, say Y or M here.
540 tristate "Atmel SD/MMC Driver (Multimedia Card Interface)"
543 This selects the Atmel Multimedia Card Interface driver.
544 If you have an AT91 platform with a Multimedia Card slot,
550 tristate "Qualcomm SDHCI Controller Support"
551 depends on ARCH_QCOM || COMPILE_TEST
552 depends on MMC_SDHCI_PLTFM
553 select MMC_SDHCI_IO_ACCESSORS
555 select QCOM_SCM if MMC_CRYPTO
557 This selects the Secure Digital Host Controller Interface (SDHCI)
558 support present in Qualcomm SOCs. The controller supports
561 If you have a controller with this interface, say Y or M here.
566 tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
567 depends on ARCH_MXC || PPC_MPC512x
569 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
570 Multimedia Card Interface. If you have an i.MX or MPC512x platform
571 with a Multimedia Card slot, say Y or M here.
576 tristate "Freescale MXS Multimedia Card Interface support"
577 depends on ARCH_MXS && MXS_DMA
579 This selects the Freescale SSP MMC controller found on MXS based
580 platforms like mx23/28.
585 tristate "TI Flash Media MMC/SD Interface support"
589 Say Y here if you want to be able to access MMC/SD cards with
590 the Texas Instruments(R) Flash Media card reader, found in many
592 This option 'selects' (turns on, enables) 'TIFM_CORE', but you
593 probably also need appropriate card reader host adapter, such as
594 'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
597 To compile this driver as a module, choose M here: the
598 module will be called tifm_sd.
601 tristate "Marvell MMC/SD/SDIO host driver"
602 depends on PLAT_ORION || (COMPILE_TEST && ARM)
605 This selects the Marvell SDIO host driver.
606 SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
609 To compile this driver as a module, choose M here: the
610 module will be called mvsdio.
613 tristate "TI DAVINCI Multimedia Card Interface support"
614 depends on ARCH_DAVINCI || COMPILE_TEST
616 This selects the TI DAVINCI Multimedia card Interface.
617 If you have an DAVINCI board with a Multimedia Card slot,
618 say Y or M here. If unsure, say N.
621 tristate "MMC/SD/SDIO over SPI"
622 depends on SPI_MASTER
626 Some systems access MMC/SD/SDIO cards using a SPI controller
627 instead of using a "native" MMC/SD/SDIO controller. This has a
628 disadvantage of being relatively high overhead, but a compensating
629 advantage of working on many systems without dedicated MMC/SD/SDIO
632 If unsure, or if your system has no SPI master driver, say N.
635 tristate "Samsung S3C SD/MMC Card Interface support"
636 depends on ARCH_S3C24XX || COMPILE_TEST
637 depends on S3C24XX_DMAC || COMPILE_TEST
639 This selects a driver for the MCI interface found in
640 Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
641 If you have a board based on one of those and a MMC/SD
642 slot, say Y or M here.
646 config MMC_S3C_HW_SDIO_IRQ
647 bool "Hardware support for SDIO IRQ"
650 Enable the hardware support for SDIO interrupts instead of using
651 the generic polling code.
654 prompt "Samsung S3C SD/MMC transfer code"
658 bool "Use PIO transfers only"
660 Use PIO to transfer data between memory and the hardware.
662 PIO is slower than DMA as it requires CPU instructions to
663 move the data. This has been the traditional default for
667 bool "Use DMA transfers only"
669 Use DMA to transfer data between memory and the hardware.
671 Currently, the DMA support in this driver seems to not be
672 working properly and needs to be debugged before this
677 config MMC_SDRICOH_CS
678 tristate "MMC/SD driver for Ricoh Bay1Controllers"
679 depends on PCI && PCMCIA
681 Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
682 card whenever you insert a MMC or SD card into the card slot.
684 To compile this driver as a module, choose M here: the
685 module will be called sdricoh_cs.
687 config MMC_SDHCI_SPRD
688 tristate "Spreadtrum SDIO host Controller"
689 depends on ARCH_SPRD || COMPILE_TEST
690 depends on MMC_SDHCI_PLTFM
691 select MMC_SDHCI_IO_ACCESSORS
694 This selects the SDIO Host Controller in Spreadtrum
695 SoCs, this driver supports R11(IP version: R11P0).
697 If you have a controller with this interface, say Y or M here.
705 tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
706 depends on MFD_TMIO || MFD_ASIC3 || COMPILE_TEST
709 This provides support for the SD/MMC cell found in TC6393XB,
710 T7L66XB and also HTC ASIC3
713 tristate "Renesas SDHI SD/SDIO controller support"
714 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
716 select RESET_CONTROLLER if ARCH_RENESAS
718 This provides support for the SDHI SD/SDIO controller found in
719 Renesas SuperH, ARM and ARM64 based SoCs
721 config MMC_SDHI_SYS_DMAC
722 tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC"
724 default MMC_SDHI if (SUPERH || ARM)
726 This provides DMA support for SDHI SD/SDIO controllers
727 using SYS-DMAC via DMA Engine. This supports the controllers
728 found in SuperH and Renesas ARM based SoCs.
730 config MMC_SDHI_INTERNAL_DMAC
731 tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering"
732 depends on ARM64 || ARCH_R7S9210 || ARCH_R8A77470 || COMPILE_TEST
734 default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470)
736 This provides DMA support for SDHI SD/SDIO controllers
737 using on-chip bus mastering. This supports the controllers
738 found in arm64 based SoCs. This controller is also found in
742 tristate "UniPhier SD/eMMC Host Controller support"
743 depends on ARCH_UNIPHIER || COMPILE_TEST
747 This provides support for the SD/eMMC controller found in
748 UniPhier SoCs. The eMMC variant of this controller is used
749 only for 32-bit SoCs.
752 tristate "ENE CB710 MMC/SD Interface support"
756 This option enables support for MMC/SD part of ENE CB710/720 Flash
757 memory card reader found in some laptops (ie. some versions of
760 This driver can also be built as a module. If so, the module
761 will be called cb710-mmc.
764 tristate "VIA SD/MMC Card Reader Driver"
767 This selects the VIA SD/MMC Card Reader driver, say Y or M here.
768 VIA provides one multi-functional card reader which integrated into
769 some motherboards manufactured by VIA. This card reader supports
771 If you have a controller with this interface, say Y or M here.
775 config MMC_CAVIUM_OCTEON
776 tristate "Cavium OCTEON SD/MMC Card Interface support"
777 depends on CAVIUM_OCTEON_SOC
779 This selects Cavium OCTEON SD/MMC card Interface.
780 If you have an OCTEON board with a Multimedia Card slot,
785 config MMC_CAVIUM_THUNDERX
786 tristate "Cavium ThunderX SD/MMC Card Interface support"
787 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
788 depends on GPIO_THUNDERX
789 depends on OF_ADDRESS
791 This selects Cavium ThunderX SD/MMC Card Interface.
792 If you have an Cavium ARM64 board with a Multimedia Card slot
793 or builtin eMMC chip say Y or M here. If built as a module
794 the module will be called thunderx_mmc.ko.
797 tristate "Synopsys DesignWare Memory Card Interface"
798 depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST
800 This selects support for the Synopsys DesignWare Mobile Storage IP
801 block, this provides host support for SD and MMC interfaces, in both
802 PIO, internal DMA mode and external DMA mode.
805 tristate "Synopsys Designware MCI Support as platform device"
809 This selects the common helper functions support for Host Controller
810 Interface based platform driver. Please select this option if the IP
811 is present as a platform device. This is the common interface for the
812 Synopsys Designware IP.
814 If you have a controller with this interface, say Y or M here.
818 config MMC_DW_BLUEFIELD
819 tristate "BlueField specific extensions for Synopsys DW Memory Card Interface"
823 This selects support for Mellanox BlueField SoC specific extensions to
824 the Synopsys DesignWare Memory Card Interface driver. Select this
825 option for platforms based on Mellanox BlueField SoC's.
828 tristate "Exynos specific extensions for Synopsys DW Memory Card Interface"
832 This selects support for Samsung Exynos SoC specific extensions to the
833 Synopsys DesignWare Memory Card Interface driver. Select this option
834 for platforms based on Exynos4 and Exynos5 SoC's.
836 config MMC_DW_HI3798CV200
837 tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface"
841 This selects support for HiSilicon Hi3798CV200 SoC specific extensions to the
842 Synopsys DesignWare Memory Card Interface driver. Select this option
843 for platforms based on HiSilicon Hi3798CV200 SoC.
846 tristate "K3 specific extensions for Synopsys DW Memory Card Interface"
850 This selects support for Hisilicon K3 SoC specific extensions to the
851 Synopsys DesignWare Memory Card Interface driver. Select this option
852 for platforms based on Hisilicon K3 SoC's.
855 tristate "Synopsys Designware MCI support on PCI bus"
856 depends on MMC_DW && PCI
858 This selects the PCI bus for the Synopsys Designware Mobile Storage IP.
859 Select this option if the IP is present on PCI platform.
861 If you have a controller with this interface, say Y or M here.
865 config MMC_DW_ROCKCHIP
866 tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface"
867 depends on MMC_DW && ARCH_ROCKCHIP
870 This selects support for Rockchip SoC specific extensions to the
871 Synopsys DesignWare Memory Card Interface driver. Select this option
872 for platforms based on RK3066, RK3188 and RK3288 SoC's.
874 config MMC_DW_STARFIVE
875 tristate "StarFive specific extensions for Synopsys DW Memory Card Interface"
876 depends on SOC_STARFIVE
880 This selects support for StarFive JH7110 SoC specific extensions to the
881 Synopsys DesignWare Memory Card Interface driver. Select this option
882 for platforms based on StarFive JH7110 SoC.
885 tristate "SuperH Internal MMCIF support"
886 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
888 This selects the MMC Host Interface controller (MMCIF) found in various
889 Renesas SoCs for SH and ARM architectures.
893 tristate "Ingenic JZ47xx SD/Multimedia Card Interface support"
896 This selects support for the SD/MMC controller on Ingenic
897 JZ4740, JZ4750, JZ4770 and JZ4780 SoCs.
899 If you have a board based on such a SoC and with a SD/MMC slot,
903 tristate "VUB300 USB to SDIO/SD/MMC Host Controller support"
906 This selects support for Elan Digital Systems' VUB300 chip.
908 The VUB300 is a USB-SDIO Host Controller Interface chip
909 that enables the host computer to use SDIO/SD/MMC cards
910 via a USB 2.0 or USB 1.1 host.
912 The VUB300 chip will be found in both physically separate
913 USB to SDIO/SD/MMC adapters and embedded on some motherboards.
915 The VUB300 chip supports SD and MMC memory cards in addition
916 to single and multifunction SDIO cards.
918 Some SDIO cards will need a firmware file to be loaded and
919 sent to VUB300 chip in order to achieve better data throughput.
920 Download these "Offload Pseudocode" from Elan Digital Systems'
921 web-site http://www.elandigitalsystems.com/support/downloads.php
922 and put them in /lib/firmware. Note that without these additional
923 firmware files the VUB300 chip will still function, but not at
924 the best obtainable data rate.
926 To compile this mmc host controller driver as a module,
927 choose M here: the module will be called vub300.
929 If you have a computer with an embedded VUB300 chip
930 or if you intend connecting a USB adapter based on a
931 VUB300 chip say Y or M here.
934 tristate "USB SD Host Controller (USHC) support"
937 This selects support for USB SD Host Controllers based on
938 the Cypress Astoria chip with firmware compliant with CSR's
939 USB SD Host Controller specification (CS-118793-SP).
941 CSR boards with this device include: USB<>SDIO (M1985v2),
944 Note: These controllers only support SDIO cards and do not
945 support MMC or SD memory cards.
948 tristate "Wondermedia SD/MMC Host Controller support"
949 depends on ARCH_VT8500
952 This selects support for the SD/MMC Host Controller on
953 Wondermedia WM8505/WM8650 based SoCs.
955 To compile this driver as a module, choose M here: the
956 module will be called wmt-sdmmc.
958 config MMC_USDHI6ROL0
959 tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support"
962 This selects support for the Renesas USDHI6ROL0 SD/SDIO
965 config MMC_REALTEK_PCI
966 tristate "Realtek PCI-E SD/MMC Card Interface Driver"
967 depends on MISC_RTSX_PCI
969 Say Y here to include driver code to support SD/MMC card interface
970 of Realtek PCI-E card reader
972 config MMC_REALTEK_USB
973 tristate "Realtek USB SD/MMC Card Interface Driver"
974 depends on MISC_RTSX_USB
976 Say Y here to include driver code to support SD/MMC card interface
977 of Realtek RTS5129/39 series card reader
980 tristate "Allwinner sunxi SD/MMC Host Controller support"
981 depends on ARCH_SUNXI || COMPILE_TEST
984 This selects support for the SD/MMC Host Controller on
985 Allwinner sunxi SoCs.
988 tristate "Command Queue Host Controller Interface support"
991 This selects the Command Queue Host Controller Interface (CQHCI)
992 support present in host controllers of Qualcomm Technologies, Inc
994 This controller supports eMMC devices with command queue support.
996 If you have a controller with this interface, say Y or M here.
1001 tristate "MMC Host Software Queue support"
1003 This selects the MMC Host Software Queue support. This may increase
1004 performance, if the host controller and its driver supports it.
1006 If you have a controller/driver supporting this interface, say Y or M
1011 config MMC_TOSHIBA_PCI
1012 tristate "Toshiba Type A SD/MMC Card Interface Driver"
1016 tristate "Broadcom BCM2835 SDHOST MMC Controller support"
1017 depends on ARCH_BCM2835 || COMPILE_TEST
1019 This selects the BCM2835 SDHOST MMC controller. If you have
1020 a BCM2835 platform with SD or MMC devices, say Y or M here.
1022 Note that the BCM2835 has two SD controllers: The Arasan
1023 sdhci controller (supported by MMC_SDHCI_IPROC) and a custom
1024 sdhost controller (supported by this driver).
1029 tristate "MediaTek SD/MMC Card Interface support"
1031 depends on COMMON_CLK
1035 This selects the MediaTek(R) Secure digital and Multimedia card Interface.
1036 If you have a machine with a integrated SD/MMC card reader, say Y or M here.
1037 This is needed if support for any SD/SDIO/MMC devices is required.
1040 config MMC_SDHCI_MICROCHIP_PIC32
1041 tristate "Microchip PIC32MZDA SDHCI support"
1042 depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM
1044 This selects the Secure Digital Host Controller Interface (SDHCI)
1045 for PIC32MZDA platform.
1047 If you have a controller with this interface, say Y or M here.
1051 config MMC_SDHCI_BRCMSTB
1052 tristate "Broadcom SDIO/SD/MMC support"
1053 depends on ARCH_BRCMSTB || BMIPS_GENERIC
1054 depends on MMC_SDHCI_PLTFM
1058 This selects support for the SDIO/SD/MMC Host Controller on
1063 config MMC_SDHCI_XENON
1064 tristate "Marvell Xenon eMMC/SD/SDIO SDHCI driver"
1065 depends on MMC_SDHCI_PLTFM
1067 This selects Marvell Xenon eMMC/SD/SDIO SDHCI.
1068 If you have a controller with this interface, say Y or M here.
1071 config MMC_SDHCI_OMAP
1072 tristate "TI SDHCI Controller Support"
1073 depends on MMC_SDHCI_PLTFM && OF
1075 imply TI_SOC_THERMAL
1076 select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE
1078 This selects the Secure Digital Host Controller Interface (SDHCI)
1079 support present in TI's DRA7 SOCs. The controller supports
1080 SD/MMC/SDIO devices.
1082 If you have a controller with this interface, say Y or M here.
1086 config MMC_SDHCI_AM654
1087 tristate "Support for the SDHCI Controller in TI's AM654 SOCs"
1088 depends on MMC_SDHCI_PLTFM && OF
1089 select MMC_SDHCI_IO_ACCESSORS
1093 This selects the Secure Digital Host Controller Interface (SDHCI)
1094 support present in TI's AM654 SOCs. The controller supports
1095 SD/MMC/SDIO devices.
1097 If you have a controller with this interface, say Y or M here.
1102 tristate "Actions Semi Owl SD/MMC Host Controller support"
1104 depends on ARCH_ACTIONS || COMPILE_TEST
1106 This selects support for the SD/MMC Host Controller on
1107 Actions Semi Owl SoCs.
1109 config MMC_SDHCI_EXTERNAL_DMA
1113 tristate "LiteX MMC Host Controller support"
1114 depends on ((PPC_MICROWATT || LITEX) && OF && HAVE_CLK) || COMPILE_TEST
1116 select REGULATOR_FIXED_VOLTAGE
1118 This selects support for the MMC Host Controller found in LiteX SoCs.
1120 To compile this driver as a module, choose M here: the
1121 module will be called litex_mmc.