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