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_ASPEED_TEST 172 bool "Tests for the ASPEED SDHCI driver" if !KUNIT_ALL_TESTS 173 depends on MMC_SDHCI_OF_ASPEED && KUNIT 174 depends on (MMC_SDHCI_OF_ASPEED=m || KUNIT=y) 175 default KUNIT_ALL_TESTS 176 help 177 Enable KUnit tests for the ASPEED SDHCI driver. Select this 178 option only if you will boot the kernel for the purpose of running 179 unit tests (e.g. under UML or qemu). 180 181 The KUnit tests generally exercise parts of the driver that do not 182 directly touch the hardware, for example, the phase correction 183 calculations. 184 185 If unsure, say N. 186 187config MMC_SDHCI_OF_AT91 188 tristate "SDHCI OF support for the Atmel SDMMC controller" 189 depends on MMC_SDHCI_PLTFM 190 depends on OF && HAVE_CLK 191 help 192 This selects the Atmel SDMMC driver 193 194config MMC_SDHCI_OF_ESDHC 195 tristate "SDHCI OF support for the Freescale eSDHC controller" 196 depends on MMC_SDHCI_PLTFM 197 depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST 198 select MMC_SDHCI_IO_ACCESSORS 199 select FSL_GUTS 200 help 201 This selects the Freescale eSDHC controller support. 202 203 If you have a controller with this interface, say Y or M here. 204 205 If unsure, say N. 206 207config MMC_SDHCI_OF_HLWD 208 tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers" 209 depends on MMC_SDHCI_PLTFM 210 depends on PPC 211 select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER 212 help 213 This selects the Secure Digital Host Controller Interface (SDHCI) 214 found in the "Hollywood" chipset of the Nintendo Wii video game 215 console. 216 217 If you have a controller with this interface, say Y or M here. 218 219 If unsure, say N. 220 221config MMC_SDHCI_OF_DWCMSHC 222 tristate "SDHCI OF support for the Synopsys DWC MSHC" 223 depends on MMC_SDHCI_PLTFM 224 depends on OF 225 depends on COMMON_CLK 226 help 227 This selects Synopsys DesignWare Cores Mobile Storage Controller 228 support. 229 If you have a controller with this interface, say Y or M here. 230 If unsure, say N. 231 232config MMC_SDHCI_OF_SPARX5 233 tristate "SDHCI OF support for the MCHP Sparx5 SoC" 234 depends on MMC_SDHCI_PLTFM 235 depends on ARCH_SPARX5 || COMPILE_TEST 236 help 237 This selects the Secure Digital Host Controller Interface (SDHCI) 238 found in the MCHP Sparx5 SoC. 239 240 If you have a Sparx5 SoC with this interface, say Y or M here. 241 242 If unsure, say N. 243 244config MMC_SDHCI_CADENCE 245 tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller" 246 depends on MMC_SDHCI_PLTFM 247 depends on OF 248 help 249 This selects the Cadence SD/SDIO/eMMC driver. 250 251 If you have a controller with this interface, say Y or M here. 252 253 If unsure, say N. 254 255config MMC_SDHCI_CNS3XXX 256 tristate "SDHCI support on the Cavium Networks CNS3xxx SoC" 257 depends on ARCH_CNS3XXX || COMPILE_TEST 258 depends on MMC_SDHCI_PLTFM 259 help 260 This selects the SDHCI support for CNS3xxx System-on-Chip devices. 261 262 If you have a controller with this interface, say Y or M here. 263 264 If unsure, say N. 265 266config MMC_SDHCI_ESDHC_MCF 267 tristate "SDHCI support for the Freescale eSDHC ColdFire controller" 268 depends on M5441x 269 depends on MMC_SDHCI_PLTFM 270 select MMC_SDHCI_IO_ACCESSORS 271 help 272 This selects the Freescale eSDHC controller support for 273 ColdFire mcf5441x devices. 274 275 If you have a controller with this interface, say Y or M here. 276 277 If unsure, say N. 278 279config MMC_SDHCI_ESDHC_IMX 280 tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller" 281 depends on ARCH_MXC || COMPILE_TEST 282 depends on MMC_SDHCI_PLTFM 283 depends on OF 284 select MMC_SDHCI_IO_ACCESSORS 285 select MMC_CQHCI 286 help 287 This selects the Freescale eSDHC/uSDHC controller support 288 found on i.MX25, i.MX35 i.MX5x and i.MX6x. 289 290 If you have a controller with this interface, say Y or M here. 291 292 If unsure, say N. 293 294config MMC_SDHCI_DOVE 295 tristate "SDHCI support on Marvell's Dove SoC" 296 depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST 297 depends on MMC_SDHCI_PLTFM 298 select MMC_SDHCI_IO_ACCESSORS 299 help 300 This selects the Secure Digital Host Controller Interface in 301 Marvell's Dove SoC. 302 303 If you have a controller with this interface, say Y or M here. 304 305 If unsure, say N. 306 307config MMC_SDHCI_TEGRA 308 tristate "SDHCI platform support for the Tegra SD/MMC Controller" 309 depends on ARCH_TEGRA || COMPILE_TEST 310 depends on MMC_SDHCI_PLTFM 311 select MMC_SDHCI_IO_ACCESSORS 312 select MMC_CQHCI 313 help 314 This selects the Tegra SD/MMC controller. If you have a Tegra 315 platform with SD or MMC devices, say Y or M here. 316 317 If unsure, say N. 318 319config MMC_SDHCI_S3C 320 tristate "SDHCI support on Samsung S3C/S5P/Exynos SoC" 321 depends on MMC_SDHCI 322 depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 323 help 324 This selects the Secure Digital Host Controller Interface (SDHCI) 325 often referrered to as the HSMMC block in some of the Samsung S3C 326 (S3C2416, S3C2443, S3C6410), S5Pv210 and Exynos (Exynso4210, 327 Exynos4412) SoCs. 328 329 If you have a controller with this interface (thereforeyou build for 330 such Samsung SoC), say Y or M here. 331 332 If unsure, say N. 333 334config MMC_SDHCI_PXAV3 335 tristate "Marvell MMP2 SD Host Controller support (PXAV3)" 336 depends on HAVE_CLK 337 depends on MMC_SDHCI_PLTFM 338 depends on ARCH_BERLIN || ARCH_MMP || ARCH_MVEBU || COMPILE_TEST 339 default CPU_MMP2 340 help 341 This selects the Marvell(R) PXAV3 SD Host Controller. 342 If you have a MMP2 platform with SD Host Controller 343 and a card slot, say Y or M here. 344 345 If unsure, say N. 346 347config MMC_SDHCI_PXAV2 348 tristate "Marvell PXA9XX SD Host Controller support (PXAV2)" 349 depends on HAVE_CLK 350 depends on MMC_SDHCI_PLTFM 351 depends on ARCH_MMP || COMPILE_TEST 352 default CPU_PXA910 353 help 354 This selects the Marvell(R) PXAV2 SD Host Controller. 355 If you have a PXA9XX platform with SD Host Controller 356 and a card slot, say Y or M here. 357 358 If unsure, say N. 359 360config MMC_SDHCI_SPEAR 361 tristate "SDHCI support on ST SPEAr platform" 362 depends on MMC_SDHCI 363 depends on PLAT_SPEAR || COMPILE_TEST 364 depends on OF 365 help 366 This selects the Secure Digital Host Controller Interface (SDHCI) 367 often referrered to as the HSMMC block in some of the ST SPEAR range 368 of SoC 369 370 If you have a controller with this interface, say Y or M here. 371 372 If unsure, say N. 373 374config MMC_SDHCI_S3C_DMA 375 bool "DMA support on S3C SDHCI" 376 depends on MMC_SDHCI_S3C 377 help 378 Enable DMA support on the Samsung S3C SDHCI glue. The DMA 379 has proved to be problematic if the controller encounters 380 certain errors, and thus should be treated with care. 381 382 YMMV. 383 384config MMC_SDHCI_BCM_KONA 385 tristate "SDHCI support on Broadcom KONA platform" 386 depends on ARCH_BCM_MOBILE || COMPILE_TEST 387 depends on MMC_SDHCI_PLTFM 388 help 389 This selects the Broadcom Kona Secure Digital Host Controller 390 Interface(SDHCI) support. 391 This is used in Broadcom mobile SoCs. 392 393 If you have a controller with this interface, say Y or M here. 394 395config MMC_SDHCI_F_SDH30 396 tristate "SDHCI support for Fujitsu Semiconductor F_SDH30" 397 depends on MMC_SDHCI_PLTFM 398 depends on OF || ACPI 399 help 400 This selects the Secure Digital Host Controller Interface (SDHCI) 401 Needed by some Fujitsu SoC for MMC / SD / SDIO support. 402 If you have a controller with this interface, say Y or M here. 403 404 If unsure, say N. 405 406config MMC_SDHCI_MILBEAUT 407 tristate "SDHCI support for Socionext Milbeaut Serieas using F_SDH30" 408 depends on MMC_SDHCI_PLTFM 409 depends on OF 410 help 411 This selects the Secure Digital Host Controller Interface (SDHCI) 412 Needed by Milbeaut SoC for MMC / SD / SDIO support. 413 If you have a controller with this interface, say Y or M here. 414 415 If unsure, say N. 416 417config MMC_SDHCI_IPROC 418 tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller" 419 depends on ARCH_BCM2835 || ARCH_BCM_IPROC || ARCH_BRCMSTB || COMPILE_TEST 420 depends on MMC_SDHCI_PLTFM 421 depends on OF || ACPI 422 default ARCH_BCM_IPROC 423 select MMC_SDHCI_IO_ACCESSORS 424 help 425 This selects the iProc SD/MMC controller. 426 427 If you have a BCM2835 or IPROC platform with SD or MMC devices, 428 say Y or M here. 429 430 If unsure, say N. 431 432config MMC_MESON_GX 433 tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support" 434 depends on ARCH_MESON|| COMPILE_TEST 435 depends on COMMON_CLK 436 help 437 This selects support for the Amlogic SD/MMC Host Controller 438 found on the S905/GX*/AXG family of SoCs. This controller is 439 MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces. 440 441 If you have a controller with this interface, say Y here. 442 443config MMC_MESON_MX_SDHC 444 tristate "Amlogic Meson SDHC Host Controller support" 445 depends on (ARM && ARCH_MESON) || COMPILE_TEST 446 depends on COMMON_CLK 447 depends on OF 448 help 449 This selects support for the SDHC Host Controller on 450 Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs. 451 The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x 452 with 1, 4, and 8 bit bus widths. 453 454 If you have a controller with this interface, say Y or M here. 455 If unsure, say N. 456 457config MMC_MESON_MX_SDIO 458 tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support" 459 depends on ARCH_MESON || COMPILE_TEST 460 depends on COMMON_CLK 461 depends on OF_ADDRESS 462 help 463 This selects support for the SD/MMC Host Controller on 464 Amlogic Meson6, Meson8 and Meson8b SoCs. 465 466 If you have a controller with this interface, say Y or M here. 467 If unsure, say N. 468 469config MMC_MOXART 470 tristate "MOXART SD/MMC Host Controller support" 471 depends on ARCH_MOXART || COMPILE_TEST 472 help 473 This selects support for the MOXART SD/MMC Host Controller. 474 MOXA provides one multi-functional card reader which can 475 be found on some embedded hardware such as UC-7112-LX. 476 If you have a controller with this interface, say Y here. 477 478config MMC_SDHCI_ST 479 tristate "SDHCI support on STMicroelectronics SoC" 480 depends on ARCH_STI || FSP2 || COMPILE_TEST 481 depends on MMC_SDHCI_PLTFM 482 select MMC_SDHCI_IO_ACCESSORS 483 help 484 This selects the Secure Digital Host Controller Interface in 485 STMicroelectronics SoCs. 486 487 If you have a controller with this interface, say Y or M here. 488 If unsure, say N. 489 490config MMC_OMAP 491 tristate "TI OMAP Multimedia Card Interface support" 492 depends on ARCH_OMAP 493 depends on TPS65010 || !MACH_OMAP_H2 494 help 495 This selects the TI OMAP Multimedia card Interface. 496 If you have an OMAP board with a Multimedia Card slot, 497 say Y or M here. 498 499 If unsure, say N. 500 501config MMC_OMAP_HS 502 tristate "TI OMAP High Speed Multimedia Card Interface support" 503 depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST 504 help 505 This selects the TI OMAP High Speed Multimedia card Interface. 506 If you have an omap2plus board with a Multimedia Card slot, 507 say Y or M here. 508 509 If unsure, say N. 510 511config MMC_WBSD 512 tristate "Winbond W83L51xD SD/MMC Card Interface support" 513 depends on ISA_DMA_API 514 help 515 This selects the Winbond(R) W83L51xD Secure digital and 516 Multimedia card Interface. 517 If you have a machine with a integrated W83L518D or W83L519D 518 SD/MMC card reader, say Y or M here. 519 520 If unsure, say N. 521 522config MMC_ALCOR 523 tristate "Alcor Micro/Alcor Link SD/MMC controller" 524 depends on MISC_ALCOR_PCI 525 help 526 Say Y here to include driver code to support SD/MMC card interface 527 of Alcor Micro PCI-E card reader 528 529config MMC_AU1X 530 tristate "Alchemy AU1XX0 MMC Card Interface support" 531 depends on MIPS_ALCHEMY 532 help 533 This selects the AMD Alchemy(R) Multimedia card interface. 534 If you have a Alchemy platform with a MMC slot, say Y or M here. 535 536 If unsure, say N. 537 538config MMC_ATMELMCI 539 tristate "Atmel SD/MMC Driver (Multimedia Card Interface)" 540 depends on ARCH_AT91 541 help 542 This selects the Atmel Multimedia Card Interface driver. 543 If you have an AT91 platform with a Multimedia Card slot, 544 say Y or M here. 545 546 If unsure, say N. 547 548config MMC_SDHCI_MSM 549 tristate "Qualcomm SDHCI Controller Support" 550 depends on ARCH_QCOM || COMPILE_TEST 551 depends on MMC_SDHCI_PLTFM 552 select MMC_SDHCI_IO_ACCESSORS 553 select MMC_CQHCI 554 select QCOM_SCM if MMC_CRYPTO 555 help 556 This selects the Secure Digital Host Controller Interface (SDHCI) 557 support present in Qualcomm SOCs. The controller supports 558 SD/MMC/SDIO devices. 559 560 If you have a controller with this interface, say Y or M here. 561 562 If unsure, say N. 563 564config MMC_MXC 565 tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support" 566 depends on ARCH_MXC || PPC_MPC512x 567 help 568 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x 569 Multimedia Card Interface. If you have an i.MX or MPC512x platform 570 with a Multimedia Card slot, say Y or M here. 571 572 If unsure, say N. 573 574config MMC_MXS 575 tristate "Freescale MXS Multimedia Card Interface support" 576 depends on ARCH_MXS && MXS_DMA 577 help 578 This selects the Freescale SSP MMC controller found on MXS based 579 platforms like mx23/28. 580 581 If unsure, say N. 582 583config MMC_TIFM_SD 584 tristate "TI Flash Media MMC/SD Interface support" 585 depends on PCI 586 select TIFM_CORE 587 help 588 Say Y here if you want to be able to access MMC/SD cards with 589 the Texas Instruments(R) Flash Media card reader, found in many 590 laptops. 591 This option 'selects' (turns on, enables) 'TIFM_CORE', but you 592 probably also need appropriate card reader host adapter, such as 593 'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support 594 (TIFM_7XX1)'. 595 596 To compile this driver as a module, choose M here: the 597 module will be called tifm_sd. 598 599config MMC_MVSDIO 600 tristate "Marvell MMC/SD/SDIO host driver" 601 depends on PLAT_ORION || (COMPILE_TEST && ARM) 602 depends on OF 603 help 604 This selects the Marvell SDIO host driver. 605 SDIO may currently be found on the Kirkwood 88F6281 and 88F6192 606 SoC controllers. 607 608 To compile this driver as a module, choose M here: the 609 module will be called mvsdio. 610 611config MMC_DAVINCI 612 tristate "TI DAVINCI Multimedia Card Interface support" 613 depends on ARCH_DAVINCI || COMPILE_TEST 614 help 615 This selects the TI DAVINCI Multimedia card Interface. 616 If you have an DAVINCI board with a Multimedia Card slot, 617 say Y or M here. If unsure, say N. 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 || COMPILE_TEST 636 depends on S3C24XX_DMAC || COMPILE_TEST 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 hardware. 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 select RESET_CONTROLLER if ARCH_RENESAS 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_SH_MMCIF 874 tristate "SuperH Internal MMCIF support" 875 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 876 help 877 This selects the MMC Host Interface controller (MMCIF) found in various 878 Renesas SoCs for SH and ARM architectures. 879 880 881config MMC_JZ4740 882 tristate "Ingenic JZ47xx SD/Multimedia Card Interface support" 883 depends on MIPS 884 help 885 This selects support for the SD/MMC controller on Ingenic 886 JZ4740, JZ4750, JZ4770 and JZ4780 SoCs. 887 888 If you have a board based on such a SoC and with a SD/MMC slot, 889 say Y or M here. 890 891config MMC_VUB300 892 tristate "VUB300 USB to SDIO/SD/MMC Host Controller support" 893 depends on USB 894 help 895 This selects support for Elan Digital Systems' VUB300 chip. 896 897 The VUB300 is a USB-SDIO Host Controller Interface chip 898 that enables the host computer to use SDIO/SD/MMC cards 899 via a USB 2.0 or USB 1.1 host. 900 901 The VUB300 chip will be found in both physically separate 902 USB to SDIO/SD/MMC adapters and embedded on some motherboards. 903 904 The VUB300 chip supports SD and MMC memory cards in addition 905 to single and multifunction SDIO cards. 906 907 Some SDIO cards will need a firmware file to be loaded and 908 sent to VUB300 chip in order to achieve better data throughput. 909 Download these "Offload Pseudocode" from Elan Digital Systems' 910 web-site http://www.elandigitalsystems.com/support/downloads.php 911 and put them in /lib/firmware. Note that without these additional 912 firmware files the VUB300 chip will still function, but not at 913 the best obtainable data rate. 914 915 To compile this mmc host controller driver as a module, 916 choose M here: the module will be called vub300. 917 918 If you have a computer with an embedded VUB300 chip 919 or if you intend connecting a USB adapter based on a 920 VUB300 chip say Y or M here. 921 922config MMC_USHC 923 tristate "USB SD Host Controller (USHC) support" 924 depends on USB 925 help 926 This selects support for USB SD Host Controllers based on 927 the Cypress Astoria chip with firmware compliant with CSR's 928 USB SD Host Controller specification (CS-118793-SP). 929 930 CSR boards with this device include: USB<>SDIO (M1985v2), 931 and Ultrasira. 932 933 Note: These controllers only support SDIO cards and do not 934 support MMC or SD memory cards. 935 936config MMC_WMT 937 tristate "Wondermedia SD/MMC Host Controller support" 938 depends on ARCH_VT8500 939 default y 940 help 941 This selects support for the SD/MMC Host Controller on 942 Wondermedia WM8505/WM8650 based SoCs. 943 944 To compile this driver as a module, choose M here: the 945 module will be called wmt-sdmmc. 946 947config MMC_USDHI6ROL0 948 tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support" 949 depends on HAS_DMA 950 help 951 This selects support for the Renesas USDHI6ROL0 SD/SDIO 952 Host Controller 953 954config MMC_REALTEK_PCI 955 tristate "Realtek PCI-E SD/MMC Card Interface Driver" 956 depends on MISC_RTSX_PCI 957 help 958 Say Y here to include driver code to support SD/MMC card interface 959 of Realtek PCI-E card reader 960 961config MMC_REALTEK_USB 962 tristate "Realtek USB SD/MMC Card Interface Driver" 963 depends on MISC_RTSX_USB 964 help 965 Say Y here to include driver code to support SD/MMC card interface 966 of Realtek RTS5129/39 series card reader 967 968config MMC_SUNXI 969 tristate "Allwinner sunxi SD/MMC Host Controller support" 970 depends on ARCH_SUNXI || COMPILE_TEST 971 depends on SUNXI_CCU 972 help 973 This selects support for the SD/MMC Host Controller on 974 Allwinner sunxi SoCs. 975 976config MMC_CQHCI 977 tristate "Command Queue Host Controller Interface support" 978 depends on HAS_DMA 979 help 980 This selects the Command Queue Host Controller Interface (CQHCI) 981 support present in host controllers of Qualcomm Technologies, Inc 982 amongst others. 983 This controller supports eMMC devices with command queue support. 984 985 If you have a controller with this interface, say Y or M here. 986 987 If unsure, say N. 988 989config MMC_HSQ 990 tristate "MMC Host Software Queue support" 991 help 992 This selects the MMC Host Software Queue support. This may increase 993 performance, if the host controller and its driver supports it. 994 995 If you have a controller/driver supporting this interface, say Y or M 996 here. 997 998 If unsure, say N. 999 1000config MMC_TOSHIBA_PCI 1001 tristate "Toshiba Type A SD/MMC Card Interface Driver" 1002 depends on PCI 1003 1004config MMC_BCM2835 1005 tristate "Broadcom BCM2835 SDHOST MMC Controller support" 1006 depends on ARCH_BCM2835 || COMPILE_TEST 1007 help 1008 This selects the BCM2835 SDHOST MMC controller. If you have 1009 a BCM2835 platform with SD or MMC devices, say Y or M here. 1010 1011 Note that the BCM2835 has two SD controllers: The Arasan 1012 sdhci controller (supported by MMC_SDHCI_IPROC) and a custom 1013 sdhost controller (supported by this driver). 1014 1015 If unsure, say N. 1016 1017config MMC_MTK 1018 tristate "MediaTek SD/MMC Card Interface support" 1019 depends on HAS_DMA 1020 depends on COMMON_CLK 1021 select REGULATOR 1022 select MMC_CQHCI 1023 help 1024 This selects the MediaTek(R) Secure digital and Multimedia card Interface. 1025 If you have a machine with a integrated SD/MMC card reader, say Y or M here. 1026 This is needed if support for any SD/SDIO/MMC devices is required. 1027 If unsure, say N. 1028 1029config MMC_SDHCI_MICROCHIP_PIC32 1030 tristate "Microchip PIC32MZDA SDHCI support" 1031 depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM 1032 help 1033 This selects the Secure Digital Host Controller Interface (SDHCI) 1034 for PIC32MZDA platform. 1035 1036 If you have a controller with this interface, say Y or M here. 1037 1038 If unsure, say N. 1039 1040config MMC_SDHCI_BRCMSTB 1041 tristate "Broadcom SDIO/SD/MMC support" 1042 depends on ARCH_BRCMSTB || BMIPS_GENERIC 1043 depends on MMC_SDHCI_PLTFM 1044 select MMC_CQHCI 1045 default y 1046 help 1047 This selects support for the SDIO/SD/MMC Host Controller on 1048 Broadcom STB SoCs. 1049 1050 If unsure, say Y. 1051 1052config MMC_SDHCI_XENON 1053 tristate "Marvell Xenon eMMC/SD/SDIO SDHCI driver" 1054 depends on MMC_SDHCI_PLTFM 1055 help 1056 This selects Marvell Xenon eMMC/SD/SDIO SDHCI. 1057 If you have a controller with this interface, say Y or M here. 1058 If unsure, say N. 1059 1060config MMC_SDHCI_OMAP 1061 tristate "TI SDHCI Controller Support" 1062 depends on MMC_SDHCI_PLTFM && OF 1063 select THERMAL 1064 imply TI_SOC_THERMAL 1065 select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE 1066 help 1067 This selects the Secure Digital Host Controller Interface (SDHCI) 1068 support present in TI's DRA7 SOCs. The controller supports 1069 SD/MMC/SDIO devices. 1070 1071 If you have a controller with this interface, say Y or M here. 1072 1073 If unsure, say N. 1074 1075config MMC_SDHCI_AM654 1076 tristate "Support for the SDHCI Controller in TI's AM654 SOCs" 1077 depends on MMC_SDHCI_PLTFM && OF && REGMAP_MMIO 1078 select MMC_SDHCI_IO_ACCESSORS 1079 select MMC_CQHCI 1080 help 1081 This selects the Secure Digital Host Controller Interface (SDHCI) 1082 support present in TI's AM654 SOCs. The controller supports 1083 SD/MMC/SDIO devices. 1084 1085 If you have a controller with this interface, say Y or M here. 1086 1087 If unsure, say N. 1088 1089config MMC_OWL 1090 tristate "Actions Semi Owl SD/MMC Host Controller support" 1091 depends on HAS_DMA 1092 depends on ARCH_ACTIONS || COMPILE_TEST 1093 help 1094 This selects support for the SD/MMC Host Controller on 1095 Actions Semi Owl SoCs. 1096 1097config MMC_SDHCI_EXTERNAL_DMA 1098 bool 1099 1100config MMC_LITEX 1101 tristate "LiteX MMC Host Controller support" 1102 depends on ((PPC_MICROWATT || LITEX) && OF && HAVE_CLK) || COMPILE_TEST 1103 select REGULATOR 1104 select REGULATOR_FIXED_VOLTAGE 1105 help 1106 This selects support for the MMC Host Controller found in LiteX SoCs. 1107 1108 To compile this driver as a module, choose M here: the 1109 module will be called litex_mmc. 1110 1111 If unsure, say N. 1112