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