1# SPDX-License-Identifier: GPL-2.0-only 2# 3# MMC/SD host controller drivers 4# 5 6comment "MMC/SD/SDIO Host Controller Drivers" 7 8config MMC_DEBUG 9 bool "MMC host drivers debugging" 10 depends on MMC != n 11 help 12 This is an option for use by developers; most people should 13 say N here. This enables MMC host driver debugging. And further 14 added host drivers please don't invent their private macro for 15 debugging. 16 17config MMC_ARMMMCI 18 tristate "ARM AMBA Multimedia Card Interface support" 19 depends on ARM_AMBA 20 help 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. 24 25 If unsure, say N. 26 27config MMC_QCOM_DML 28 bool "Qualcomm Data Mover for SD Card Controller" 29 depends on MMC_ARMMMCI && QCOM_BAM_DMA 30 default y 31 help 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. 35 36 if unsure, say N. 37 38config MMC_STM32_SDMMC 39 bool "STMicroelectronics STM32 SDMMC Controller" 40 depends on MMC_ARMMMCI 41 default y 42 help 43 This selects the STMicroelectronics STM32 SDMMC host controller. 44 If you have a STM32 sdmmc host with internal DMA say Y here. 45 46 If unsure, say N. 47 48config MMC_PXA 49 tristate "Intel PXA25x/26x/27x Multimedia Card Interface support" 50 depends on ARCH_PXA 51 help 52 This selects the Intel(R) PXA(R) Multimedia card Interface. 53 If you have a PXA(R) platform with a Multimedia Card slot, 54 say Y or M here. 55 56 If unsure, say N. 57 58config MMC_SDHCI 59 tristate "Secure Digital Host Controller Interface support" 60 depends on HAS_DMA 61 help 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. 65 66 If you have a controller with this interface, say Y or M here. You 67 also need to enable an appropriate bus interface. 68 69 If unsure, say N. 70 71config MMC_SDHCI_IO_ACCESSORS 72 bool 73 depends on MMC_SDHCI 74 help 75 This is silent Kconfig symbol that is selected by the drivers that 76 need to overwrite SDHCI IO memory accessors. 77 78config MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER 79 bool 80 depends on MMC_SDHCI 81 select MMC_SDHCI_IO_ACCESSORS 82 help 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. 89 90 This is the case for the Nintendo Wii SDHCI. 91 92config MMC_SDHCI_PCI 93 tristate "SDHCI support on PCI bus" 94 depends on MMC_SDHCI && PCI 95 select MMC_CQHCI 96 select IOSF_MBI if X86 97 select MMC_SDHCI_IO_ACCESSORS 98 help 99 This selects the PCI Secure Digital Host Controller Interface. 100 Most controllers found today are PCI devices. 101 102 If you have a controller with this interface, say Y or M here. 103 104 If unsure, say N. 105 106config MMC_RICOH_MMC 107 bool "Ricoh MMC Controller Disabler" 108 depends on MMC_SDHCI_PCI 109 default y 110 help 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. 117 118 If unsure, say Y. 119 120config 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 124 help 125 This selects support for ACPI enumerated SDHCI controllers, 126 identified by ACPI Compatibility ID PNP0D40 or specific 127 ACPI Hardware IDs. 128 129 If you have a controller with this interface, say Y or M here. 130 131 If unsure, say N. 132 133config MMC_SDHCI_PLTFM 134 tristate "SDHCI platform and OF driver helper" 135 depends on MMC_SDHCI 136 help 137 This selects the common helper functions support for Secure Digital 138 Host Controller Interface based platform and OF drivers. 139 140 If you have a controller with this interface, say Y or M here. 141 142 If unsure, say N. 143 144config MMC_SDHCI_OF_ARASAN 145 tristate "SDHCI OF support for the Arasan SDHCI controllers" 146 depends on MMC_SDHCI_PLTFM 147 depends on OF 148 depends on COMMON_CLK 149 select MMC_CQHCI 150 help 151 This selects the Arasan Secure Digital Host Controller Interface 152 (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC. 153 154 If you have a controller with this interface, say Y or M here. 155 156 If unsure, say N. 157 158config 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 163 help 164 This selects the ASPEED Secure Digital Host Controller Interface. 165 166 If you have a controller with this interface, say Y or M here. You 167 also need to enable an appropriate bus interface. 168 169 If unsure, say N. 170 171config MMC_SDHCI_OF_AT91 172 tristate "SDHCI OF support for the Atmel SDMMC controller" 173 depends on MMC_SDHCI_PLTFM 174 depends on OF && HAVE_CLK 175 help 176 This selects the Atmel SDMMC driver 177 178config MMC_SDHCI_OF_ESDHC 179 tristate "SDHCI OF support for the Freescale eSDHC controller" 180 depends on MMC_SDHCI_PLTFM 181 depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST 182 select MMC_SDHCI_IO_ACCESSORS 183 select FSL_GUTS 184 help 185 This selects the Freescale eSDHC controller support. 186 187 If you have a controller with this interface, say Y or M here. 188 189 If unsure, say N. 190 191config MMC_SDHCI_OF_HLWD 192 tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers" 193 depends on MMC_SDHCI_PLTFM 194 depends on PPC 195 select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER 196 help 197 This selects the Secure Digital Host Controller Interface (SDHCI) 198 found in the "Hollywood" chipset of the Nintendo Wii video game 199 console. 200 201 If you have a controller with this interface, say Y or M here. 202 203 If unsure, say N. 204 205config MMC_SDHCI_OF_DWCMSHC 206 tristate "SDHCI OF support for the Synopsys DWC MSHC" 207 depends on MMC_SDHCI_PLTFM 208 depends on OF 209 depends on COMMON_CLK 210 help 211 This selects Synopsys DesignWare Cores Mobile Storage Controller 212 support. 213 If you have a controller with this interface, say Y or M here. 214 If unsure, say N. 215 216config MMC_SDHCI_OF_SPARX5 217 tristate "SDHCI OF support for the MCHP Sparx5 SoC" 218 depends on MMC_SDHCI_PLTFM 219 depends on ARCH_SPARX5 || COMPILE_TEST 220 help 221 This selects the Secure Digital Host Controller Interface (SDHCI) 222 found in the MCHP Sparx5 SoC. 223 224 If you have a Sparx5 SoC with this interface, say Y or M here. 225 226 If unsure, say N. 227 228config MMC_SDHCI_CADENCE 229 tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller" 230 depends on MMC_SDHCI_PLTFM 231 depends on OF 232 help 233 This selects the Cadence SD/SDIO/eMMC driver. 234 235 If you have a controller with this interface, say Y or M here. 236 237 If unsure, say N. 238 239config MMC_SDHCI_CNS3XXX 240 tristate "SDHCI support on the Cavium Networks CNS3xxx SoC" 241 depends on ARCH_CNS3XXX || COMPILE_TEST 242 depends on MMC_SDHCI_PLTFM 243 help 244 This selects the SDHCI support for CNS3xxx System-on-Chip devices. 245 246 If you have a controller with this interface, say Y or M here. 247 248 If unsure, say N. 249 250config MMC_SDHCI_ESDHC_MCF 251 tristate "SDHCI support for the Freescale eSDHC ColdFire controller" 252 depends on M5441x 253 depends on MMC_SDHCI_PLTFM 254 select MMC_SDHCI_IO_ACCESSORS 255 help 256 This selects the Freescale eSDHC controller support for 257 ColdFire mcf5441x devices. 258 259 If you have a controller with this interface, say Y or M here. 260 261 If unsure, say N. 262 263config MMC_SDHCI_ESDHC_IMX 264 tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller" 265 depends on ARCH_MXC || COMPILE_TEST 266 depends on MMC_SDHCI_PLTFM 267 select MMC_SDHCI_IO_ACCESSORS 268 select MMC_CQHCI 269 help 270 This selects the Freescale eSDHC/uSDHC controller support 271 found on i.MX25, i.MX35 i.MX5x and i.MX6x. 272 273 If you have a controller with this interface, say Y or M here. 274 275 If unsure, say N. 276 277config MMC_SDHCI_DOVE 278 tristate "SDHCI support on Marvell's Dove SoC" 279 depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST 280 depends on MMC_SDHCI_PLTFM 281 select MMC_SDHCI_IO_ACCESSORS 282 help 283 This selects the Secure Digital Host Controller Interface in 284 Marvell's Dove SoC. 285 286 If you have a controller with this interface, say Y or M here. 287 288 If unsure, say N. 289 290config MMC_SDHCI_TEGRA 291 tristate "SDHCI platform support for the Tegra SD/MMC Controller" 292 depends on ARCH_TEGRA || COMPILE_TEST 293 depends on MMC_SDHCI_PLTFM 294 select MMC_SDHCI_IO_ACCESSORS 295 select MMC_CQHCI 296 help 297 This selects the Tegra SD/MMC controller. If you have a Tegra 298 platform with SD or MMC devices, say Y or M here. 299 300 If unsure, say N. 301 302config MMC_SDHCI_S3C 303 tristate "SDHCI support on Samsung S3C SoC" 304 depends on MMC_SDHCI 305 depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 306 help 307 This selects the Secure Digital Host Controller Interface (SDHCI) 308 often referrered to as the HSMMC block in some of the Samsung S3C 309 range of SoC. 310 311 If you have a controller with this interface, say Y or M here. 312 313 If unsure, say N. 314 315config MMC_SDHCI_SIRF 316 tristate "SDHCI support on CSR SiRFprimaII and SiRFmarco SoCs" 317 depends on ARCH_SIRF || COMPILE_TEST 318 depends on MMC_SDHCI_PLTFM 319 select MMC_SDHCI_IO_ACCESSORS 320 help 321 This selects the SDHCI support for SiRF System-on-Chip devices. 322 323 If you have a controller with this interface, say Y or M here. 324 325 If unsure, say N. 326 327config MMC_SDHCI_PXAV3 328 tristate "Marvell MMP2 SD Host Controller support (PXAV3)" 329 depends on CLKDEV_LOOKUP 330 depends on MMC_SDHCI_PLTFM 331 depends on ARCH_BERLIN || ARCH_MMP || ARCH_MVEBU || COMPILE_TEST 332 default CPU_MMP2 333 help 334 This selects the Marvell(R) PXAV3 SD Host Controller. 335 If you have a MMP2 platform with SD Host Controller 336 and a card slot, say Y or M here. 337 338 If unsure, say N. 339 340config MMC_SDHCI_PXAV2 341 tristate "Marvell PXA9XX SD Host Controller support (PXAV2)" 342 depends on CLKDEV_LOOKUP 343 depends on MMC_SDHCI_PLTFM 344 depends on ARCH_MMP || COMPILE_TEST 345 default CPU_PXA910 346 help 347 This selects the Marvell(R) PXAV2 SD Host Controller. 348 If you have a PXA9XX platform with SD Host Controller 349 and a card slot, say Y or M here. 350 351 If unsure, say N. 352 353config MMC_SDHCI_SPEAR 354 tristate "SDHCI support on ST SPEAr platform" 355 depends on MMC_SDHCI 356 depends on PLAT_SPEAR || COMPILE_TEST 357 depends on OF 358 help 359 This selects the Secure Digital Host Controller Interface (SDHCI) 360 often referrered to as the HSMMC block in some of the ST SPEAR range 361 of SoC 362 363 If you have a controller with this interface, say Y or M here. 364 365 If unsure, say N. 366 367config MMC_SDHCI_S3C_DMA 368 bool "DMA support on S3C SDHCI" 369 depends on MMC_SDHCI_S3C 370 help 371 Enable DMA support on the Samsung S3C SDHCI glue. The DMA 372 has proved to be problematic if the controller encounters 373 certain errors, and thus should be treated with care. 374 375 YMMV. 376 377config MMC_SDHCI_BCM_KONA 378 tristate "SDHCI support on Broadcom KONA platform" 379 depends on ARCH_BCM_MOBILE || COMPILE_TEST 380 depends on MMC_SDHCI_PLTFM 381 help 382 This selects the Broadcom Kona Secure Digital Host Controller 383 Interface(SDHCI) support. 384 This is used in Broadcom mobile SoCs. 385 386 If you have a controller with this interface, say Y or M here. 387 388config MMC_SDHCI_F_SDH30 389 tristate "SDHCI support for Fujitsu Semiconductor F_SDH30" 390 depends on MMC_SDHCI_PLTFM 391 depends on OF || ACPI 392 help 393 This selects the Secure Digital Host Controller Interface (SDHCI) 394 Needed by some Fujitsu SoC for MMC / SD / SDIO support. 395 If you have a controller with this interface, say Y or M here. 396 397 If unsure, say N. 398 399config MMC_SDHCI_MILBEAUT 400 tristate "SDHCI support for Socionext Milbeaut Serieas using F_SDH30" 401 depends on MMC_SDHCI_PLTFM 402 depends on OF 403 help 404 This selects the Secure Digital Host Controller Interface (SDHCI) 405 Needed by Milbeaut SoC for MMC / SD / SDIO support. 406 If you have a controller with this interface, say Y or M here. 407 408 If unsure, say N. 409 410config MMC_SDHCI_IPROC 411 tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller" 412 depends on ARCH_BCM2835 || ARCH_BCM_IPROC || COMPILE_TEST 413 depends on MMC_SDHCI_PLTFM 414 depends on OF || ACPI 415 default ARCH_BCM_IPROC 416 select MMC_SDHCI_IO_ACCESSORS 417 help 418 This selects the iProc SD/MMC controller. 419 420 If you have a BCM2835 or IPROC platform with SD or MMC devices, 421 say Y or M here. 422 423 If unsure, say N. 424 425config MMC_MESON_GX 426 tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support" 427 depends on ARCH_MESON|| COMPILE_TEST 428 depends on COMMON_CLK 429 help 430 This selects support for the Amlogic SD/MMC Host Controller 431 found on the S905/GX*/AXG family of SoCs. This controller is 432 MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces. 433 434 If you have a controller with this interface, say Y here. 435 436config MMC_MESON_MX_SDHC 437 tristate "Amlogic Meson SDHC Host Controller support" 438 depends on (ARM && ARCH_MESON) || COMPILE_TEST 439 depends on COMMON_CLK 440 depends on OF 441 help 442 This selects support for the SDHC Host Controller on 443 Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs. 444 The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x 445 with 1, 4, and 8 bit bus widths. 446 447 If you have a controller with this interface, say Y or M here. 448 If unsure, say N. 449 450config MMC_MESON_MX_SDIO 451 tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support" 452 depends on ARCH_MESON || COMPILE_TEST 453 depends on COMMON_CLK 454 depends on OF_ADDRESS 455 help 456 This selects support for the SD/MMC Host Controller on 457 Amlogic Meson6, Meson8 and Meson8b SoCs. 458 459 If you have a controller with this interface, say Y or M here. 460 If unsure, say N. 461 462config MMC_MOXART 463 tristate "MOXART SD/MMC Host Controller support" 464 depends on ARCH_MOXART || COMPILE_TEST 465 help 466 This selects support for the MOXART SD/MMC Host Controller. 467 MOXA provides one multi-functional card reader which can 468 be found on some embedded hardware such as UC-7112-LX. 469 If you have a controller with this interface, say Y here. 470 471config MMC_SDHCI_ST 472 tristate "SDHCI support on STMicroelectronics SoC" 473 depends on ARCH_STI || FSP2 || COMPILE_TEST 474 depends on MMC_SDHCI_PLTFM 475 select MMC_SDHCI_IO_ACCESSORS 476 help 477 This selects the Secure Digital Host Controller Interface in 478 STMicroelectronics SoCs. 479 480 If you have a controller with this interface, say Y or M here. 481 If unsure, say N. 482 483config MMC_OMAP 484 tristate "TI OMAP Multimedia Card Interface support" 485 depends on ARCH_OMAP 486 depends on TPS65010 || !MACH_OMAP_H2 487 help 488 This selects the TI OMAP Multimedia card Interface. 489 If you have an OMAP board with a Multimedia Card slot, 490 say Y or M here. 491 492 If unsure, say N. 493 494config MMC_OMAP_HS 495 tristate "TI OMAP High Speed Multimedia Card Interface support" 496 depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST 497 help 498 This selects the TI OMAP High Speed Multimedia card Interface. 499 If you have an omap2plus board with a Multimedia Card slot, 500 say Y or M here. 501 502 If unsure, say N. 503 504config MMC_WBSD 505 tristate "Winbond W83L51xD SD/MMC Card Interface support" 506 depends on ISA_DMA_API 507 help 508 This selects the Winbond(R) W83L51xD Secure digital and 509 Multimedia card Interface. 510 If you have a machine with a integrated W83L518D or W83L519D 511 SD/MMC card reader, say Y or M here. 512 513 If unsure, say N. 514 515config MMC_ALCOR 516 tristate "Alcor Micro/Alcor Link SD/MMC controller" 517 depends on MISC_ALCOR_PCI 518 help 519 Say Y here to include driver code to support SD/MMC card interface 520 of Alcor Micro PCI-E card reader 521 522config MMC_AU1X 523 tristate "Alchemy AU1XX0 MMC Card Interface support" 524 depends on MIPS_ALCHEMY 525 help 526 This selects the AMD Alchemy(R) Multimedia card interface. 527 If you have a Alchemy platform with a MMC slot, say Y or M here. 528 529 If unsure, say N. 530 531config MMC_ATMELMCI 532 tristate "Atmel SD/MMC Driver (Multimedia Card Interface)" 533 depends on ARCH_AT91 534 help 535 This selects the Atmel Multimedia Card Interface driver. 536 If you have an AT91 platform with a Multimedia Card slot, 537 say Y or M here. 538 539 If unsure, say N. 540 541config MMC_SDHCI_MSM 542 tristate "Qualcomm SDHCI Controller Support" 543 depends on ARCH_QCOM || COMPILE_TEST 544 depends on MMC_SDHCI_PLTFM 545 select MMC_SDHCI_IO_ACCESSORS 546 select MMC_CQHCI 547 help 548 This selects the Secure Digital Host Controller Interface (SDHCI) 549 support present in Qualcomm SOCs. The controller supports 550 SD/MMC/SDIO devices. 551 552 If you have a controller with this interface, say Y or M here. 553 554 If unsure, say N. 555 556config MMC_MXC 557 tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support" 558 depends on ARCH_MXC || PPC_MPC512x 559 help 560 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x 561 Multimedia Card Interface. If you have an i.MX or MPC512x platform 562 with a Multimedia Card slot, say Y or M here. 563 564 If unsure, say N. 565 566config MMC_MXS 567 tristate "Freescale MXS Multimedia Card Interface support" 568 depends on ARCH_MXS && MXS_DMA 569 help 570 This selects the Freescale SSP MMC controller found on MXS based 571 platforms like mx23/28. 572 573 If unsure, say N. 574 575config MMC_TIFM_SD 576 tristate "TI Flash Media MMC/SD Interface support" 577 depends on PCI 578 select TIFM_CORE 579 help 580 Say Y here if you want to be able to access MMC/SD cards with 581 the Texas Instruments(R) Flash Media card reader, found in many 582 laptops. 583 This option 'selects' (turns on, enables) 'TIFM_CORE', but you 584 probably also need appropriate card reader host adapter, such as 585 'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support 586 (TIFM_7XX1)'. 587 588 To compile this driver as a module, choose M here: the 589 module will be called tifm_sd. 590 591config MMC_MVSDIO 592 tristate "Marvell MMC/SD/SDIO host driver" 593 depends on PLAT_ORION || (COMPILE_TEST && ARM) 594 depends on OF 595 help 596 This selects the Marvell SDIO host driver. 597 SDIO may currently be found on the Kirkwood 88F6281 and 88F6192 598 SoC controllers. 599 600 To compile this driver as a module, choose M here: the 601 module will be called mvsdio. 602 603config MMC_DAVINCI 604 tristate "TI DAVINCI Multimedia Card Interface support" 605 depends on ARCH_DAVINCI || COMPILE_TEST 606 help 607 This selects the TI DAVINCI Multimedia card Interface. 608 If you have an DAVINCI board with a Multimedia Card slot, 609 say Y or M here. If unsure, say N. 610 611config MMC_GOLDFISH 612 tristate "goldfish qemu Multimedia Card Interface support" 613 depends on GOLDFISH || COMPILE_TEST 614 help 615 This selects the Goldfish Multimedia card Interface emulation 616 found on the Goldfish Android virtual device emulation. 617 618config MMC_SPI 619 tristate "MMC/SD/SDIO over SPI" 620 depends on SPI_MASTER 621 select CRC7 622 select CRC_ITU_T 623 help 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 628 controllers. 629 630 If unsure, or if your system has no SPI master driver, say N. 631 632config MMC_S3C 633 tristate "Samsung S3C SD/MMC Card Interface support" 634 depends on ARCH_S3C24XX || COMPILE_TEST 635 depends on S3C24XX_DMAC || COMPILE_TEST 636 help 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. 641 642 If unsure, say N. 643 644config MMC_S3C_HW_SDIO_IRQ 645 bool "Hardware support for SDIO IRQ" 646 depends on MMC_S3C 647 help 648 Enable the hardware support for SDIO interrupts instead of using 649 the generic polling code. 650 651choice 652 prompt "Samsung S3C SD/MMC transfer code" 653 depends on MMC_S3C 654 655config MMC_S3C_PIO 656 bool "Use PIO transfers only" 657 help 658 Use PIO to transfer data between memory and the hardware. 659 660 PIO is slower than DMA as it requires CPU instructions to 661 move the data. This has been the traditional default for 662 the S3C MCI driver. 663 664config MMC_S3C_DMA 665 bool "Use DMA transfers only" 666 help 667 Use DMA to transfer data between memory and the hardware. 668 669 Currently, the DMA support in this driver seems to not be 670 working properly and needs to be debugged before this 671 option is useful. 672 673endchoice 674 675config MMC_SDRICOH_CS 676 tristate "MMC/SD driver for Ricoh Bay1Controllers" 677 depends on PCI && PCMCIA 678 help 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. 681 682 To compile this driver as a module, choose M here: the 683 module will be called sdricoh_cs. 684 685config 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 690 select MMC_HSQ 691 help 692 This selects the SDIO Host Controller in Spreadtrum 693 SoCs, this driver supports R11(IP version: R11P0). 694 695 If you have a controller with this interface, say Y or M here. 696 697 If unsure, say N. 698 699config MMC_TMIO_CORE 700 tristate 701 702config MMC_TMIO 703 tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support" 704 depends on MFD_TMIO || MFD_ASIC3 || COMPILE_TEST 705 select MMC_TMIO_CORE 706 help 707 This provides support for the SD/MMC cell found in TC6393XB, 708 T7L66XB and also HTC ASIC3 709 710config MMC_SDHI 711 tristate "Renesas SDHI SD/SDIO controller support" 712 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 713 select MMC_TMIO_CORE 714 help 715 This provides support for the SDHI SD/SDIO controller found in 716 Renesas SuperH, ARM and ARM64 based SoCs 717 718config MMC_SDHI_SYS_DMAC 719 tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC" 720 depends on MMC_SDHI 721 default MMC_SDHI if (SUPERH || ARM) 722 help 723 This provides DMA support for SDHI SD/SDIO controllers 724 using SYS-DMAC via DMA Engine. This supports the controllers 725 found in SuperH and Renesas ARM based SoCs. 726 727config MMC_SDHI_INTERNAL_DMAC 728 tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering" 729 depends on ARM64 || ARCH_R7S9210 || ARCH_R8A77470 || COMPILE_TEST 730 depends on MMC_SDHI 731 default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470) 732 help 733 This provides DMA support for SDHI SD/SDIO controllers 734 using on-chip bus mastering. This supports the controllers 735 found in arm64 based SoCs. This controller is also found in 736 some RZ family SoCs. 737 738config MMC_UNIPHIER 739 tristate "UniPhier SD/eMMC Host Controller support" 740 depends on ARCH_UNIPHIER || COMPILE_TEST 741 depends on OF 742 select MMC_TMIO_CORE 743 help 744 This provides support for the SD/eMMC controller found in 745 UniPhier SoCs. The eMMC variant of this controller is used 746 only for 32-bit SoCs. 747 748config MMC_CB710 749 tristate "ENE CB710 MMC/SD Interface support" 750 depends on PCI 751 select CB710_CORE 752 help 753 This option enables support for MMC/SD part of ENE CB710/720 Flash 754 memory card reader found in some laptops (ie. some versions of 755 HP Compaq nx9500). 756 757 This driver can also be built as a module. If so, the module 758 will be called cb710-mmc. 759 760config MMC_VIA_SDMMC 761 tristate "VIA SD/MMC Card Reader Driver" 762 depends on PCI 763 help 764 This selects the VIA SD/MMC Card Reader driver, say Y or M here. 765 VIA provides one multi-functional card reader which integrated into 766 some motherboards manufactured by VIA. This card reader supports 767 SD/MMC/SDHC. 768 If you have a controller with this interface, say Y or M here. 769 770 If unsure, say N. 771 772config MMC_CAVIUM_OCTEON 773 tristate "Cavium OCTEON SD/MMC Card Interface support" 774 depends on CAVIUM_OCTEON_SOC 775 help 776 This selects Cavium OCTEON SD/MMC card Interface. 777 If you have an OCTEON board with a Multimedia Card slot, 778 say Y or M here. 779 780 If unsure, say N. 781 782config MMC_CAVIUM_THUNDERX 783 tristate "Cavium ThunderX SD/MMC Card Interface support" 784 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 785 depends on GPIO_THUNDERX 786 depends on OF_ADDRESS 787 help 788 This selects Cavium ThunderX SD/MMC Card Interface. 789 If you have an Cavium ARM64 board with a Multimedia Card slot 790 or builtin eMMC chip say Y or M here. If built as a module 791 the module will be called thunderx_mmc.ko. 792 793config MMC_DW 794 tristate "Synopsys DesignWare Memory Card Interface" 795 depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST 796 help 797 This selects support for the Synopsys DesignWare Mobile Storage IP 798 block, this provides host support for SD and MMC interfaces, in both 799 PIO, internal DMA mode and external DMA mode. 800 801config MMC_DW_PLTFM 802 tristate "Synopsys Designware MCI Support as platform device" 803 depends on MMC_DW 804 default y 805 help 806 This selects the common helper functions support for Host Controller 807 Interface based platform driver. Please select this option if the IP 808 is present as a platform device. This is the common interface for the 809 Synopsys Designware IP. 810 811 If you have a controller with this interface, say Y or M here. 812 813 If unsure, say Y. 814 815config MMC_DW_BLUEFIELD 816 tristate "BlueField specific extensions for Synopsys DW Memory Card Interface" 817 depends on MMC_DW 818 select MMC_DW_PLTFM 819 help 820 This selects support for Mellanox BlueField SoC specific extensions to 821 the Synopsys DesignWare Memory Card Interface driver. Select this 822 option for platforms based on Mellanox BlueField SoC's. 823 824config MMC_DW_EXYNOS 825 tristate "Exynos specific extensions for Synopsys DW Memory Card Interface" 826 depends on MMC_DW 827 select MMC_DW_PLTFM 828 help 829 This selects support for Samsung Exynos SoC specific extensions to the 830 Synopsys DesignWare Memory Card Interface driver. Select this option 831 for platforms based on Exynos4 and Exynos5 SoC's. 832 833config MMC_DW_HI3798CV200 834 tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface" 835 depends on MMC_DW 836 select MMC_DW_PLTFM 837 help 838 This selects support for HiSilicon Hi3798CV200 SoC specific extensions to the 839 Synopsys DesignWare Memory Card Interface driver. Select this option 840 for platforms based on HiSilicon Hi3798CV200 SoC. 841 842config MMC_DW_K3 843 tristate "K3 specific extensions for Synopsys DW Memory Card Interface" 844 depends on MMC_DW 845 select MMC_DW_PLTFM 846 help 847 This selects support for Hisilicon K3 SoC specific extensions to the 848 Synopsys DesignWare Memory Card Interface driver. Select this option 849 for platforms based on Hisilicon K3 SoC's. 850 851config MMC_DW_PCI 852 tristate "Synopsys Designware MCI support on PCI bus" 853 depends on MMC_DW && PCI 854 help 855 This selects the PCI bus for the Synopsys Designware Mobile Storage IP. 856 Select this option if the IP is present on PCI platform. 857 858 If you have a controller with this interface, say Y or M here. 859 860 If unsure, say N. 861 862config MMC_DW_ROCKCHIP 863 tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface" 864 depends on MMC_DW && ARCH_ROCKCHIP 865 select MMC_DW_PLTFM 866 help 867 This selects support for Rockchip SoC specific extensions to the 868 Synopsys DesignWare Memory Card Interface driver. Select this option 869 for platforms based on RK3066, RK3188 and RK3288 SoC's. 870 871config MMC_DW_ZX 872 tristate "ZTE specific extensions for Synopsys DW Memory Card Interface" 873 depends on MMC_DW && ARCH_ZX 874 select MMC_DW_PLTFM 875 help 876 This selects support for ZTE SoC specific extensions to the 877 Synopsys DesignWare Memory Card Interface driver. Select this option 878 for platforms based on ZX296718 SoC's. 879 880config MMC_SH_MMCIF 881 tristate "SuperH Internal MMCIF support" 882 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 883 help 884 This selects the MMC Host Interface controller (MMCIF) found in various 885 Renesas SoCs for SH and ARM architectures. 886 887 888config MMC_JZ4740 889 tristate "Ingenic JZ47xx SD/Multimedia Card Interface support" 890 depends on MIPS 891 help 892 This selects support for the SD/MMC controller on Ingenic 893 JZ4740, JZ4750, JZ4770 and JZ4780 SoCs. 894 895 If you have a board based on such a SoC and with a SD/MMC slot, 896 say Y or M here. 897 898config MMC_VUB300 899 tristate "VUB300 USB to SDIO/SD/MMC Host Controller support" 900 depends on USB 901 help 902 This selects support for Elan Digital Systems' VUB300 chip. 903 904 The VUB300 is a USB-SDIO Host Controller Interface chip 905 that enables the host computer to use SDIO/SD/MMC cards 906 via a USB 2.0 or USB 1.1 host. 907 908 The VUB300 chip will be found in both physically separate 909 USB to SDIO/SD/MMC adapters and embedded on some motherboards. 910 911 The VUB300 chip supports SD and MMC memory cards in addition 912 to single and multifunction SDIO cards. 913 914 Some SDIO cards will need a firmware file to be loaded and 915 sent to VUB300 chip in order to achieve better data throughput. 916 Download these "Offload Pseudocode" from Elan Digital Systems' 917 web-site http://www.elandigitalsystems.com/support/downloads.php 918 and put them in /lib/firmware. Note that without these additional 919 firmware files the VUB300 chip will still function, but not at 920 the best obtainable data rate. 921 922 To compile this mmc host controller driver as a module, 923 choose M here: the module will be called vub300. 924 925 If you have a computer with an embedded VUB300 chip 926 or if you intend connecting a USB adapter based on a 927 VUB300 chip say Y or M here. 928 929config MMC_USHC 930 tristate "USB SD Host Controller (USHC) support" 931 depends on USB 932 help 933 This selects support for USB SD Host Controllers based on 934 the Cypress Astoria chip with firmware compliant with CSR's 935 USB SD Host Controller specification (CS-118793-SP). 936 937 CSR boards with this device include: USB<>SDIO (M1985v2), 938 and Ultrasira. 939 940 Note: These controllers only support SDIO cards and do not 941 support MMC or SD memory cards. 942 943config MMC_WMT 944 tristate "Wondermedia SD/MMC Host Controller support" 945 depends on ARCH_VT8500 946 default y 947 help 948 This selects support for the SD/MMC Host Controller on 949 Wondermedia WM8505/WM8650 based SoCs. 950 951 To compile this driver as a module, choose M here: the 952 module will be called wmt-sdmmc. 953 954config MMC_USDHI6ROL0 955 tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support" 956 depends on HAS_DMA 957 help 958 This selects support for the Renesas USDHI6ROL0 SD/SDIO 959 Host Controller 960 961config MMC_REALTEK_PCI 962 tristate "Realtek PCI-E SD/MMC Card Interface Driver" 963 depends on MISC_RTSX_PCI 964 help 965 Say Y here to include driver code to support SD/MMC card interface 966 of Realtek PCI-E card reader 967 968config MMC_REALTEK_USB 969 tristate "Realtek USB SD/MMC Card Interface Driver" 970 depends on MISC_RTSX_USB 971 help 972 Say Y here to include driver code to support SD/MMC card interface 973 of Realtek RTS5129/39 series card reader 974 975config MMC_SUNXI 976 tristate "Allwinner sunxi SD/MMC Host Controller support" 977 depends on ARCH_SUNXI || COMPILE_TEST 978 help 979 This selects support for the SD/MMC Host Controller on 980 Allwinner sunxi SoCs. 981 982config MMC_CQHCI 983 tristate "Command Queue Host Controller Interface support" 984 depends on HAS_DMA 985 help 986 This selects the Command Queue Host Controller Interface (CQHCI) 987 support present in host controllers of Qualcomm Technologies, Inc 988 amongst others. 989 This controller supports eMMC devices with command queue support. 990 991 If you have a controller with this interface, say Y or M here. 992 993 If unsure, say N. 994 995config MMC_HSQ 996 tristate "MMC Host Software Queue support" 997 help 998 This selects the MMC Host Software Queue support. This may increase 999 performance, if the host controller and its driver supports it. 1000 1001 If you have a controller/driver supporting this interface, say Y or M 1002 here. 1003 1004 If unsure, say N. 1005 1006config MMC_TOSHIBA_PCI 1007 tristate "Toshiba Type A SD/MMC Card Interface Driver" 1008 depends on PCI 1009 1010config MMC_BCM2835 1011 tristate "Broadcom BCM2835 SDHOST MMC Controller support" 1012 depends on ARCH_BCM2835 || COMPILE_TEST 1013 help 1014 This selects the BCM2835 SDHOST MMC controller. If you have 1015 a BCM2835 platform with SD or MMC devices, say Y or M here. 1016 1017 Note that the BCM2835 has two SD controllers: The Arasan 1018 sdhci controller (supported by MMC_SDHCI_IPROC) and a custom 1019 sdhost controller (supported by this driver). 1020 1021 If unsure, say N. 1022 1023config MMC_MTK 1024 tristate "MediaTek SD/MMC Card Interface support" 1025 depends on HAS_DMA 1026 depends on COMMON_CLK 1027 select REGULATOR 1028 select MMC_CQHCI 1029 help 1030 This selects the MediaTek(R) Secure digital and Multimedia card Interface. 1031 If you have a machine with a integrated SD/MMC card reader, say Y or M here. 1032 This is needed if support for any SD/SDIO/MMC devices is required. 1033 If unsure, say N. 1034 1035config MMC_SDHCI_MICROCHIP_PIC32 1036 tristate "Microchip PIC32MZDA SDHCI support" 1037 depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM 1038 help 1039 This selects the Secure Digital Host Controller Interface (SDHCI) 1040 for PIC32MZDA platform. 1041 1042 If you have a controller with this interface, say Y or M here. 1043 1044 If unsure, say N. 1045 1046config MMC_SDHCI_BRCMSTB 1047 tristate "Broadcom SDIO/SD/MMC support" 1048 depends on ARCH_BRCMSTB || BMIPS_GENERIC 1049 depends on MMC_SDHCI_PLTFM 1050 select MMC_CQHCI 1051 default y 1052 help 1053 This selects support for the SDIO/SD/MMC Host Controller on 1054 Broadcom STB SoCs. 1055 1056 If unsure, say Y. 1057 1058config MMC_SDHCI_XENON 1059 tristate "Marvell Xenon eMMC/SD/SDIO SDHCI driver" 1060 depends on MMC_SDHCI_PLTFM 1061 help 1062 This selects Marvell Xenon eMMC/SD/SDIO SDHCI. 1063 If you have a controller with this interface, say Y or M here. 1064 If unsure, say N. 1065 1066config MMC_SDHCI_OMAP 1067 tristate "TI SDHCI Controller Support" 1068 depends on MMC_SDHCI_PLTFM && OF 1069 select THERMAL 1070 imply TI_SOC_THERMAL 1071 select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE 1072 help 1073 This selects the Secure Digital Host Controller Interface (SDHCI) 1074 support present in TI's DRA7 SOCs. The controller supports 1075 SD/MMC/SDIO devices. 1076 1077 If you have a controller with this interface, say Y or M here. 1078 1079 If unsure, say N. 1080 1081config MMC_SDHCI_AM654 1082 tristate "Support for the SDHCI Controller in TI's AM654 SOCs" 1083 depends on MMC_SDHCI_PLTFM && OF && REGMAP_MMIO 1084 select MMC_SDHCI_IO_ACCESSORS 1085 select MMC_CQHCI 1086 help 1087 This selects the Secure Digital Host Controller Interface (SDHCI) 1088 support present in TI's AM654 SOCs. The controller supports 1089 SD/MMC/SDIO devices. 1090 1091 If you have a controller with this interface, say Y or M here. 1092 1093 If unsure, say N. 1094 1095config MMC_OWL 1096 tristate "Actions Semi Owl SD/MMC Host Controller support" 1097 depends on HAS_DMA 1098 depends on ARCH_ACTIONS || COMPILE_TEST 1099 help 1100 This selects support for the SD/MMC Host Controller on 1101 Actions Semi Owl SoCs. 1102 1103config MMC_SDHCI_EXTERNAL_DMA 1104 bool 1105