Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # MMC/SD host controller drivers
0004 #
0005 
0006 comment "MMC/SD/SDIO Host Controller Drivers"
0007 
0008 config MMC_DEBUG
0009         bool "MMC host drivers debugging"
0010         depends on MMC != n
0011         help
0012           This is an option for use by developers; most people should
0013           say N here. This enables MMC host driver debugging. And further
0014           added host drivers please don't invent their private macro for
0015           debugging.
0016 
0017 config MMC_ARMMMCI
0018         tristate "ARM AMBA Multimedia Card Interface support"
0019         depends on ARM_AMBA
0020         help
0021           This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
0022           Interface (PL180 and PL181) support.  If you have an ARM(R)
0023           platform with a Multimedia Card slot, say Y or M here.
0024 
0025           If unsure, say N.
0026 
0027 config MMC_QCOM_DML
0028         bool "Qualcomm Data Mover for SD Card Controller"
0029         depends on MMC_ARMMMCI && QCOM_BAM_DMA
0030         default y
0031         help
0032           This selects the Qualcomm Data Mover lite/local on SD Card controller.
0033           This option will enable the dma to work correctly, if you are using
0034           Qcom SOCs and MMC, you would probably need this option to get DMA working.
0035 
0036           if unsure, say N.
0037 
0038 config MMC_STM32_SDMMC
0039         bool "STMicroelectronics STM32 SDMMC Controller"
0040         depends on MMC_ARMMMCI
0041         default y
0042         help
0043           This selects the STMicroelectronics STM32 SDMMC host controller.
0044           If you have a STM32 sdmmc host with internal DMA say Y here.
0045 
0046           If unsure, say N.
0047 
0048 config MMC_PXA
0049         tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
0050         depends on ARCH_PXA
0051         help
0052           This selects the Intel(R) PXA(R) Multimedia card Interface.
0053           If you have a PXA(R) platform with a Multimedia Card slot,
0054           say Y or M here.
0055 
0056           If unsure, say N.
0057 
0058 config MMC_SDHCI
0059         tristate "Secure Digital Host Controller Interface support"
0060         depends on HAS_DMA
0061         help
0062           This selects the generic Secure Digital Host Controller Interface.
0063           It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
0064           and Toshiba(R). Most controllers found in laptops are of this type.
0065 
0066           If you have a controller with this interface, say Y or M here. You
0067           also need to enable an appropriate bus interface.
0068 
0069           If unsure, say N.
0070 
0071 config MMC_SDHCI_IO_ACCESSORS
0072         bool
0073         depends on MMC_SDHCI
0074         help
0075           This is silent Kconfig symbol that is selected by the drivers that
0076           need to overwrite SDHCI IO memory accessors.
0077 
0078 config MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
0079         bool
0080         depends on MMC_SDHCI
0081         select MMC_SDHCI_IO_ACCESSORS
0082         help
0083           This option is selected by drivers running on big endian hosts
0084           and performing I/O to a SDHCI controller through a bus that
0085           implements a hardware byte swapper using a 32-bit datum.
0086           This endian mapping mode is called "data invariance" and
0087           has the effect of scrambling the addresses and formats of data
0088           accessed in sizes other than the datum size.
0089 
0090           This is the case for the Nintendo Wii SDHCI.
0091 
0092 config MMC_SDHCI_PCI
0093         tristate "SDHCI support on PCI bus"
0094         depends on MMC_SDHCI && PCI
0095         select MMC_CQHCI
0096         select IOSF_MBI if X86
0097         select MMC_SDHCI_IO_ACCESSORS
0098         help
0099           This selects the PCI Secure Digital Host Controller Interface.
0100           Most controllers found today are PCI devices.
0101 
0102           If you have a controller with this interface, say Y or M here.
0103 
0104           If unsure, say N.
0105 
0106 config MMC_RICOH_MMC
0107         bool "Ricoh MMC Controller Disabler"
0108         depends on MMC_SDHCI_PCI
0109         default y
0110         help
0111           This adds a pci quirk to disable Ricoh MMC Controller. This
0112           proprietary controller is unnecessary because the SDHCI driver
0113           supports MMC cards on the SD controller, but if it is not
0114           disabled, it will steal the MMC cards away - rendering them
0115           useless. It is safe to select this even if you don't
0116           have a Ricoh based card reader.
0117 
0118           If unsure, say Y.
0119 
0120 config MMC_SDHCI_ACPI
0121         tristate "SDHCI support for ACPI enumerated SDHCI controllers"
0122         depends on MMC_SDHCI && ACPI && PCI
0123         select IOSF_MBI if X86
0124         help
0125           This selects support for ACPI enumerated SDHCI controllers,
0126           identified by ACPI Compatibility ID PNP0D40 or specific
0127           ACPI Hardware IDs.
0128 
0129           If you have a controller with this interface, say Y or M here.
0130 
0131           If unsure, say N.
0132 
0133 config MMC_SDHCI_PLTFM
0134         tristate "SDHCI platform and OF driver helper"
0135         depends on MMC_SDHCI
0136         help
0137           This selects the common helper functions support for Secure Digital
0138           Host Controller Interface based platform and OF drivers.
0139 
0140           If you have a controller with this interface, say Y or M here.
0141 
0142           If unsure, say N.
0143 
0144 config MMC_SDHCI_OF_ARASAN
0145         tristate "SDHCI OF support for the Arasan SDHCI controllers"
0146         depends on MMC_SDHCI_PLTFM
0147         depends on OF
0148         depends on COMMON_CLK
0149         select MMC_CQHCI
0150         help
0151           This selects the Arasan Secure Digital Host Controller Interface
0152           (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC.
0153 
0154           If you have a controller with this interface, say Y or M here.
0155 
0156           If unsure, say N.
0157 
0158 config MMC_SDHCI_OF_ASPEED
0159         tristate "SDHCI OF support for the ASPEED SDHCI controller"
0160         depends on MMC_SDHCI_PLTFM
0161         depends on OF && OF_ADDRESS
0162         select MMC_SDHCI_IO_ACCESSORS
0163         help
0164           This selects the ASPEED Secure Digital Host Controller Interface.
0165 
0166           If you have a controller with this interface, say Y or M here. You
0167           also need to enable an appropriate bus interface.
0168 
0169           If unsure, say N.
0170 
0171 config MMC_SDHCI_OF_ASPEED_TEST
0172         bool "Tests for the ASPEED SDHCI driver" if !KUNIT_ALL_TESTS
0173         depends on MMC_SDHCI_OF_ASPEED && KUNIT
0174         depends on (MMC_SDHCI_OF_ASPEED=m || KUNIT=y)
0175         default KUNIT_ALL_TESTS
0176         help
0177           Enable KUnit tests for the ASPEED SDHCI driver. Select this
0178           option only if you will boot the kernel for the purpose of running
0179           unit tests (e.g. under UML or qemu).
0180 
0181           The KUnit tests generally exercise parts of the driver that do not
0182           directly touch the hardware, for example, the phase correction
0183           calculations.
0184 
0185           If unsure, say N.
0186 
0187 config MMC_SDHCI_OF_AT91
0188         tristate "SDHCI OF support for the Atmel SDMMC controller"
0189         depends on MMC_SDHCI_PLTFM
0190         depends on OF && HAVE_CLK
0191         help
0192           This selects the Atmel SDMMC driver
0193 
0194 config MMC_SDHCI_OF_ESDHC
0195         tristate "SDHCI OF support for the Freescale eSDHC controller"
0196         depends on MMC_SDHCI_PLTFM
0197         depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
0198         select MMC_SDHCI_IO_ACCESSORS
0199         select FSL_GUTS
0200         help
0201           This selects the Freescale eSDHC controller support.
0202 
0203           If you have a controller with this interface, say Y or M here.
0204 
0205           If unsure, say N.
0206 
0207 config MMC_SDHCI_OF_HLWD
0208         tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
0209         depends on MMC_SDHCI_PLTFM
0210         depends on PPC
0211         select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
0212         help
0213           This selects the Secure Digital Host Controller Interface (SDHCI)
0214           found in the "Hollywood" chipset of the Nintendo Wii video game
0215           console.
0216 
0217           If you have a controller with this interface, say Y or M here.
0218 
0219           If unsure, say N.
0220 
0221 config MMC_SDHCI_OF_DWCMSHC
0222         tristate "SDHCI OF support for the Synopsys DWC MSHC"
0223         depends on MMC_SDHCI_PLTFM
0224         depends on OF
0225         depends on COMMON_CLK
0226         help
0227           This selects Synopsys DesignWare Cores Mobile Storage Controller
0228           support.
0229           If you have a controller with this interface, say Y or M here.
0230           If unsure, say N.
0231 
0232 config MMC_SDHCI_OF_SPARX5
0233         tristate "SDHCI OF support for the MCHP Sparx5 SoC"
0234         depends on MMC_SDHCI_PLTFM
0235         depends on ARCH_SPARX5 || COMPILE_TEST
0236         help
0237           This selects the Secure Digital Host Controller Interface (SDHCI)
0238           found in the MCHP Sparx5 SoC.
0239 
0240           If you have a Sparx5 SoC with this interface, say Y or M here.
0241 
0242           If unsure, say N.
0243 
0244 config MMC_SDHCI_CADENCE
0245         tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller"
0246         depends on MMC_SDHCI_PLTFM
0247         depends on OF
0248         help
0249           This selects the Cadence SD/SDIO/eMMC driver.
0250 
0251           If you have a controller with this interface, say Y or M here.
0252 
0253           If unsure, say N.
0254 
0255 config MMC_SDHCI_CNS3XXX
0256         tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
0257         depends on ARCH_CNS3XXX || COMPILE_TEST
0258         depends on MMC_SDHCI_PLTFM
0259         help
0260           This selects the SDHCI support for CNS3xxx System-on-Chip devices.
0261 
0262           If you have a controller with this interface, say Y or M here.
0263 
0264           If unsure, say N.
0265 
0266 config MMC_SDHCI_ESDHC_MCF
0267         tristate "SDHCI support for the Freescale eSDHC ColdFire controller"
0268         depends on M5441x
0269         depends on MMC_SDHCI_PLTFM
0270         select MMC_SDHCI_IO_ACCESSORS
0271         help
0272           This selects the Freescale eSDHC controller support for
0273           ColdFire mcf5441x devices.
0274 
0275           If you have a controller with this interface, say Y or M here.
0276 
0277           If unsure, say N.
0278 
0279 config MMC_SDHCI_ESDHC_IMX
0280         tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
0281         depends on ARCH_MXC || COMPILE_TEST
0282         depends on MMC_SDHCI_PLTFM
0283         depends on OF
0284         select MMC_SDHCI_IO_ACCESSORS
0285         select MMC_CQHCI
0286         help
0287           This selects the Freescale eSDHC/uSDHC controller support
0288           found on i.MX25, i.MX35 i.MX5x and i.MX6x.
0289 
0290           If you have a controller with this interface, say Y or M here.
0291 
0292           If unsure, say N.
0293 
0294 config MMC_SDHCI_DOVE
0295         tristate "SDHCI support on Marvell's Dove SoC"
0296         depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
0297         depends on MMC_SDHCI_PLTFM
0298         select MMC_SDHCI_IO_ACCESSORS
0299         help
0300           This selects the Secure Digital Host Controller Interface in
0301           Marvell's Dove SoC.
0302 
0303           If you have a controller with this interface, say Y or M here.
0304 
0305           If unsure, say N.
0306 
0307 config MMC_SDHCI_TEGRA
0308         tristate "SDHCI platform support for the Tegra SD/MMC Controller"
0309         depends on ARCH_TEGRA || COMPILE_TEST
0310         depends on MMC_SDHCI_PLTFM
0311         select MMC_SDHCI_IO_ACCESSORS
0312         select MMC_CQHCI
0313         help
0314           This selects the Tegra SD/MMC controller. If you have a Tegra
0315           platform with SD or MMC devices, say Y or M here.
0316 
0317           If unsure, say N.
0318 
0319 config MMC_SDHCI_S3C
0320         tristate "SDHCI support on Samsung S3C/S5P/Exynos SoC"
0321         depends on MMC_SDHCI
0322         depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
0323         help
0324           This selects the Secure Digital Host Controller Interface (SDHCI)
0325           often referrered to as the HSMMC block in some of the Samsung S3C
0326           (S3C2416, S3C2443, S3C6410), S5Pv210 and Exynos (Exynso4210,
0327           Exynos4412) SoCs.
0328 
0329           If you have a controller with this interface (thereforeyou build for
0330           such Samsung SoC), say Y or M here.
0331 
0332           If unsure, say N.
0333 
0334 config MMC_SDHCI_PXAV3
0335         tristate "Marvell MMP2 SD Host Controller support (PXAV3)"
0336         depends on HAVE_CLK
0337         depends on MMC_SDHCI_PLTFM
0338         depends on ARCH_BERLIN || ARCH_MMP || ARCH_MVEBU || COMPILE_TEST
0339         default CPU_MMP2
0340         help
0341           This selects the Marvell(R) PXAV3 SD Host Controller.
0342           If you have a MMP2 platform with SD Host Controller
0343           and a card slot, say Y or M here.
0344 
0345           If unsure, say N.
0346 
0347 config MMC_SDHCI_PXAV2
0348         tristate "Marvell PXA9XX SD Host Controller support (PXAV2)"
0349         depends on HAVE_CLK
0350         depends on MMC_SDHCI_PLTFM
0351         depends on ARCH_MMP || COMPILE_TEST
0352         default CPU_PXA910
0353         help
0354           This selects the Marvell(R) PXAV2 SD Host Controller.
0355           If you have a PXA9XX platform with SD Host Controller
0356           and a card slot, say Y or M here.
0357 
0358           If unsure, say N.
0359 
0360 config MMC_SDHCI_SPEAR
0361         tristate "SDHCI support on ST SPEAr platform"
0362         depends on MMC_SDHCI
0363         depends on PLAT_SPEAR || COMPILE_TEST
0364         depends on OF
0365         help
0366           This selects the Secure Digital Host Controller Interface (SDHCI)
0367           often referrered to as the HSMMC block in some of the ST SPEAR range
0368           of SoC
0369 
0370           If you have a controller with this interface, say Y or M here.
0371 
0372           If unsure, say N.
0373 
0374 config MMC_SDHCI_S3C_DMA
0375         bool "DMA support on S3C SDHCI"
0376         depends on MMC_SDHCI_S3C
0377         help
0378           Enable DMA support on the Samsung S3C SDHCI glue. The DMA
0379           has proved to be problematic if the controller encounters
0380           certain errors, and thus should be treated with care.
0381 
0382           YMMV.
0383 
0384 config MMC_SDHCI_BCM_KONA
0385         tristate "SDHCI support on Broadcom KONA platform"
0386         depends on ARCH_BCM_MOBILE || COMPILE_TEST
0387         depends on MMC_SDHCI_PLTFM
0388         help
0389           This selects the Broadcom Kona Secure Digital Host Controller
0390           Interface(SDHCI) support.
0391           This is used in Broadcom mobile SoCs.
0392 
0393           If you have a controller with this interface, say Y or M here.
0394 
0395 config MMC_SDHCI_F_SDH30
0396         tristate "SDHCI support for Fujitsu Semiconductor F_SDH30"
0397         depends on MMC_SDHCI_PLTFM
0398         depends on OF || ACPI
0399         help
0400           This selects the Secure Digital Host Controller Interface (SDHCI)
0401           Needed by some Fujitsu SoC for MMC / SD / SDIO support.
0402           If you have a controller with this interface, say Y or M here.
0403 
0404           If unsure, say N.
0405 
0406 config MMC_SDHCI_MILBEAUT
0407         tristate "SDHCI support for Socionext Milbeaut Serieas using F_SDH30"
0408         depends on MMC_SDHCI_PLTFM
0409         depends on OF
0410         help
0411           This selects the Secure Digital Host Controller Interface (SDHCI)
0412           Needed by Milbeaut SoC for MMC / SD / SDIO support.
0413           If you have a controller with this interface, say Y or M here.
0414 
0415           If unsure, say N.
0416 
0417 config MMC_SDHCI_IPROC
0418         tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
0419         depends on ARCH_BCM2835 || ARCH_BCM_IPROC || ARCH_BRCMSTB || COMPILE_TEST
0420         depends on MMC_SDHCI_PLTFM
0421         depends on OF || ACPI
0422         default ARCH_BCM_IPROC
0423         select MMC_SDHCI_IO_ACCESSORS
0424         help
0425           This selects the iProc SD/MMC controller.
0426 
0427           If you have a BCM2835 or IPROC platform with SD or MMC devices,
0428           say Y or M here.
0429 
0430           If unsure, say N.
0431 
0432 config MMC_MESON_GX
0433         tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
0434         depends on ARCH_MESON|| COMPILE_TEST
0435         depends on COMMON_CLK
0436         help
0437           This selects support for the Amlogic SD/MMC Host Controller
0438           found on the S905/GX*/AXG family of SoCs.  This controller is
0439           MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces.
0440 
0441           If you have a controller with this interface, say Y here.
0442 
0443 config MMC_MESON_MX_SDHC
0444         tristate "Amlogic Meson SDHC Host Controller support"
0445         depends on (ARM && ARCH_MESON) || COMPILE_TEST
0446         depends on COMMON_CLK
0447         depends on OF
0448         help
0449           This selects support for the SDHC Host Controller on
0450           Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs.
0451           The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x
0452           with 1, 4, and 8 bit bus widths.
0453 
0454           If you have a controller with this interface, say Y or M here.
0455           If unsure, say N.
0456 
0457 config MMC_MESON_MX_SDIO
0458         tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support"
0459         depends on ARCH_MESON || COMPILE_TEST
0460         depends on COMMON_CLK
0461         depends on OF_ADDRESS
0462         help
0463           This selects support for the SD/MMC Host Controller on
0464           Amlogic Meson6, Meson8 and Meson8b SoCs.
0465 
0466           If you have a controller with this interface, say Y or M here.
0467           If unsure, say N.
0468 
0469 config MMC_MOXART
0470         tristate "MOXART SD/MMC Host Controller support"
0471         depends on ARCH_MOXART || COMPILE_TEST
0472         help
0473           This selects support for the MOXART SD/MMC Host Controller.
0474           MOXA provides one multi-functional card reader which can
0475           be found on some embedded hardware such as UC-7112-LX.
0476           If you have a controller with this interface, say Y here.
0477 
0478 config MMC_SDHCI_ST
0479         tristate "SDHCI support on STMicroelectronics SoC"
0480         depends on ARCH_STI || FSP2 || COMPILE_TEST
0481         depends on MMC_SDHCI_PLTFM
0482         select MMC_SDHCI_IO_ACCESSORS
0483         help
0484           This selects the Secure Digital Host Controller Interface in
0485           STMicroelectronics SoCs.
0486 
0487           If you have a controller with this interface, say Y or M here.
0488           If unsure, say N.
0489 
0490 config MMC_OMAP
0491         tristate "TI OMAP Multimedia Card Interface support"
0492         depends on ARCH_OMAP
0493         depends on TPS65010 || !MACH_OMAP_H2
0494         help
0495           This selects the TI OMAP Multimedia card Interface.
0496           If you have an OMAP board with a Multimedia Card slot,
0497           say Y or M here.
0498 
0499           If unsure, say N.
0500 
0501 config MMC_OMAP_HS
0502         tristate "TI OMAP High Speed Multimedia Card Interface support"
0503         depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
0504         help
0505           This selects the TI OMAP High Speed Multimedia card Interface.
0506           If you have an omap2plus board with a Multimedia Card slot,
0507           say Y or M here.
0508 
0509           If unsure, say N.
0510 
0511 config MMC_WBSD
0512         tristate "Winbond W83L51xD SD/MMC Card Interface support"
0513         depends on ISA_DMA_API
0514         help
0515           This selects the Winbond(R) W83L51xD Secure digital and
0516           Multimedia card Interface.
0517           If you have a machine with a integrated W83L518D or W83L519D
0518           SD/MMC card reader, say Y or M here.
0519 
0520           If unsure, say N.
0521 
0522 config MMC_ALCOR
0523         tristate "Alcor Micro/Alcor Link SD/MMC controller"
0524         depends on MISC_ALCOR_PCI
0525         help
0526           Say Y here to include driver code to support SD/MMC card interface
0527           of Alcor Micro PCI-E card reader
0528 
0529 config MMC_AU1X
0530         tristate "Alchemy AU1XX0 MMC Card Interface support"
0531         depends on MIPS_ALCHEMY
0532         help
0533           This selects the AMD Alchemy(R) Multimedia card interface.
0534           If you have a Alchemy platform with a MMC slot, say Y or M here.
0535 
0536           If unsure, say N.
0537 
0538 config MMC_ATMELMCI
0539         tristate "Atmel SD/MMC Driver (Multimedia Card Interface)"
0540         depends on ARCH_AT91
0541         help
0542           This selects the Atmel Multimedia Card Interface driver.
0543           If you have an AT91 platform with a Multimedia Card slot,
0544           say Y or M here.
0545 
0546           If unsure, say N.
0547 
0548 config MMC_SDHCI_MSM
0549         tristate "Qualcomm SDHCI Controller Support"
0550         depends on ARCH_QCOM || COMPILE_TEST
0551         depends on MMC_SDHCI_PLTFM
0552         select MMC_SDHCI_IO_ACCESSORS
0553         select MMC_CQHCI
0554         select QCOM_SCM if MMC_CRYPTO
0555         help
0556           This selects the Secure Digital Host Controller Interface (SDHCI)
0557           support present in Qualcomm SOCs. The controller supports
0558           SD/MMC/SDIO devices.
0559 
0560           If you have a controller with this interface, say Y or M here.
0561 
0562           If unsure, say N.
0563 
0564 config MMC_MXC
0565         tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
0566         depends on ARCH_MXC || PPC_MPC512x
0567         help
0568           This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
0569           Multimedia Card Interface. If you have an i.MX or MPC512x platform
0570           with a Multimedia Card slot, say Y or M here.
0571 
0572           If unsure, say N.
0573 
0574 config MMC_MXS
0575         tristate "Freescale MXS Multimedia Card Interface support"
0576         depends on ARCH_MXS && MXS_DMA
0577         help
0578           This selects the Freescale SSP MMC controller found on MXS based
0579           platforms like mx23/28.
0580 
0581           If unsure, say N.
0582 
0583 config MMC_TIFM_SD
0584         tristate "TI Flash Media MMC/SD Interface support"
0585         depends on PCI
0586         select TIFM_CORE
0587         help
0588           Say Y here if you want to be able to access MMC/SD cards with
0589           the Texas Instruments(R) Flash Media card reader, found in many
0590           laptops.
0591           This option 'selects' (turns on, enables) 'TIFM_CORE', but you
0592           probably also need appropriate card reader host adapter, such as
0593           'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
0594           (TIFM_7XX1)'.
0595 
0596           To compile this driver as a module, choose M here: the
0597           module will be called tifm_sd.
0598 
0599 config MMC_MVSDIO
0600         tristate "Marvell MMC/SD/SDIO host driver"
0601         depends on PLAT_ORION || (COMPILE_TEST && ARM)
0602         depends on OF
0603         help
0604           This selects the Marvell SDIO host driver.
0605           SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
0606           SoC controllers.
0607 
0608           To compile this driver as a module, choose M here: the
0609           module will be called mvsdio.
0610 
0611 config MMC_DAVINCI
0612         tristate "TI DAVINCI Multimedia Card Interface support"
0613         depends on ARCH_DAVINCI || COMPILE_TEST
0614         help
0615           This selects the TI DAVINCI Multimedia card Interface.
0616           If you have an DAVINCI board with a Multimedia Card slot,
0617           say Y or M here.  If unsure, say N.
0618 
0619 config MMC_SPI
0620         tristate "MMC/SD/SDIO over SPI"
0621         depends on SPI_MASTER
0622         select CRC7
0623         select CRC_ITU_T
0624         help
0625           Some systems access MMC/SD/SDIO cards using a SPI controller
0626           instead of using a "native" MMC/SD/SDIO controller.  This has a
0627           disadvantage of being relatively high overhead, but a compensating
0628           advantage of working on many systems without dedicated MMC/SD/SDIO
0629           controllers.
0630 
0631           If unsure, or if your system has no SPI master driver, say N.
0632 
0633 config MMC_S3C
0634         tristate "Samsung S3C SD/MMC Card Interface support"
0635         depends on ARCH_S3C24XX || COMPILE_TEST
0636         depends on S3C24XX_DMAC || COMPILE_TEST
0637         help
0638           This selects a driver for the MCI interface found in
0639           Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
0640           If you have a board based on one of those and a MMC/SD
0641           slot, say Y or M here.
0642 
0643           If unsure, say N.
0644 
0645 config MMC_S3C_HW_SDIO_IRQ
0646         bool "Hardware support for SDIO IRQ"
0647         depends on MMC_S3C
0648         help
0649           Enable the hardware support for SDIO interrupts instead of using
0650           the generic polling code.
0651 
0652 choice
0653         prompt "Samsung S3C SD/MMC transfer code"
0654         depends on MMC_S3C
0655 
0656 config MMC_S3C_PIO
0657         bool "Use PIO transfers only"
0658         help
0659           Use PIO to transfer data between memory and the hardware.
0660 
0661           PIO is slower than DMA as it requires CPU instructions to
0662           move the data. This has been the traditional default for
0663           the S3C MCI driver.
0664 
0665 config MMC_S3C_DMA
0666         bool "Use DMA transfers only"
0667         help
0668           Use DMA to transfer data between memory and the hardware.
0669 
0670           Currently, the DMA support in this driver seems to not be
0671           working properly and needs to be debugged before this
0672           option is useful.
0673 
0674 endchoice
0675 
0676 config MMC_SDRICOH_CS
0677         tristate "MMC/SD driver for Ricoh Bay1Controllers"
0678         depends on PCI && PCMCIA
0679         help
0680           Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
0681           card whenever you insert a MMC or SD card into the card slot.
0682 
0683           To compile this driver as a module, choose M here: the
0684           module will be called sdricoh_cs.
0685 
0686 config MMC_SDHCI_SPRD
0687         tristate "Spreadtrum SDIO host Controller"
0688         depends on ARCH_SPRD || COMPILE_TEST
0689         depends on MMC_SDHCI_PLTFM
0690         select MMC_SDHCI_IO_ACCESSORS
0691         select MMC_HSQ
0692         help
0693           This selects the SDIO Host Controller in Spreadtrum
0694           SoCs, this driver supports R11(IP version: R11P0).
0695 
0696           If you have a controller with this interface, say Y or M here.
0697 
0698           If unsure, say N.
0699 
0700 config MMC_TMIO_CORE
0701         tristate
0702 
0703 config MMC_TMIO
0704         tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
0705         depends on MFD_TMIO || MFD_ASIC3 || COMPILE_TEST
0706         select MMC_TMIO_CORE
0707         help
0708           This provides support for the SD/MMC cell found in TC6393XB,
0709           T7L66XB and also HTC ASIC3
0710 
0711 config MMC_SDHI
0712         tristate "Renesas SDHI SD/SDIO controller support"
0713         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
0714         select MMC_TMIO_CORE
0715         select RESET_CONTROLLER if ARCH_RENESAS
0716         help
0717           This provides support for the SDHI SD/SDIO controller found in
0718           Renesas SuperH, ARM and ARM64 based SoCs
0719 
0720 config MMC_SDHI_SYS_DMAC
0721         tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC"
0722         depends on MMC_SDHI
0723         default MMC_SDHI if (SUPERH || ARM)
0724         help
0725           This provides DMA support for SDHI SD/SDIO controllers
0726           using SYS-DMAC via DMA Engine. This supports the controllers
0727           found in SuperH and Renesas ARM based SoCs.
0728 
0729 config MMC_SDHI_INTERNAL_DMAC
0730         tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering"
0731         depends on ARM64 || ARCH_R7S9210 || ARCH_R8A77470 || COMPILE_TEST
0732         depends on MMC_SDHI
0733         default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470)
0734         help
0735           This provides DMA support for SDHI SD/SDIO controllers
0736           using on-chip bus mastering. This supports the controllers
0737           found in arm64 based SoCs. This controller is also found in
0738           some RZ family SoCs.
0739 
0740 config MMC_UNIPHIER
0741         tristate "UniPhier SD/eMMC Host Controller support"
0742         depends on ARCH_UNIPHIER || COMPILE_TEST
0743         depends on OF
0744         select MMC_TMIO_CORE
0745         help
0746           This provides support for the SD/eMMC controller found in
0747           UniPhier SoCs. The eMMC variant of this controller is used
0748           only for 32-bit SoCs.
0749 
0750 config MMC_CB710
0751         tristate "ENE CB710 MMC/SD Interface support"
0752         depends on PCI
0753         select CB710_CORE
0754         help
0755           This option enables support for MMC/SD part of ENE CB710/720 Flash
0756           memory card reader found in some laptops (ie. some versions of
0757           HP Compaq nx9500).
0758 
0759           This driver can also be built as a module. If so, the module
0760           will be called cb710-mmc.
0761 
0762 config MMC_VIA_SDMMC
0763         tristate "VIA SD/MMC Card Reader Driver"
0764         depends on PCI
0765         help
0766           This selects the VIA SD/MMC Card Reader driver, say Y or M here.
0767           VIA provides one multi-functional card reader which integrated into
0768           some motherboards manufactured by VIA. This card reader supports
0769           SD/MMC/SDHC.
0770           If you have a controller with this interface, say Y or M here.
0771 
0772           If unsure, say N.
0773 
0774 config MMC_CAVIUM_OCTEON
0775         tristate "Cavium OCTEON SD/MMC Card Interface support"
0776         depends on CAVIUM_OCTEON_SOC
0777         help
0778           This selects Cavium OCTEON SD/MMC card Interface.
0779           If you have an OCTEON board with a Multimedia Card slot,
0780           say Y or M here.
0781 
0782           If unsure, say N.
0783 
0784 config MMC_CAVIUM_THUNDERX
0785         tristate "Cavium ThunderX SD/MMC Card Interface support"
0786         depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
0787         depends on GPIO_THUNDERX
0788         depends on OF_ADDRESS
0789         help
0790           This selects Cavium ThunderX SD/MMC Card Interface.
0791           If you have an Cavium ARM64 board with a Multimedia Card slot
0792           or builtin eMMC chip say Y or M here. If built as a module
0793           the module will be called thunderx_mmc.ko.
0794 
0795 config MMC_DW
0796         tristate "Synopsys DesignWare Memory Card Interface"
0797         depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST
0798         help
0799           This selects support for the Synopsys DesignWare Mobile Storage IP
0800           block, this provides host support for SD and MMC interfaces, in both
0801           PIO, internal DMA mode and external DMA mode.
0802 
0803 config MMC_DW_PLTFM
0804         tristate "Synopsys Designware MCI Support as platform device"
0805         depends on MMC_DW
0806         default y
0807         help
0808           This selects the common helper functions support for Host Controller
0809           Interface based platform driver. Please select this option if the IP
0810           is present as a platform device. This is the common interface for the
0811           Synopsys Designware IP.
0812 
0813           If you have a controller with this interface, say Y or M here.
0814 
0815           If unsure, say Y.
0816 
0817 config MMC_DW_BLUEFIELD
0818         tristate "BlueField specific extensions for Synopsys DW Memory Card Interface"
0819         depends on MMC_DW
0820         select MMC_DW_PLTFM
0821         help
0822           This selects support for Mellanox BlueField SoC specific extensions to
0823           the Synopsys DesignWare Memory Card Interface driver. Select this
0824           option for platforms based on Mellanox BlueField SoC's.
0825 
0826 config MMC_DW_EXYNOS
0827         tristate "Exynos specific extensions for Synopsys DW Memory Card Interface"
0828         depends on MMC_DW
0829         select MMC_DW_PLTFM
0830         help
0831           This selects support for Samsung Exynos SoC specific extensions to the
0832           Synopsys DesignWare Memory Card Interface driver. Select this option
0833           for platforms based on Exynos4 and Exynos5 SoC's.
0834 
0835 config MMC_DW_HI3798CV200
0836         tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface"
0837         depends on MMC_DW
0838         select MMC_DW_PLTFM
0839         help
0840           This selects support for HiSilicon Hi3798CV200 SoC specific extensions to the
0841           Synopsys DesignWare Memory Card Interface driver. Select this option
0842           for platforms based on HiSilicon Hi3798CV200 SoC.
0843 
0844 config MMC_DW_K3
0845         tristate "K3 specific extensions for Synopsys DW Memory Card Interface"
0846         depends on MMC_DW
0847         select MMC_DW_PLTFM
0848         help
0849           This selects support for Hisilicon K3 SoC specific extensions to the
0850           Synopsys DesignWare Memory Card Interface driver. Select this option
0851           for platforms based on Hisilicon K3 SoC's.
0852 
0853 config MMC_DW_PCI
0854         tristate "Synopsys Designware MCI support on PCI bus"
0855         depends on MMC_DW && PCI
0856         help
0857           This selects the PCI bus for the Synopsys Designware Mobile Storage IP.
0858           Select this option if the IP is present on PCI platform.
0859 
0860           If you have a controller with this interface, say Y or M here.
0861 
0862           If unsure, say N.
0863 
0864 config MMC_DW_ROCKCHIP
0865         tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface"
0866         depends on MMC_DW && ARCH_ROCKCHIP
0867         select MMC_DW_PLTFM
0868         help
0869           This selects support for Rockchip SoC specific extensions to the
0870           Synopsys DesignWare Memory Card Interface driver. Select this option
0871           for platforms based on RK3066, RK3188 and RK3288 SoC's.
0872 
0873 config MMC_SH_MMCIF
0874         tristate "SuperH Internal MMCIF support"
0875         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
0876         help
0877           This selects the MMC Host Interface controller (MMCIF) found in various
0878           Renesas SoCs for SH and ARM architectures.
0879 
0880 
0881 config MMC_JZ4740
0882         tristate "Ingenic JZ47xx SD/Multimedia Card Interface support"
0883         depends on MIPS
0884         help
0885           This selects support for the SD/MMC controller on Ingenic
0886           JZ4740, JZ4750, JZ4770 and JZ4780 SoCs.
0887 
0888           If you have a board based on such a SoC and with a SD/MMC slot,
0889           say Y or M here.
0890 
0891 config MMC_VUB300
0892         tristate "VUB300 USB to SDIO/SD/MMC Host Controller support"
0893         depends on USB
0894         help
0895           This selects support for Elan Digital Systems' VUB300 chip.
0896 
0897           The VUB300 is a USB-SDIO Host Controller Interface chip
0898           that enables the host computer to use SDIO/SD/MMC cards
0899           via a USB 2.0 or USB 1.1 host.
0900 
0901           The VUB300 chip will be found in both physically separate
0902           USB to SDIO/SD/MMC adapters and embedded on some motherboards.
0903 
0904           The VUB300 chip supports SD and MMC memory cards in addition
0905           to single and multifunction SDIO cards.
0906 
0907           Some SDIO cards will need a firmware file to be loaded and
0908           sent to VUB300 chip in order to achieve better data throughput.
0909           Download these "Offload Pseudocode" from Elan Digital Systems'
0910           web-site http://www.elandigitalsystems.com/support/downloads.php
0911           and put them in /lib/firmware. Note that without these additional
0912           firmware files the VUB300 chip will still function, but not at
0913           the best obtainable data rate.
0914 
0915           To compile this mmc host controller driver as a module,
0916           choose M here: the module will be called vub300.
0917 
0918           If you have a computer with an embedded VUB300 chip
0919           or if you intend connecting a USB adapter based on a
0920           VUB300 chip say Y or M here.
0921 
0922 config MMC_USHC
0923         tristate "USB SD Host Controller (USHC) support"
0924         depends on USB
0925         help
0926           This selects support for USB SD Host Controllers based on
0927           the Cypress Astoria chip with firmware compliant with CSR's
0928           USB SD Host Controller specification (CS-118793-SP).
0929 
0930           CSR boards with this device include: USB<>SDIO (M1985v2),
0931           and Ultrasira.
0932 
0933           Note: These controllers only support SDIO cards and do not
0934           support MMC or SD memory cards.
0935 
0936 config MMC_WMT
0937         tristate "Wondermedia SD/MMC Host Controller support"
0938         depends on ARCH_VT8500
0939         default y
0940         help
0941           This selects support for the SD/MMC Host Controller on
0942           Wondermedia WM8505/WM8650 based SoCs.
0943 
0944           To compile this driver as a module, choose M here: the
0945           module will be called wmt-sdmmc.
0946 
0947 config MMC_USDHI6ROL0
0948         tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support"
0949         depends on HAS_DMA
0950         help
0951           This selects support for the Renesas USDHI6ROL0 SD/SDIO
0952           Host Controller
0953 
0954 config MMC_REALTEK_PCI
0955         tristate "Realtek PCI-E SD/MMC Card Interface Driver"
0956         depends on MISC_RTSX_PCI
0957         help
0958           Say Y here to include driver code to support SD/MMC card interface
0959           of Realtek PCI-E card reader
0960 
0961 config MMC_REALTEK_USB
0962         tristate "Realtek USB SD/MMC Card Interface Driver"
0963         depends on MISC_RTSX_USB
0964         help
0965           Say Y here to include driver code to support SD/MMC card interface
0966           of Realtek RTS5129/39 series card reader
0967 
0968 config MMC_SUNXI
0969         tristate "Allwinner sunxi SD/MMC Host Controller support"
0970         depends on ARCH_SUNXI || COMPILE_TEST
0971         depends on SUNXI_CCU
0972         help
0973           This selects support for the SD/MMC Host Controller on
0974           Allwinner sunxi SoCs.
0975 
0976 config MMC_CQHCI
0977         tristate "Command Queue Host Controller Interface support"
0978         depends on HAS_DMA
0979         help
0980           This selects the Command Queue Host Controller Interface (CQHCI)
0981           support present in host controllers of Qualcomm Technologies, Inc
0982           amongst others.
0983           This controller supports eMMC devices with command queue support.
0984 
0985           If you have a controller with this interface, say Y or M here.
0986 
0987           If unsure, say N.
0988 
0989 config MMC_HSQ
0990         tristate "MMC Host Software Queue support"
0991         help
0992           This selects the MMC Host Software Queue support. This may increase
0993           performance, if the host controller and its driver supports it.
0994 
0995           If you have a controller/driver supporting this interface, say Y or M
0996           here.
0997 
0998           If unsure, say N.
0999 
1000 config MMC_TOSHIBA_PCI
1001         tristate "Toshiba Type A SD/MMC Card Interface Driver"
1002         depends on PCI
1003 
1004 config MMC_BCM2835
1005         tristate "Broadcom BCM2835 SDHOST MMC Controller support"
1006         depends on ARCH_BCM2835 || COMPILE_TEST
1007         help
1008           This selects the BCM2835 SDHOST MMC controller. If you have
1009           a BCM2835 platform with SD or MMC devices, say Y or M here.
1010 
1011           Note that the BCM2835 has two SD controllers: The Arasan
1012           sdhci controller (supported by MMC_SDHCI_IPROC) and a custom
1013           sdhost controller (supported by this driver).
1014 
1015           If unsure, say N.
1016 
1017 config MMC_MTK
1018         tristate "MediaTek SD/MMC Card Interface support"
1019         depends on HAS_DMA
1020         depends on COMMON_CLK
1021         select REGULATOR
1022         select MMC_CQHCI
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.
1028 
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.
1035 
1036           If you have a controller with this interface, say Y or M here.
1037 
1038           If unsure, say N.
1039 
1040 config MMC_SDHCI_BRCMSTB
1041         tristate "Broadcom SDIO/SD/MMC support"
1042         depends on ARCH_BRCMSTB || BMIPS_GENERIC
1043         depends on MMC_SDHCI_PLTFM
1044         select MMC_CQHCI
1045         default y
1046         help
1047           This selects support for the SDIO/SD/MMC Host Controller on
1048           Broadcom STB SoCs.
1049 
1050           If unsure, say Y.
1051 
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.
1059 
1060 config MMC_SDHCI_OMAP
1061         tristate "TI SDHCI Controller Support"
1062         depends on MMC_SDHCI_PLTFM && OF
1063         select THERMAL
1064         imply TI_SOC_THERMAL
1065         select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE
1066         help
1067           This selects the Secure Digital Host Controller Interface (SDHCI)
1068           support present in TI's DRA7 SOCs. The controller supports
1069           SD/MMC/SDIO devices.
1070 
1071           If you have a controller with this interface, say Y or M here.
1072 
1073           If unsure, say N.
1074 
1075 config MMC_SDHCI_AM654
1076         tristate "Support for the SDHCI Controller in TI's AM654 SOCs"
1077         depends on MMC_SDHCI_PLTFM && OF && REGMAP_MMIO
1078         select MMC_SDHCI_IO_ACCESSORS
1079         select MMC_CQHCI
1080         help
1081           This selects the Secure Digital Host Controller Interface (SDHCI)
1082           support present in TI's AM654 SOCs. The controller supports
1083           SD/MMC/SDIO devices.
1084 
1085           If you have a controller with this interface, say Y or M here.
1086 
1087           If unsure, say N.
1088 
1089 config MMC_OWL
1090         tristate "Actions Semi Owl SD/MMC Host Controller support"
1091         depends on HAS_DMA
1092         depends on ARCH_ACTIONS || COMPILE_TEST
1093         help
1094           This selects support for the SD/MMC Host Controller on
1095           Actions Semi Owl SoCs.
1096 
1097 config MMC_SDHCI_EXTERNAL_DMA
1098         bool
1099 
1100 config MMC_LITEX
1101         tristate "LiteX MMC Host Controller support"
1102         depends on ((PPC_MICROWATT || LITEX) && OF && HAVE_CLK) || COMPILE_TEST
1103         select REGULATOR
1104         select REGULATOR_FIXED_VOLTAGE
1105         help
1106           This selects support for the MMC Host Controller found in LiteX SoCs.
1107 
1108           To compile this driver as a module, choose M here: the
1109           module will be called litex_mmc.
1110 
1111           If unsure, say N.