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 MMC_SDHCI_PLTFM
161 depends on OF && OF_ADDRESS
162 select MMC_SDHCI_IO_ACCESSORS
164 This selects the ASPEED Secure Digital Host Controller Interface.
166 If you have a controller with this interface, say Y or M here. You
167 also need to enable an appropriate bus interface.
171 config MMC_SDHCI_OF_ASPEED_TEST
172 bool "Tests for the ASPEED SDHCI driver" if !KUNIT_ALL_TESTS
173 depends on MMC_SDHCI_OF_ASPEED && KUNIT
174 default KUNIT_ALL_TESTS
176 Enable KUnit tests for the ASPEED SDHCI driver. Select this
177 option only if you will boot the kernel for the purpose of running
178 unit tests (e.g. under UML or qemu).
180 The KUnit tests generally exercise parts of the driver that do not
181 directly touch the hardware, for example, the phase correction
186 config MMC_SDHCI_OF_AT91
187 tristate "SDHCI OF support for the Atmel SDMMC controller"
188 depends on MMC_SDHCI_PLTFM
189 depends on OF && HAVE_CLK
191 This selects the Atmel SDMMC driver
193 config MMC_SDHCI_OF_ESDHC
194 tristate "SDHCI OF support for the Freescale eSDHC controller"
195 depends on MMC_SDHCI_PLTFM
196 depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
197 select MMC_SDHCI_IO_ACCESSORS
200 This selects the Freescale eSDHC controller support.
202 If you have a controller with this interface, say Y or M here.
206 config MMC_SDHCI_OF_HLWD
207 tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
208 depends on MMC_SDHCI_PLTFM
210 select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
212 This selects the Secure Digital Host Controller Interface (SDHCI)
213 found in the "Hollywood" chipset of the Nintendo Wii video game
216 If you have a controller with this interface, say Y or M here.
220 config MMC_SDHCI_OF_DWCMSHC
221 tristate "SDHCI OF support for the Synopsys DWC MSHC"
222 depends on MMC_SDHCI_PLTFM
224 depends on COMMON_CLK
226 This selects Synopsys DesignWare Cores Mobile Storage Controller
228 If you have a controller with this interface, say Y or M here.
231 config MMC_SDHCI_OF_SPARX5
232 tristate "SDHCI OF support for the MCHP Sparx5 SoC"
233 depends on MMC_SDHCI_PLTFM
234 depends on ARCH_SPARX5 || COMPILE_TEST
236 This selects the Secure Digital Host Controller Interface (SDHCI)
237 found in the MCHP Sparx5 SoC.
239 If you have a Sparx5 SoC with this interface, say Y or M here.
243 config MMC_SDHCI_CADENCE
244 tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller"
245 depends on MMC_SDHCI_PLTFM
248 This selects the Cadence SD/SDIO/eMMC driver.
250 If you have a controller with this interface, say Y or M here.
254 config MMC_SDHCI_CNS3XXX
255 tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
256 depends on ARCH_CNS3XXX || COMPILE_TEST
257 depends on MMC_SDHCI_PLTFM
259 This selects the SDHCI support for CNS3xxx System-on-Chip devices.
261 If you have a controller with this interface, say Y or M here.
265 config MMC_SDHCI_ESDHC_MCF
266 tristate "SDHCI support for the Freescale eSDHC ColdFire controller"
268 depends on MMC_SDHCI_PLTFM
269 select MMC_SDHCI_IO_ACCESSORS
271 This selects the Freescale eSDHC controller support for
272 ColdFire mcf5441x devices.
274 If you have a controller with this interface, say Y or M here.
278 config MMC_SDHCI_ESDHC_IMX
279 tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
280 depends on ARCH_MXC || COMPILE_TEST
281 depends on MMC_SDHCI_PLTFM
283 select MMC_SDHCI_IO_ACCESSORS
286 This selects the Freescale eSDHC/uSDHC controller support
287 found on i.MX25, i.MX35 i.MX5x and i.MX6x.
289 If you have a controller with this interface, say Y or M here.
293 config MMC_SDHCI_DOVE
294 tristate "SDHCI support on Marvell's Dove SoC"
295 depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
296 depends on MMC_SDHCI_PLTFM
297 select MMC_SDHCI_IO_ACCESSORS
299 This selects the Secure Digital Host Controller Interface in
302 If you have a controller with this interface, say Y or M here.
306 config MMC_SDHCI_TEGRA
307 tristate "SDHCI platform support for the Tegra SD/MMC Controller"
308 depends on ARCH_TEGRA || COMPILE_TEST
309 depends on MMC_SDHCI_PLTFM
310 select MMC_SDHCI_IO_ACCESSORS
313 This selects the Tegra SD/MMC controller. If you have a Tegra
314 platform with SD or MMC devices, say Y or M here.
319 tristate "SDHCI support on Samsung S3C/S5P/Exynos SoC"
321 depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
323 This selects the Secure Digital Host Controller Interface (SDHCI)
324 often referrered to as the HSMMC block in some of the Samsung S3C
325 (S3C2416, S3C2443, S3C6410), S5Pv210 and Exynos (Exynso4210,
328 If you have a controller with this interface (thereforeyou build for
329 such Samsung SoC), say Y or M here.
333 config MMC_SDHCI_PXAV3
334 tristate "Marvell MMP2 SD Host Controller support (PXAV3)"
336 depends on MMC_SDHCI_PLTFM
337 depends on ARCH_BERLIN || ARCH_MMP || ARCH_MVEBU || COMPILE_TEST
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.
346 config MMC_SDHCI_PXAV2
347 tristate "Marvell PXA9XX SD Host Controller support (PXAV2)"
349 depends on MMC_SDHCI_PLTFM
350 depends on ARCH_MMP || COMPILE_TEST
353 This selects the Marvell(R) PXAV2 SD Host Controller.
354 If you have a PXA9XX platform with SD Host Controller
355 and a card slot, say Y or M here.
359 config MMC_SDHCI_SPEAR
360 tristate "SDHCI support on ST SPEAr platform"
362 depends on PLAT_SPEAR || COMPILE_TEST
365 This selects the Secure Digital Host Controller Interface (SDHCI)
366 often referrered to as the HSMMC block in some of the ST SPEAR range
369 If you have a controller with this interface, say Y or M here.
373 config MMC_SDHCI_S3C_DMA
374 bool "DMA support on S3C SDHCI"
375 depends on MMC_SDHCI_S3C
377 Enable DMA support on the Samsung S3C SDHCI glue. The DMA
378 has proved to be problematic if the controller encounters
379 certain errors, and thus should be treated with care.
383 config MMC_SDHCI_BCM_KONA
384 tristate "SDHCI support on Broadcom KONA platform"
385 depends on ARCH_BCM_MOBILE || COMPILE_TEST
386 depends on MMC_SDHCI_PLTFM
388 This selects the Broadcom Kona Secure Digital Host Controller
389 Interface(SDHCI) support.
390 This is used in Broadcom mobile SoCs.
392 If you have a controller with this interface, say Y or M here.
394 config MMC_SDHCI_F_SDH30
395 tristate "SDHCI support for Fujitsu Semiconductor F_SDH30"
396 depends on MMC_SDHCI_PLTFM
397 depends on OF || ACPI
399 This selects the Secure Digital Host Controller Interface (SDHCI)
400 Needed by some Fujitsu SoC for MMC / SD / SDIO support.
401 If you have a controller with this interface, say Y or M here.
405 config MMC_SDHCI_MILBEAUT
406 tristate "SDHCI support for Socionext Milbeaut Serieas using F_SDH30"
407 depends on MMC_SDHCI_PLTFM
410 This selects the Secure Digital Host Controller Interface (SDHCI)
411 Needed by Milbeaut SoC for MMC / SD / SDIO support.
412 If you have a controller with this interface, say Y or M here.
416 config MMC_SDHCI_IPROC
417 tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
418 depends on ARCH_BCM2835 || ARCH_BCM_IPROC || ARCH_BRCMSTB || COMPILE_TEST
419 depends on MMC_SDHCI_PLTFM
420 depends on OF || ACPI
421 default ARCH_BCM_IPROC
422 select MMC_SDHCI_IO_ACCESSORS
424 This selects the iProc SD/MMC controller.
426 If you have a BCM2835 or IPROC platform with SD or MMC devices,
432 tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
433 depends on ARCH_MESON|| COMPILE_TEST
434 depends on COMMON_CLK
436 This selects support for the Amlogic SD/MMC Host Controller
437 found on the S905/GX*/AXG family of SoCs. This controller is
438 MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces.
440 If you have a controller with this interface, say Y here.
442 config MMC_MESON_MX_SDHC
443 tristate "Amlogic Meson SDHC Host Controller support"
444 depends on (ARM && ARCH_MESON) || COMPILE_TEST
445 depends on COMMON_CLK
448 This selects support for the SDHC Host Controller on
449 Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs.
450 The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x
451 with 1, 4, and 8 bit bus widths.
453 If you have a controller with this interface, say Y or M here.
456 config MMC_MESON_MX_SDIO
457 tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support"
458 depends on ARCH_MESON || COMPILE_TEST
459 depends on COMMON_CLK
460 depends on OF_ADDRESS
462 This selects support for the SD/MMC Host Controller on
463 Amlogic Meson6, Meson8 and Meson8b SoCs.
465 If you have a controller with this interface, say Y or M here.
469 tristate "MOXART SD/MMC Host Controller support"
470 depends on ARCH_MOXART || COMPILE_TEST
472 This selects support for the MOXART SD/MMC Host Controller.
473 MOXA provides one multi-functional card reader which can
474 be found on some embedded hardware such as UC-7112-LX.
475 If you have a controller with this interface, say Y here.
478 tristate "SDHCI support on STMicroelectronics SoC"
479 depends on ARCH_STI || FSP2 || COMPILE_TEST
480 depends on MMC_SDHCI_PLTFM
481 select MMC_SDHCI_IO_ACCESSORS
483 This selects the Secure Digital Host Controller Interface in
484 STMicroelectronics SoCs.
486 If you have a controller with this interface, say Y or M here.
490 tristate "TI OMAP Multimedia Card Interface support"
492 depends on TPS65010 || !MACH_OMAP_H2
494 This selects the TI OMAP Multimedia card Interface.
495 If you have an OMAP board with a Multimedia Card slot,
501 tristate "TI OMAP High Speed Multimedia Card Interface support"
502 depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
504 This selects the TI OMAP High Speed Multimedia card Interface.
505 If you have an omap2plus board with a Multimedia Card slot,
511 tristate "Winbond W83L51xD SD/MMC Card Interface support"
512 depends on ISA_DMA_API
514 This selects the Winbond(R) W83L51xD Secure digital and
515 Multimedia card Interface.
516 If you have a machine with a integrated W83L518D or W83L519D
517 SD/MMC card reader, say Y or M here.
522 tristate "Alcor Micro/Alcor Link SD/MMC controller"
523 depends on MISC_ALCOR_PCI
525 Say Y here to include driver code to support SD/MMC card interface
526 of Alcor Micro PCI-E card reader
529 tristate "Alchemy AU1XX0 MMC Card Interface support"
530 depends on MIPS_ALCHEMY
532 This selects the AMD Alchemy(R) Multimedia card interface.
533 If you have a Alchemy platform with a MMC slot, say Y or M here.
538 tristate "Atmel SD/MMC Driver (Multimedia Card Interface)"
541 This selects the Atmel Multimedia Card Interface driver.
542 If you have an AT91 platform with a Multimedia Card slot,
548 tristate "Qualcomm SDHCI Controller Support"
549 depends on ARCH_QCOM || COMPILE_TEST
550 depends on MMC_SDHCI_PLTFM
551 select MMC_SDHCI_IO_ACCESSORS
553 select QCOM_SCM if MMC_CRYPTO
555 This selects the Secure Digital Host Controller Interface (SDHCI)
556 support present in Qualcomm SOCs. The controller supports
559 If you have a controller with this interface, say Y or M here.
564 tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
565 depends on ARCH_MXC || PPC_MPC512x
567 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
568 Multimedia Card Interface. If you have an i.MX or MPC512x platform
569 with a Multimedia Card slot, say Y or M here.
574 tristate "Freescale MXS Multimedia Card Interface support"
575 depends on ARCH_MXS && MXS_DMA
577 This selects the Freescale SSP MMC controller found on MXS based
578 platforms like mx23/28.
583 tristate "TI Flash Media MMC/SD Interface support"
587 Say Y here if you want to be able to access MMC/SD cards with
588 the Texas Instruments(R) Flash Media card reader, found in many
590 This option 'selects' (turns on, enables) 'TIFM_CORE', but you
591 probably also need appropriate card reader host adapter, such as
592 'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
595 To compile this driver as a module, choose M here: the
596 module will be called tifm_sd.
599 tristate "Marvell MMC/SD/SDIO host driver"
600 depends on PLAT_ORION || (COMPILE_TEST && ARM)
603 This selects the Marvell SDIO host driver.
604 SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
607 To compile this driver as a module, choose M here: the
608 module will be called mvsdio.
611 tristate "TI DAVINCI Multimedia Card Interface support"
612 depends on ARCH_DAVINCI || COMPILE_TEST
614 This selects the TI DAVINCI Multimedia card Interface.
615 If you have an DAVINCI board with a Multimedia Card slot,
616 say Y or M here. If unsure, say N.
619 tristate "MMC/SD/SDIO over SPI"
620 depends on SPI_MASTER
624 Some systems access MMC/SD/SDIO cards using a SPI controller
625 instead of using a "native" MMC/SD/SDIO controller. This has a
626 disadvantage of being relatively high overhead, but a compensating
627 advantage of working on many systems without dedicated MMC/SD/SDIO
630 If unsure, or if your system has no SPI master driver, say N.
633 tristate "Samsung S3C SD/MMC Card Interface support"
634 depends on ARCH_S3C24XX || COMPILE_TEST
635 depends on S3C24XX_DMAC || COMPILE_TEST
637 This selects a driver for the MCI interface found in
638 Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
639 If you have a board based on one of those and a MMC/SD
640 slot, say Y or M here.
644 config MMC_S3C_HW_SDIO_IRQ
645 bool "Hardware support for SDIO IRQ"
648 Enable the hardware support for SDIO interrupts instead of using
649 the generic polling code.
652 prompt "Samsung S3C SD/MMC transfer code"
656 bool "Use PIO transfers only"
658 Use PIO to transfer data between memory and the hardware.
660 PIO is slower than DMA as it requires CPU instructions to
661 move the data. This has been the traditional default for
665 bool "Use DMA transfers only"
667 Use DMA to transfer data between memory and the hardware.
669 Currently, the DMA support in this driver seems to not be
670 working properly and needs to be debugged before this
675 config MMC_SDRICOH_CS
676 tristate "MMC/SD driver for Ricoh Bay1Controllers"
677 depends on PCI && PCMCIA
679 Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
680 card whenever you insert a MMC or SD card into the card slot.
682 To compile this driver as a module, choose M here: the
683 module will be called sdricoh_cs.
685 config MMC_SDHCI_SPRD
686 tristate "Spreadtrum SDIO host Controller"
687 depends on ARCH_SPRD || COMPILE_TEST
688 depends on MMC_SDHCI_PLTFM
689 select MMC_SDHCI_IO_ACCESSORS
692 This selects the SDIO Host Controller in Spreadtrum
693 SoCs, this driver supports R11(IP version: R11P0).
695 If you have a controller with this interface, say Y or M here.
703 tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
704 depends on MFD_TMIO || MFD_ASIC3 || COMPILE_TEST
707 This provides support for the SD/MMC cell found in TC6393XB,
708 T7L66XB and also HTC ASIC3
711 tristate "Renesas SDHI SD/SDIO controller support"
712 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
714 select RESET_CONTROLLER if ARCH_RENESAS
716 This provides support for the SDHI SD/SDIO controller found in
717 Renesas SuperH, ARM and ARM64 based SoCs
719 config MMC_SDHI_SYS_DMAC
720 tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC"
722 default MMC_SDHI if (SUPERH || ARM)
724 This provides DMA support for SDHI SD/SDIO controllers
725 using SYS-DMAC via DMA Engine. This supports the controllers
726 found in SuperH and Renesas ARM based SoCs.
728 config MMC_SDHI_INTERNAL_DMAC
729 tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering"
730 depends on ARM64 || ARCH_R7S9210 || ARCH_R8A77470 || COMPILE_TEST
732 default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470)
734 This provides DMA support for SDHI SD/SDIO controllers
735 using on-chip bus mastering. This supports the controllers
736 found in arm64 based SoCs. This controller is also found in
740 tristate "UniPhier SD/eMMC Host Controller support"
741 depends on ARCH_UNIPHIER || COMPILE_TEST
745 This provides support for the SD/eMMC controller found in
746 UniPhier SoCs. The eMMC variant of this controller is used
747 only for 32-bit SoCs.
750 tristate "ENE CB710 MMC/SD Interface support"
754 This option enables support for MMC/SD part of ENE CB710/720 Flash
755 memory card reader found in some laptops (ie. some versions of
758 This driver can also be built as a module. If so, the module
759 will be called cb710-mmc.
762 tristate "VIA SD/MMC Card Reader Driver"
765 This selects the VIA SD/MMC Card Reader driver, say Y or M here.
766 VIA provides one multi-functional card reader which integrated into
767 some motherboards manufactured by VIA. This card reader supports
769 If you have a controller with this interface, say Y or M here.
773 config MMC_CAVIUM_OCTEON
774 tristate "Cavium OCTEON SD/MMC Card Interface support"
775 depends on CAVIUM_OCTEON_SOC
777 This selects Cavium OCTEON SD/MMC card Interface.
778 If you have an OCTEON board with a Multimedia Card slot,
783 config MMC_CAVIUM_THUNDERX
784 tristate "Cavium ThunderX SD/MMC Card Interface support"
785 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
786 depends on GPIO_THUNDERX
787 depends on OF_ADDRESS
789 This selects Cavium ThunderX SD/MMC Card Interface.
790 If you have an Cavium ARM64 board with a Multimedia Card slot
791 or builtin eMMC chip say Y or M here. If built as a module
792 the module will be called thunderx_mmc.ko.
795 tristate "Synopsys DesignWare Memory Card Interface"
796 depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST
798 This selects support for the Synopsys DesignWare Mobile Storage IP
799 block, this provides host support for SD and MMC interfaces, in both
800 PIO, internal DMA mode and external DMA mode.
803 tristate "Synopsys Designware MCI Support as platform device"
807 This selects the common helper functions support for Host Controller
808 Interface based platform driver. Please select this option if the IP
809 is present as a platform device. This is the common interface for the
810 Synopsys Designware IP.
812 If you have a controller with this interface, say Y or M here.
816 config MMC_DW_BLUEFIELD
817 tristate "BlueField specific extensions for Synopsys DW Memory Card Interface"
821 This selects support for Mellanox BlueField SoC specific extensions to
822 the Synopsys DesignWare Memory Card Interface driver. Select this
823 option for platforms based on Mellanox BlueField SoC's.
826 tristate "Exynos specific extensions for Synopsys DW Memory Card Interface"
830 This selects support for Samsung Exynos SoC specific extensions to the
831 Synopsys DesignWare Memory Card Interface driver. Select this option
832 for platforms based on Exynos4 and Exynos5 SoC's.
834 config MMC_DW_HI3798CV200
835 tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface"
839 This selects support for HiSilicon Hi3798CV200 SoC specific extensions to the
840 Synopsys DesignWare Memory Card Interface driver. Select this option
841 for platforms based on HiSilicon Hi3798CV200 SoC.
844 tristate "K3 specific extensions for Synopsys DW Memory Card Interface"
848 This selects support for Hisilicon K3 SoC specific extensions to the
849 Synopsys DesignWare Memory Card Interface driver. Select this option
850 for platforms based on Hisilicon K3 SoC's.
853 tristate "Synopsys Designware MCI support on PCI bus"
854 depends on MMC_DW && PCI
856 This selects the PCI bus for the Synopsys Designware Mobile Storage IP.
857 Select this option if the IP is present on PCI platform.
859 If you have a controller with this interface, say Y or M here.
863 config MMC_DW_ROCKCHIP
864 tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface"
865 depends on MMC_DW && ARCH_ROCKCHIP
868 This selects support for Rockchip SoC specific extensions to the
869 Synopsys DesignWare Memory Card Interface driver. Select this option
870 for platforms based on RK3066, RK3188 and RK3288 SoC's.
873 tristate "SuperH Internal MMCIF support"
874 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
876 This selects the MMC Host Interface controller (MMCIF) found in various
877 Renesas SoCs for SH and ARM architectures.
881 tristate "Ingenic JZ47xx SD/Multimedia Card Interface support"
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,
891 tristate "VUB300 USB to SDIO/SD/MMC Host Controller support"
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.
922 tristate "USB SD Host Controller (USHC) support"
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),
932 Note: These controllers only support SDIO cards and do not
933 support MMC or SD memory cards.
936 tristate "Wondermedia SD/MMC Host Controller support"
937 depends on ARCH_VT8500
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"
950 This selects support for the Renesas USDHI6ROL0 SD/SDIO
953 config MMC_REALTEK_PCI
954 tristate "Realtek PCI-E SD/MMC Card Interface Driver"
955 depends on MISC_RTSX_PCI
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
964 Say Y here to include driver code to support SD/MMC card interface
965 of Realtek RTS5129/39 series card reader
968 tristate "Allwinner sunxi SD/MMC Host Controller support"
969 depends on ARCH_SUNXI || COMPILE_TEST
972 This selects support for the SD/MMC Host Controller on
973 Allwinner sunxi SoCs.
976 tristate "Command Queue Host Controller Interface support"
979 This selects the Command Queue Host Controller Interface (CQHCI)
980 support present in host controllers of Qualcomm Technologies, Inc
982 This controller supports eMMC devices with command queue support.
984 If you have a controller with this interface, say Y or M here.
989 tristate "MMC Host Software Queue support"
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
999 config MMC_TOSHIBA_PCI
1000 tristate "Toshiba Type A SD/MMC Card Interface Driver"
1004 tristate "Broadcom BCM2835 SDHOST MMC Controller support"
1005 depends on ARCH_BCM2835 || COMPILE_TEST
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).
1017 tristate "MediaTek SD/MMC Card Interface support"
1019 depends on COMMON_CLK
1023 This selects the MediaTek(R) Secure digital and Multimedia card Interface.
1024 If you have a machine with a integrated SD/MMC card reader, say Y or M here.
1025 This is needed if support for any SD/SDIO/MMC devices is required.
1028 config MMC_SDHCI_MICROCHIP_PIC32
1029 tristate "Microchip PIC32MZDA SDHCI support"
1030 depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM
1032 This selects the Secure Digital Host Controller Interface (SDHCI)
1033 for PIC32MZDA platform.
1035 If you have a controller with this interface, say Y or M here.
1039 config MMC_SDHCI_BRCMSTB
1040 tristate "Broadcom SDIO/SD/MMC support"
1041 depends on ARCH_BRCMSTB || BMIPS_GENERIC
1042 depends on MMC_SDHCI_PLTFM
1046 This selects support for the SDIO/SD/MMC Host Controller on
1051 config MMC_SDHCI_XENON
1052 tristate "Marvell Xenon eMMC/SD/SDIO SDHCI driver"
1053 depends on MMC_SDHCI_PLTFM
1055 This selects Marvell Xenon eMMC/SD/SDIO SDHCI.
1056 If you have a controller with this interface, say Y or M here.
1059 config MMC_SDHCI_OMAP
1060 tristate "TI SDHCI Controller Support"
1061 depends on MMC_SDHCI_PLTFM && OF
1063 imply TI_SOC_THERMAL
1064 select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE
1066 This selects the Secure Digital Host Controller Interface (SDHCI)
1067 support present in TI's DRA7 SOCs. The controller supports
1068 SD/MMC/SDIO devices.
1070 If you have a controller with this interface, say Y or M here.
1074 config MMC_SDHCI_AM654
1075 tristate "Support for the SDHCI Controller in TI's AM654 SOCs"
1076 depends on MMC_SDHCI_PLTFM && OF && REGMAP_MMIO
1077 select MMC_SDHCI_IO_ACCESSORS
1080 This selects the Secure Digital Host Controller Interface (SDHCI)
1081 support present in TI's AM654 SOCs. The controller supports
1082 SD/MMC/SDIO devices.
1084 If you have a controller with this interface, say Y or M here.
1089 tristate "Actions Semi Owl SD/MMC Host Controller support"
1091 depends on ARCH_ACTIONS || COMPILE_TEST
1093 This selects support for the SD/MMC Host Controller on
1094 Actions Semi Owl SoCs.
1096 config MMC_SDHCI_EXTERNAL_DMA
1100 tristate "LiteX MMC Host Controller support"
1101 depends on ((PPC_MICROWATT || LITEX) && OF && HAVE_CLK) || COMPILE_TEST
1103 select REGULATOR_FIXED_VOLTAGE
1105 This selects support for the MMC Host Controller found in LiteX SoCs.
1107 To compile this driver as a module, choose M here: the
1108 module will be called litex_mmc.