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