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