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 && !M68K 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 bool "Alchemy AU1XX0 MMC Card Interface support" 524 depends on MIPS_ALCHEMY 525 depends on MMC=y 526 help 527 This selects the AMD Alchemy(R) Multimedia card interface. 528 If you have a Alchemy platform with a MMC slot, say Y here. 529 530 If unsure, say N. 531 532config MMC_ATMELMCI 533 tristate "Atmel SD/MMC Driver (Multimedia Card Interface)" 534 depends on ARCH_AT91 535 help 536 This selects the Atmel Multimedia Card Interface driver. 537 If you have an AT91 platform with a Multimedia Card slot, 538 say Y or M here. 539 540 If unsure, say N. 541 542config MMC_SDHCI_MSM 543 tristate "Qualcomm SDHCI Controller Support" 544 depends on ARCH_QCOM || COMPILE_TEST 545 depends on MMC_SDHCI_PLTFM 546 select MMC_SDHCI_IO_ACCESSORS 547 select MMC_CQHCI 548 help 549 This selects the Secure Digital Host Controller Interface (SDHCI) 550 support present in Qualcomm SOCs. The controller supports 551 SD/MMC/SDIO devices. 552 553 If you have a controller with this interface, say Y or M here. 554 555 If unsure, say N. 556 557config MMC_MXC 558 tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support" 559 depends on ARCH_MXC || PPC_MPC512x 560 help 561 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x 562 Multimedia Card Interface. If you have an i.MX or MPC512x platform 563 with a Multimedia Card slot, say Y or M here. 564 565 If unsure, say N. 566 567config MMC_MXS 568 tristate "Freescale MXS Multimedia Card Interface support" 569 depends on ARCH_MXS && MXS_DMA 570 help 571 This selects the Freescale SSP MMC controller found on MXS based 572 platforms like mx23/28. 573 574 If unsure, say N. 575 576config MMC_TIFM_SD 577 tristate "TI Flash Media MMC/SD Interface support" 578 depends on PCI 579 select TIFM_CORE 580 help 581 Say Y here if you want to be able to access MMC/SD cards with 582 the Texas Instruments(R) Flash Media card reader, found in many 583 laptops. 584 This option 'selects' (turns on, enables) 'TIFM_CORE', but you 585 probably also need appropriate card reader host adapter, such as 586 'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support 587 (TIFM_7XX1)'. 588 589 To compile this driver as a module, choose M here: the 590 module will be called tifm_sd. 591 592config MMC_MVSDIO 593 tristate "Marvell MMC/SD/SDIO host driver" 594 depends on PLAT_ORION || (COMPILE_TEST && ARM) 595 depends on OF 596 help 597 This selects the Marvell SDIO host driver. 598 SDIO may currently be found on the Kirkwood 88F6281 and 88F6192 599 SoC controllers. 600 601 To compile this driver as a module, choose M here: the 602 module will be called mvsdio. 603 604config MMC_DAVINCI 605 tristate "TI DAVINCI Multimedia Card Interface support" 606 depends on ARCH_DAVINCI || COMPILE_TEST 607 help 608 This selects the TI DAVINCI Multimedia card Interface. 609 If you have an DAVINCI board with a Multimedia Card slot, 610 say Y or M here. If unsure, say N. 611 612config MMC_GOLDFISH 613 tristate "goldfish qemu Multimedia Card Interface support" 614 depends on GOLDFISH || COMPILE_TEST 615 help 616 This selects the Goldfish Multimedia card Interface emulation 617 found on the Goldfish Android virtual device emulation. 618 619config MMC_SPI 620 tristate "MMC/SD/SDIO over SPI" 621 depends on SPI_MASTER 622 select CRC7 623 select CRC_ITU_T 624 help 625 Some systems access MMC/SD/SDIO cards using a SPI controller 626 instead of using a "native" MMC/SD/SDIO controller. This has a 627 disadvantage of being relatively high overhead, but a compensating 628 advantage of working on many systems without dedicated MMC/SD/SDIO 629 controllers. 630 631 If unsure, or if your system has no SPI master driver, say N. 632 633config MMC_S3C 634 tristate "Samsung S3C SD/MMC Card Interface support" 635 depends on ARCH_S3C24XX 636 depends on S3C24XX_DMAC 637 help 638 This selects a driver for the MCI interface found in 639 Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs. 640 If you have a board based on one of those and a MMC/SD 641 slot, say Y or M here. 642 643 If unsure, say N. 644 645config MMC_S3C_HW_SDIO_IRQ 646 bool "Hardware support for SDIO IRQ" 647 depends on MMC_S3C 648 help 649 Enable the hardware support for SDIO interrupts instead of using 650 the generic polling code. 651 652choice 653 prompt "Samsung S3C SD/MMC transfer code" 654 depends on MMC_S3C 655 656config MMC_S3C_PIO 657 bool "Use PIO transfers only" 658 help 659 Use PIO to transfer data between memory and the hardware. 660 661 PIO is slower than DMA as it requires CPU instructions to 662 move the data. This has been the traditional default for 663 the S3C MCI driver. 664 665config MMC_S3C_DMA 666 bool "Use DMA transfers only" 667 help 668 Use DMA to transfer data between memory and the hardare. 669 670 Currently, the DMA support in this driver seems to not be 671 working properly and needs to be debugged before this 672 option is useful. 673 674endchoice 675 676config MMC_SDRICOH_CS 677 tristate "MMC/SD driver for Ricoh Bay1Controllers" 678 depends on PCI && PCMCIA 679 help 680 Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA 681 card whenever you insert a MMC or SD card into the card slot. 682 683 To compile this driver as a module, choose M here: the 684 module will be called sdricoh_cs. 685 686config MMC_SDHCI_SPRD 687 tristate "Spreadtrum SDIO host Controller" 688 depends on ARCH_SPRD || COMPILE_TEST 689 depends on MMC_SDHCI_PLTFM 690 select MMC_SDHCI_IO_ACCESSORS 691 select MMC_HSQ 692 help 693 This selects the SDIO Host Controller in Spreadtrum 694 SoCs, this driver supports R11(IP version: R11P0). 695 696 If you have a controller with this interface, say Y or M here. 697 698 If unsure, say N. 699 700config MMC_TMIO_CORE 701 tristate 702 703config MMC_TMIO 704 tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support" 705 depends on MFD_TMIO || MFD_ASIC3 || COMPILE_TEST 706 select MMC_TMIO_CORE 707 help 708 This provides support for the SD/MMC cell found in TC6393XB, 709 T7L66XB and also HTC ASIC3 710 711config MMC_SDHI 712 tristate "Renesas SDHI SD/SDIO controller support" 713 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 714 select MMC_TMIO_CORE 715 help 716 This provides support for the SDHI SD/SDIO controller found in 717 Renesas SuperH, ARM and ARM64 based SoCs 718 719config MMC_SDHI_SYS_DMAC 720 tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC" 721 depends on MMC_SDHI 722 default MMC_SDHI if (SUPERH || ARM) 723 help 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. 727 728config 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 731 depends on MMC_SDHI 732 default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470) 733 help 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 737 some RZ family SoCs. 738 739config MMC_UNIPHIER 740 tristate "UniPhier SD/eMMC Host Controller support" 741 depends on ARCH_UNIPHIER || COMPILE_TEST 742 depends on OF 743 select MMC_TMIO_CORE 744 help 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. 748 749config MMC_CB710 750 tristate "ENE CB710 MMC/SD Interface support" 751 depends on PCI 752 select CB710_CORE 753 help 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 756 HP Compaq nx9500). 757 758 This driver can also be built as a module. If so, the module 759 will be called cb710-mmc. 760 761config MMC_VIA_SDMMC 762 tristate "VIA SD/MMC Card Reader Driver" 763 depends on PCI 764 help 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 768 SD/MMC/SDHC. 769 If you have a controller with this interface, say Y or M here. 770 771 If unsure, say N. 772 773config MMC_CAVIUM_OCTEON 774 tristate "Cavium OCTEON SD/MMC Card Interface support" 775 depends on CAVIUM_OCTEON_SOC 776 help 777 This selects Cavium OCTEON SD/MMC card Interface. 778 If you have an OCTEON board with a Multimedia Card slot, 779 say Y or M here. 780 781 If unsure, say N. 782 783config 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 788 help 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. 793 794config MMC_DW 795 tristate "Synopsys DesignWare Memory Card Interface" 796 depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST 797 help 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. 801 802config MMC_DW_PLTFM 803 tristate "Synopsys Designware MCI Support as platform device" 804 depends on MMC_DW 805 default y 806 help 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. 811 812 If you have a controller with this interface, say Y or M here. 813 814 If unsure, say Y. 815 816config MMC_DW_BLUEFIELD 817 tristate "BlueField specific extensions for Synopsys DW Memory Card Interface" 818 depends on MMC_DW 819 select MMC_DW_PLTFM 820 help 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. 824 825config MMC_DW_EXYNOS 826 tristate "Exynos specific extensions for Synopsys DW Memory Card Interface" 827 depends on MMC_DW 828 select MMC_DW_PLTFM 829 help 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. 833 834config MMC_DW_HI3798CV200 835 tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface" 836 depends on MMC_DW 837 select MMC_DW_PLTFM 838 help 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. 842 843config MMC_DW_K3 844 tristate "K3 specific extensions for Synopsys DW Memory Card Interface" 845 depends on MMC_DW 846 select MMC_DW_PLTFM 847 help 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. 851 852config MMC_DW_PCI 853 tristate "Synopsys Designware MCI support on PCI bus" 854 depends on MMC_DW && PCI 855 help 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. 858 859 If you have a controller with this interface, say Y or M here. 860 861 If unsure, say N. 862 863config MMC_DW_ROCKCHIP 864 tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface" 865 depends on MMC_DW && ARCH_ROCKCHIP 866 select MMC_DW_PLTFM 867 help 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. 871 872config MMC_DW_ZX 873 tristate "ZTE specific extensions for Synopsys DW Memory Card Interface" 874 depends on MMC_DW && ARCH_ZX 875 select MMC_DW_PLTFM 876 help 877 This selects support for ZTE SoC specific extensions to the 878 Synopsys DesignWare Memory Card Interface driver. Select this option 879 for platforms based on ZX296718 SoC's. 880 881config MMC_SH_MMCIF 882 tristate "SuperH Internal MMCIF support" 883 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 884 help 885 This selects the MMC Host Interface controller (MMCIF) found in various 886 Renesas SoCs for SH and ARM architectures. 887 888 889config MMC_JZ4740 890 tristate "Ingenic JZ47xx SD/Multimedia Card Interface support" 891 depends on MIPS 892 help 893 This selects support for the SD/MMC controller on Ingenic 894 JZ4740, JZ4750, JZ4770 and JZ4780 SoCs. 895 896 If you have a board based on such a SoC and with a SD/MMC slot, 897 say Y or M here. 898 899config MMC_VUB300 900 tristate "VUB300 USB to SDIO/SD/MMC Host Controller support" 901 depends on USB 902 help 903 This selects support for Elan Digital Systems' VUB300 chip. 904 905 The VUB300 is a USB-SDIO Host Controller Interface chip 906 that enables the host computer to use SDIO/SD/MMC cards 907 via a USB 2.0 or USB 1.1 host. 908 909 The VUB300 chip will be found in both physically separate 910 USB to SDIO/SD/MMC adapters and embedded on some motherboards. 911 912 The VUB300 chip supports SD and MMC memory cards in addition 913 to single and multifunction SDIO cards. 914 915 Some SDIO cards will need a firmware file to be loaded and 916 sent to VUB300 chip in order to achieve better data throughput. 917 Download these "Offload Pseudocode" from Elan Digital Systems' 918 web-site http://www.elandigitalsystems.com/support/downloads.php 919 and put them in /lib/firmware. Note that without these additional 920 firmware files the VUB300 chip will still function, but not at 921 the best obtainable data rate. 922 923 To compile this mmc host controller driver as a module, 924 choose M here: the module will be called vub300. 925 926 If you have a computer with an embedded VUB300 chip 927 or if you intend connecting a USB adapter based on a 928 VUB300 chip say Y or M here. 929 930config MMC_USHC 931 tristate "USB SD Host Controller (USHC) support" 932 depends on USB 933 help 934 This selects support for USB SD Host Controllers based on 935 the Cypress Astoria chip with firmware compliant with CSR's 936 USB SD Host Controller specification (CS-118793-SP). 937 938 CSR boards with this device include: USB<>SDIO (M1985v2), 939 and Ultrasira. 940 941 Note: These controllers only support SDIO cards and do not 942 support MMC or SD memory cards. 943 944config MMC_WMT 945 tristate "Wondermedia SD/MMC Host Controller support" 946 depends on ARCH_VT8500 947 default y 948 help 949 This selects support for the SD/MMC Host Controller on 950 Wondermedia WM8505/WM8650 based SoCs. 951 952 To compile this driver as a module, choose M here: the 953 module will be called wmt-sdmmc. 954 955config MMC_USDHI6ROL0 956 tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support" 957 depends on HAS_DMA 958 help 959 This selects support for the Renesas USDHI6ROL0 SD/SDIO 960 Host Controller 961 962config MMC_REALTEK_PCI 963 tristate "Realtek PCI-E SD/MMC Card Interface Driver" 964 depends on MISC_RTSX_PCI 965 help 966 Say Y here to include driver code to support SD/MMC card interface 967 of Realtek PCI-E card reader 968 969config MMC_REALTEK_USB 970 tristate "Realtek USB SD/MMC Card Interface Driver" 971 depends on MISC_RTSX_USB 972 help 973 Say Y here to include driver code to support SD/MMC card interface 974 of Realtek RTS5129/39 series card reader 975 976config MMC_SUNXI 977 tristate "Allwinner sunxi SD/MMC Host Controller support" 978 depends on ARCH_SUNXI || COMPILE_TEST 979 help 980 This selects support for the SD/MMC Host Controller on 981 Allwinner sunxi SoCs. 982 983config MMC_CQHCI 984 tristate "Command Queue Host Controller Interface support" 985 depends on HAS_DMA 986 help 987 This selects the Command Queue Host Controller Interface (CQHCI) 988 support present in host controllers of Qualcomm Technologies, Inc 989 amongst others. 990 This controller supports eMMC devices with command queue support. 991 992 If you have a controller with this interface, say Y or M here. 993 994 If unsure, say N. 995 996config MMC_HSQ 997 tristate "MMC Host Software Queue support" 998 help 999 This selects the MMC Host Software Queue support. This may increase 1000 performance, if the host controller and its driver supports it. 1001 1002 If you have a controller/driver supporting this interface, say Y or M 1003 here. 1004 1005 If unsure, say N. 1006 1007config MMC_TOSHIBA_PCI 1008 tristate "Toshiba Type A SD/MMC Card Interface Driver" 1009 depends on PCI 1010 1011config MMC_BCM2835 1012 tristate "Broadcom BCM2835 SDHOST MMC Controller support" 1013 depends on ARCH_BCM2835 || COMPILE_TEST 1014 help 1015 This selects the BCM2835 SDHOST MMC controller. If you have 1016 a BCM2835 platform with SD or MMC devices, say Y or M here. 1017 1018 Note that the BCM2835 has two SD controllers: The Arasan 1019 sdhci controller (supported by MMC_SDHCI_IPROC) and a custom 1020 sdhost controller (supported by this driver). 1021 1022 If unsure, say N. 1023 1024config MMC_MTK 1025 tristate "MediaTek SD/MMC Card Interface support" 1026 depends on HAS_DMA 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 ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST 1069 depends on MMC_SDHCI_PLTFM && OF 1070 select THERMAL 1071 imply TI_SOC_THERMAL 1072 select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE 1073 help 1074 This selects the Secure Digital Host Controller Interface (SDHCI) 1075 support present in TI's Keystone/OMAP2+/DRA7 SOCs. The controller 1076 supports SD/MMC/SDIO devices. 1077 1078 If you have a controller with this interface, say Y or M here. 1079 1080 If unsure, say N. 1081 1082config MMC_SDHCI_AM654 1083 tristate "Support for the SDHCI Controller in TI's AM654 SOCs" 1084 depends on ARCH_K3 || COMPILE_TEST 1085 depends on MMC_SDHCI_PLTFM && OF 1086 select MMC_SDHCI_IO_ACCESSORS 1087 select MMC_CQHCI 1088 select REGMAP_MMIO 1089 help 1090 This selects the Secure Digital Host Controller Interface (SDHCI) 1091 support present in TI's AM65x/AM64x/AM62x/J721E SOCs. The controller 1092 supports SD/MMC/SDIO devices. 1093 1094 If you have a controller with this interface, say Y or M here. 1095 1096 If unsure, say N. 1097 1098config MMC_OWL 1099 tristate "Actions Semi Owl SD/MMC Host Controller support" 1100 depends on HAS_DMA 1101 depends on ARCH_ACTIONS || COMPILE_TEST 1102 help 1103 This selects support for the SD/MMC Host Controller on 1104 Actions Semi Owl SoCs. 1105 1106config MMC_SDHCI_EXTERNAL_DMA 1107 bool 1108