1menu "MMC Host controller Support" 2 3config MMC 4 bool "MMC/SD/SDIO card support" 5 default ARM || PPC || SANDBOX 6 select BLK 7 select DM_MMC 8 help 9 This selects MultiMediaCard, Secure Digital and Secure 10 Digital I/O support. 11 12 If you want MMC/SD/SDIO support, you should say Y here and 13 also to your specific host controller driver. 14 15config MMC_WRITE 16 bool "support for MMC/SD write operations" 17 depends on MMC 18 default y 19 help 20 Enable write access to MMC and SD Cards 21 22config MMC_PWRSEQ 23 bool "HW reset support for eMMC" 24 depends on PWRSEQ && DM_GPIO 25 help 26 This select Hardware reset support aka pwrseq-emmc for eMMC 27 devices. 28 29config SPL_MMC_PWRSEQ 30 bool "HW reset support for eMMC in SPL" 31 depends on SPL_PWRSEQ && SPL_DM_GPIO 32 default y if MMC_PWRSEQ 33 help 34 This select Hardware reset support aka pwrseq-emmc for eMMC 35 devices in SPL. 36 37config MMC_BROKEN_CD 38 bool "Poll for broken card detection case" 39 help 40 If card detection feature is broken, just poll to detect. 41 42config DM_MMC 43 bool 44 depends on DM 45 help 46 This enables the MultiMediaCard (MMC) driver model uclass which 47 supports MMC and Secure Digital I/O (SDIO) cards. Both removable (SD, 48 micro-SD, etc.) and non-removable (e.g. eMMC chip) devices are 49 supported. These appear as block devices in U-Boot and can support 50 filesystems such as EXT4 and FAT. 51 52config SPL_DM_MMC 53 bool "Enable MMC controllers using Driver Model in SPL" 54 depends on SPL_DM && DM_MMC 55 default n if ARCH_MVEBU && !MVEBU_SPL_BOOT_DEVICE_MMC 56 default y 57 select SPL_BLK 58 help 59 This enables the MultiMediaCard (MMC) uclass which supports MMC and 60 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.) 61 and non-removable (e.g. eMMC chip) devices are supported. These 62 appear as block devices in U-Boot and can support filesystems such 63 as EXT4 and FAT. 64 65config TPL_DM_MMC 66 bool "Enable MMC controllers using Driver Model in TPL" 67 depends on TPL_DM && DM_MMC 68 select TPL_BLK 69 help 70 This enables the MultiMediaCard (MMC) uclass which supports MMC and 71 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.) 72 and non-removable (e.g. eMMC chip) devices are supported. These 73 appear as block devices in U-Boot and can support filesystems such 74 as EXT4 and FAT. 75 76if MMC 77 78config MMC_SDHCI_ADMA_HELPERS 79 bool 80 81config MMC_SPI 82 bool "Support for SPI-based MMC controller" 83 depends on DM_SPI 84 help 85 This selects SPI-based MMC controllers. 86 If you have an MMC controller on a SPI bus, say Y here. 87 88 If unsure, say N. 89 90config MMC_SPI_CRC_ON 91 bool "Support CRC for SPI-based MMC controller" 92 depends on MMC_SPI 93 default y 94 help 95 This enables CRC for SPI-based MMC controllers. 96 97 If unsure, say N. 98 99config ARM_PL180_MMCI 100 bool "ARM AMBA Multimedia Card Interface and compatible support" 101 help 102 This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card 103 Interface (PL180, PL181 and compatible) support. 104 If you have an ARM(R) platform with a Multimedia Card slot, 105 say Y here. 106 107config MMC_QUIRKS 108 bool "Enable quirks" 109 default y 110 help 111 Some cards and hosts may sometimes behave unexpectedly (quirks). 112 This option enable workarounds to handle those quirks. Some of them 113 are enabled by default, other may require additional flags or are 114 enabled by the host driver. 115 116config SYS_MMC_MAX_BLK_COUNT 117 int "Block count limit" 118 default 65535 119 help 120 The block count limit on MMC based devices. We default to 65535 due 121 to a 16bit register limit on some hardware. 122 123config MMC_HW_PARTITIONING 124 bool "Support for HW partitioning command(eMMC)" 125 default y 126 help 127 This adds a command and an API to do hardware partitioning on eMMC 128 devices. 129 130config SUPPORT_EMMC_RPMB 131 bool "Support eMMC replay protected memory block (RPMB)" 132 imply CMD_MMC_RPMB 133 select SHA256 134 help 135 Enable support for reading, writing and programming the 136 key for the Replay Protection Memory Block partition in eMMC. 137 138config SUPPORT_EMMC_BOOT 139 bool "Support some additional features of the eMMC boot partitions" 140 help 141 Enable support for eMMC boot partitions. This also enables 142 extensions within the mmc command. 143 144config MMC_IO_VOLTAGE 145 bool "Support IO voltage configuration" 146 help 147 IO voltage configuration allows selecting the voltage level of the IO 148 lines (not the level of main supply). This is required for UHS 149 support. For eMMC this not mandatory, but not enabling this option may 150 prevent the driver of using the faster modes. 151 152config SPL_MMC_IO_VOLTAGE 153 bool "Support IO voltage configuration in SPL" 154 depends on SPL_MMC 155 help 156 IO voltage configuration allows selecting the voltage level of the IO 157 lines (not the level of main supply). This is required for UHS 158 support. For eMMC this not mandatory, but not enabling this option may 159 prevent the driver of using the faster modes. 160 161config MMC_SUPPORTS_TUNING 162 bool 163 164config SPL_MMC_SUPPORTS_TUNING 165 bool 166 167config MMC_UHS_SUPPORT 168 bool "enable UHS support" 169 depends on MMC_IO_VOLTAGE 170 select MMC_SUPPORTS_TUNING 171 help 172 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC 173 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus 174 frequency can go up to 208MHz (SDR104) 175 176config SPL_MMC_UHS_SUPPORT 177 bool "enable UHS support in SPL" 178 depends on SPL_MMC_IO_VOLTAGE 179 select SPL_MMC_SUPPORTS_TUNING 180 help 181 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC 182 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus 183 frequency can go up to 208MHz (SDR104) 184 185config MMC_HS400_ES_SUPPORT 186 bool "enable HS400 Enhanced Strobe support" 187 help 188 The HS400 Enhanced Strobe mode is support by some eMMC. The bus 189 frequency is up to 200MHz. This mode does not tune the IO. 190 191config SPL_MMC_HS400_ES_SUPPORT 192 bool "enable HS400 Enhanced Strobe support in SPL" 193 depends on SPL_MMC 194 help 195 The HS400 Enhanced Strobe mode is support by some eMMC. The bus 196 frequency is up to 200MHz. This mode does not tune the IO. 197 198config MMC_HS400_SUPPORT 199 bool "enable HS400 support" 200 select MMC_HS200_SUPPORT 201 help 202 The HS400 mode is support by some eMMC. The bus frequency is up to 203 200MHz. This mode requires tuning the IO. 204 205config SPL_MMC_HS400_SUPPORT 206 bool "enable HS400 support in SPL" 207 depends on SPL_MMC 208 select SPL_MMC_HS200_SUPPORT 209 help 210 The HS400 mode is support by some eMMC. The bus frequency is up to 211 200MHz. This mode requires tuning the IO. 212 213config MMC_HS200_SUPPORT 214 bool "enable HS200 support" 215 select MMC_SUPPORTS_TUNING 216 help 217 The HS200 mode is support by some eMMC. The bus frequency is up to 218 200MHz. This mode requires tuning the IO. 219 220config SPL_MMC_HS200_SUPPORT 221 bool "enable HS200 support in SPL" 222 depends on SPL_MMC 223 select SPL_MMC_SUPPORTS_TUNING 224 help 225 The HS200 mode is support by some eMMC. The bus frequency is up to 226 200MHz. This mode requires tuning the IO. 227 228config MMC_VERBOSE 229 bool "Output more information about the MMC" 230 default y 231 help 232 Enable the output of more information about the card such as the 233 operating mode. 234 235config MMC_TRACE 236 bool "MMC debugging" 237 help 238 This is an option for use by developer. Enable MMC core debugging. 239 240 If you need to see the MMC core message, say Y. 241 242config MMC_DAVINCI 243 bool "TI DAVINCI Multimedia Card Interface support" 244 depends on ARCH_DAVINCI 245 default y 246 help 247 This selects the TI DAVINCI Multimedia card Interface. 248 If you have an DAVINCI board with a Multimedia Card slot, 249 say Y here. If unsure, say N. 250 251config MMC_DW 252 bool "Synopsys DesignWare Memory Card Interface" 253 select BOUNCE_BUFFER 254 help 255 This selects support for the Synopsys DesignWare Mobile Storage IP 256 block, this provides host support for SD and MMC interfaces, in both 257 PIO, internal DMA mode and external DMA mode. 258 259config MMC_DW_CORTINA 260 bool "Cortina specific extensions for Synopsys DW Memory Card Interface" 261 depends on MMC_DW 262 help 263 This selects support for Cortina SoC specific extensions to the 264 Synopsys DesignWare Memory Card Interface driver. Select this option 265 for platforms based on Cortina CAxxxx Soc's. 266 267config MMC_DW_EXYNOS 268 bool "Exynos specific extensions for Synopsys DW Memory Card Interface" 269 depends on ARCH_EXYNOS 270 depends on MMC_DW 271 default y 272 help 273 This selects support for Samsung Exynos SoC specific extensions to the 274 Synopsys DesignWare Memory Card Interface driver. Select this option 275 for platforms based on Exynos4 and Exynos5 SoC's. 276 277config MMC_DW_K3 278 bool "K3 specific extensions for Synopsys DW Memory Card Interface" 279 depends on MMC_DW 280 help 281 This selects support for Hisilicon K3 SoC specific extensions to the 282 Synopsys DesignWare Memory Card Interface driver. Select this option 283 for platforms based on Hisilicon K3 SoC's. 284 285config MMC_DW_ROCKCHIP 286 bool "Rockchip SD/MMC controller support" 287 depends on OF_CONTROL && ARCH_ROCKCHIP 288 depends on MMC_DW 289 help 290 This enables support for the Rockchip SD/MMM controller, which is 291 based on Designware IP. The device is compatible with at least 292 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well 293 as removeable SD and micro-SD cards. 294 295config MMC_SDHCI_ADI 296 bool "ADI SD/MMC controller support" 297 depends on ARCH_SC5XX 298 depends on DM_MMC && OF_CONTROL 299 depends on MMC_SDHCI && MMC_SDHCI_ADMA 300 help 301 This enables support for the SD/MMC controller included in some Analog 302 Devices SC5XX Socs. 303 304config MMC_DW_SOCFPGA 305 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface" 306 depends on ARCH_SOCFPGA 307 depends on MMC_DW 308 default y 309 help 310 This selects support for Altera SOCFPGA specific extensions to the 311 Synopsys DesignWare Memory Card Interface driver. Select this option 312 for platforms based on Altera SOCFPGA. 313 314config MMC_DW_SNPS 315 bool "Extensions for DW Memory Card Interface used in Synopsys ARC devboards" 316 depends on MMC_DW 317 depends on OF_CONTROL 318 depends on CLK 319 help 320 This selects support for Synopsys DesignWare Memory Card Interface driver 321 extensions used in various Synopsys ARC devboards. 322 323config NEXELL_DWMMC 324 bool "Nexell SD/MMC controller support" 325 depends on ARCH_NEXELL 326 depends on MMC_DW 327 depends on PINCTRL_NEXELL 328 default y 329 330config MMC_MESON_GX 331 bool "Meson GX EMMC controller support" 332 depends on ARCH_MESON 333 help 334 Support for EMMC host controller on Meson GX ARM SoCs platform (S905) 335 336config MMC_OWL 337 bool "Actions OWL Multimedia Card Interface support" 338 depends on ARCH_OWL 339 help 340 This selects the OWL SD/MMC host controller found on board 341 based on Actions S700/S900 SoC. 342 343config MMC_MXS 344 bool "Freescale MXS Multimedia Card Interface support" 345 depends on MX23 || MX28 || MX6 || MX7 346 select BOUNCE_BUFFER 347 select APBH_DMA 348 select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7 349 select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7 350 help 351 This selects the Freescale SSP MMC controller found on MXS based 352 platforms like mx23/28. 353 354 If unsure, say N. 355 356config MMC_PCI 357 bool "Support for MMC controllers on PCI" 358 depends on MMC_SDHCI 359 help 360 This selects PCI-based MMC controllers. 361 If you have an MMC controller on a PCI bus, say Y here. 362 363config MMC_OCTEONTX 364 bool "Marvell Octeon Multimedia Card Interface support" 365 depends on (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2) 366 select MMC_SUPPORTS_TUNING if ARCH_OCTEONTX2 367 help 368 This selects the Octeon Multimedia card Interface. 369 If you have an OcteonTX/TX2 or MIPS Octeon board with a 370 Multimedia Card slot, say Y here. 371 372 If unsure, say N. 373 374config MVEBU_MMC 375 bool "Kirkwood MMC controller support" 376 depends on ARCH_KIRKWOOD 377 help 378 Support for MMC host controller on Kirkwood SoCs. 379 If you are on a Kirkwood architecture, say Y here. 380 381 If unsure, say N. 382 383config MMC_OMAP_HS 384 bool "TI OMAP High Speed Multimedia Card Interface support" 385 depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS 386 select DM_REGULATOR_PBIAS if DM_REGULATOR 387 help 388 This selects the TI OMAP High Speed Multimedia card Interface. 389 If you have an omap2plus board with a Multimedia Card slot, 390 say Y here. 391 392 If unsure, say N. 393 394config MMC_OMAP_HS_ADMA 395 bool "ADMA support for OMAP HS MMC" 396 depends on MMC_OMAP_HS && !OMAP34XX 397 default y if !AM33XX 398 help 399 This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA 400 controller). If supported by the hardware, selecting this option will 401 increase performances. 402 403config MMC_OMAP36XX_PINS 404 bool "Enable MMC1 on OMAP36xx/37xx" 405 depends on OMAP34XX && MMC_OMAP_HS 406 help 407 This enables extended-drain in the MMC/SD/SDIO1I/O and 408 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129) 409 specific to the OMAP36xx/37xx using MMC1 410 411 If you have a controller with this interface, say Y here. 412 413 If unsure, say N. 414 415config HSMMC2_8BIT 416 bool "Enable 8-bit interface for eMMC (interface #2)" 417 depends on MMC_OMAP_HS && (OMAP54XX || DRA7XX || AM33XX || \ 418 AM43XX || ARCH_KEYSTONE) 419 420config SH_MMCIF 421 bool "SuperH/Renesas ARM SoCs on-chip MMCIF host controller support" 422 depends on ARCH_RENESAS || SH 423 help 424 Support for the on-chip MMCIF host controller on SuperH/Renesas ARM SoCs platform 425 426config MMC_UNIPHIER 427 bool "UniPhier SD/MMC Host Controller support" 428 depends on ARCH_UNIPHIER 429 depends on OF_CONTROL 430 help 431 This selects support for the Matsushita SD/MMC Host Controller on 432 SocioNext UniPhier SoCs. 433 434config RENESAS_SDHI 435 bool "Renesas R-Car SD/MMC Host Controller support" 436 depends on ARCH_RENESAS 437 depends on OF_CONTROL 438 select BOUNCE_BUFFER 439 help 440 This selects support for the Matsushita SD/MMC Host Controller on 441 Renesas R-Car SoCs. 442 443config MMC_BCM2835 444 bool "BCM2835 family custom SD/MMC Host Controller support" 445 depends on ARCH_BCM283X 446 depends on OF_CONTROL 447 default y 448 help 449 This selects support for the custom SD host controller in the BCM2835 450 family of devices. 451 452 If you have a BCM2835 platform with SD or MMC devices, say Y here. 453 454 If unsure, say N. 455 456config JZ47XX_MMC 457 bool "Ingenic JZ47xx SD/MMC Host Controller support" 458 depends on ARCH_JZ47XX 459 help 460 This selects support for the SD Card Controller on Ingenic JZ47xx SoCs. 461 462config MMC_SANDBOX 463 bool "Sandbox MMC support" 464 depends on SANDBOX 465 depends on OF_CONTROL 466 help 467 This select a dummy sandbox MMC driver. At present this does nothing 468 other than allow sandbox to be build with MMC support. This 469 improves build coverage for sandbox and makes it easier to detect 470 MMC build errors with sandbox. 471 472config MMC_SDHCI 473 bool "Secure Digital Host Controller Interface support" 474 help 475 This selects the generic Secure Digital Host Controller Interface. 476 It is used by manufacturers such as Texas Instruments(R), Ricoh(R) 477 and Toshiba(R). Most controllers found in laptops are of this type. 478 479 If you have a controller with this interface, say Y here. 480 481 If unsure, say N. 482 483config MMC_SDHCI_IO_ACCESSORS 484 bool 485 depends on MMC_SDHCI 486 help 487 This is silent Kconfig symbol that is selected by the drivers that 488 need to overwrite SDHCI IO memory accessors. 489 490config MMC_SDHCI_SDMA 491 bool "Support SDHCI SDMA" 492 depends on MMC_SDHCI 493 help 494 This enables support for the SDMA (Single Operation DMA) defined 495 in the SD Host Controller Standard Specification Version 1.00 . 496 497config SPL_MMC_SDHCI_SDMA 498 bool "Support SDHCI SDMA in SPL" 499 depends on SPL_MMC && MMC_SDHCI 500 default y if MMC_SDHCI_SDMA 501 help 502 This enables support for the SDMA (Single Operation DMA) defined 503 in the SD Host Controller Standard Specification Version 1.00 in SPL. 504 505config MMC_SDHCI_ADMA 506 bool "Support SDHCI ADMA2" 507 depends on MMC_SDHCI 508 select MMC_SDHCI_ADMA_HELPERS 509 help 510 This enables support for the ADMA (Advanced DMA) defined 511 in the SD Host Controller Standard Specification Version 3.00 512 513config SPL_MMC_SDHCI_ADMA 514 bool "Support SDHCI ADMA2 in SPL" 515 depends on SPL_MMC && MMC_SDHCI 516 select MMC_SDHCI_ADMA_HELPERS 517 help 518 This enables support for the ADMA (Advanced DMA) defined 519 in the SD Host Controller Standard Specification Version 3.00 in SPL. 520 521config MMC_SDHCI_ADMA_FORCE_32BIT 522 bool "Force 32 bit mode for ADMA on 64 bit platforms" 523 depends on MMC_SDHCI_ADMA_HELPERS 524 help 525 This forces SDHCI ADMA to be built for 32 bit descriptors, even 526 on a 64 bit platform where they would otherwise be assumed to 527 be 64 bits. This is necessary for certain hardware platforms 528 that are 64-bit but include only 32-bit support within the selected 529 SD host controller IP. 530 531config MMC_SDHCI_ADMA_64BIT 532 bool "Use SHDCI ADMA with 64 bit descriptors" 533 depends on MMC_SDHCI_ADMA_HELPERS 534 depends on !MMC_SDHCI_ADMA_FORCE_32BIT 535 default y if DMA_ADDR_T_64BIT 536 help 537 This selects 64 bit descriptors for SDHCI ADMA. It is enabled by 538 default on 64 bit systems, but can be disabled if one of these 539 systems includes 32-bit ADMA. 540 541config FIXED_SDHCI_ALIGNED_BUFFER 542 hex "SDRAM address for fixed buffer" 543 depends on SPL && MVEBU_SPL_BOOT_DEVICE_MMC 544 default 0x00180000 545 help 546 On the Marvell Armada 38x when the SPL runs it located in internal 547 SRAM which is the L2 cache locked to memory. When the MMC buffers 548 are located on the stack (or bss), the SDIO controller (SDHCI) can't 549 write into this L2 cache memory. 550 551 This specifies the address of a fixed buffer located in SDRAM that 552 will be used for all SDHCI transfers in the SPL. 553 554config MMC_SDHCI_ASPEED 555 bool "Aspeed SDHCI controller" 556 depends on ARCH_ASPEED 557 depends on MMC_SDHCI 558 select MISC 559 help 560 Enables support for the Aspeed SDHCI 2.0 controller present on Aspeed 561 SoCs. This device is compatible with SD 3.0 and/or MMC 4.3 562 specifications. On the AST2600, the device is also compatible with 563 MMC 5.1 and eMMC 3.0. 564 565config MMC_SDHCI_ATMEL 566 bool "Atmel SDHCI controller support" 567 depends on ARCH_AT91 568 depends on ARCH_AT91 569 depends on MMC_SDHCI 570 help 571 This enables support for the Atmel SDHCI controller, which supports 572 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD 573 Memory Card Specification V3.0, and the SDIO V3.0 specification. 574 It is compliant with the SD Host Controller Standard V3.0 575 specification. 576 577config MMC_SDHCI_BCM2835 578 tristate "SDHCI support for the BCM2835 SD/MMC Controller" 579 depends on ARCH_BCM283X 580 depends on MMC_SDHCI 581 select MMC_SDHCI_IO_ACCESSORS 582 help 583 This selects the BCM2835 SD/MMC controller. 584 585 If you have a BCM2835 platform with SD or MMC devices, 586 say Y here. 587 588 If unsure, say N. 589 590config MMC_SDHCI_BCMSTB 591 tristate "SDHCI support for the BCMSTB SD/MMC Controller" 592 depends on MMC_SDHCI && (ARCH_BCMSTB || ARCH_BCM283X) 593 help 594 This selects the Broadcom set-top box SD/MMC controller. 595 596 If you have a BCMSTB platform with SD or MMC devices, 597 say Y here. 598 599 If unsure, say N. 600 601config MMC_SDHCI_CADENCE 602 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller" 603 depends on MMC_SDHCI 604 depends on OF_CONTROL 605 help 606 This selects the Cadence SD/SDIO/eMMC driver. 607 608 If you have a controller with this interface, say Y here. 609 610 If unsure, say N. 611 612config MMC_SDHCI_CV1800B 613 bool "SDHCI support for the CV1800B SD/SDIO/eMMC controller" 614 depends on MMC_SDHCI 615 depends on OF_CONTROL 616 help 617 This selects the CV1800B SD/SDIO/eMMC driver. 618 619 If you have a controller with this interface, 620 say Y here. 621 622 If unsure, say N. 623 624config MMC_SDHCI_AM654 625 bool "SDHCI Controller on TI's Am654 devices" 626 depends on ARCH_K3 627 depends on MMC_SDHCI 628 depends on OF_CONTROL 629 depends on REGMAP 630 select MMC_SDHCI_IO_ACCESSORS 631 help 632 Support for Secure Digital Host Controller Interface (SDHCI) 633 controllers present on TI's AM654 SOCs. 634 635config MMC_SDHCI_IPROC 636 bool "SDHCI support for the iProc SD/MMC Controller" 637 depends on MMC_SDHCI 638 help 639 This selects the iProc SD/MMC controller. 640 641 If you have a Broadcom IPROC platform with SD or MMC devices, 642 say Y here. 643 644 If unsure, say N. 645 646config MMC_SDHCI_F_SDH30 647 bool "SDHCI support for Fujitsu Semiconductor/Socionext F_SDH30" 648 depends on MMC_SDHCI 649 help 650 This selects the Secure Digital Host Controller Interface (SDHCI) 651 Needed by some Fujitsu/Socionext SoC for MMC / SD / SDIO support. 652 If you have a controller with this interface, say Y here. 653 If unsure, say N. 654 655config MMC_SDHCI_MSM 656 bool "Qualcomm SDHCI controller" 657 depends on MMC_SDHCI && ARCH_SNAPDRAGON 658 help 659 Enables support for SDHCI 2.0 controller present on some Qualcomm 660 Snapdragon devices. This device is compatible with eMMC v4.5 and 661 SD 3.0 specifications. Both SD and eMMC devices are supported. 662 Card-detect gpios are not supported. 663 664config MMC_SDHCI_MV 665 bool "SDHCI support on Marvell platform" 666 depends on ARCH_MVEBU 667 depends on MMC_SDHCI 668 help 669 This selects the Secure Digital Host Controller Interface on 670 Marvell platform. 671 672 If you have a controller with this interface, say Y here. 673 674 If unsure, say N. 675 676config MMC_SDHCI_NPCM 677 bool "SDHCI support on Nuvoton NPCM device" 678 depends on MMC_SDHCI 679 help 680 This selects the Secure Digital Host Controller Interface (SDHCI) 681 on Nuvoton NPCM device. 682 683 If you have a controller with this interface, say Y here. 684 685 If unsure, say N. 686 687config MMC_SDHCI_PIC32 688 bool "Microchip PIC32 on-chip SDHCI support" 689 depends on MACH_PIC32 690 depends on MMC_SDHCI 691 help 692 Support for Microchip PIC32 SDHCI controller. 693 694config MMC_SDHCI_ROCKCHIP 695 bool "Arasan SDHCI controller for Rockchip support" 696 depends on ARCH_ROCKCHIP 697 depends on MMC_SDHCI 698 help 699 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform 700 701config MMC_SDHCI_S5P 702 bool "SDHCI support on Samsung S5P SoC" 703 depends on MMC_SDHCI && S5P 704 help 705 This selects the Secure Digital Host Controller Interface (SDHCI) 706 on Samsung S5P SoCs. 707 708 If you have a controller with this interface, say Y here. 709 710 If unsure, say N. 711 712config MMC_SDHCI_SNPS 713 bool "Synopsys DesignWare SDHCI controller" 714 depends on MMC_SDHCI 715 help 716 Support for DesignWare SDHCI host controller on Alibaba TH1520 SoC. 717 This is a highly configurable and programmable, high performance 718 Mobile Storage Host Controller (MSHC) with AXI as the bus interface 719 for data transfer. 720 721 If unsure, say N. 722 723config MMC_SDHCI_STI 724 bool "SDHCI support for STMicroelectronics SoC" 725 depends on MMC_SDHCI && OF_CONTROL && ARCH_STI 726 help 727 This selects the Secure Digital Host Controller Interface (SDHCI) 728 on STMicroelectronics STiH410 SoC. 729 730config MMC_SDHCI_XENON 731 bool "SDHCI support for the Xenon SDHCI controller" 732 depends on MMC_SDHCI && OF_CONTROL 733 help 734 Support for Xenon SDHCI host controller on Marvell Armada 3700 735 7k/8k ARM SoCs platforms 736 737 If you have a controller with this interface, say Y here. 738 739 If unsure, say N. 740 741config MMC_SDHCI_TANGIER 742 bool "Tangier SDHCI controller support" 743 depends on MMC_SDHCI 744 help 745 This selects support for SDHCI controller on Tanginer 746 SoC. Note that this controller does not sit on PCI bus and, 747 hence, cannot be enumerated by standard PCI means. 748 749 If you're using an Intel Tangier SoC (available on Intel 750 Edison board), say Y here. 751 752 If unsure, say N. 753 754config MMC_SDHCI_TEGRA 755 bool "SDHCI platform support for the Tegra SD/MMC Controller" 756 depends on ARCH_TEGRA 757 select BOUNCE_BUFFER 758 default y 759 help 760 This selects the Tegra SD/MMC controller. If you have a Tegra 761 platform with SD or MMC devices, say Y here. 762 763 If unsure, say N. 764 765config TEGRA124_MMC_DISABLE_EXT_LOOPBACK 766 bool "Disable external clock loopback" 767 depends on MMC_SDHCI_TEGRA && TEGRA124 768 help 769 Disable the external clock loopback and use the internal one on SDMMC3 770 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits 771 being set to 0xfffd according to the TRM. 772 773 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled 774 approach once proper kernel integration made it mainline. 775 776config MMC_SDHCI_ZYNQ 777 bool "Arasan SDHCI controller support" 778 depends on OF_CONTROL 779 depends on ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2 || ARCH_ZYNQ || ARCH_ZYNQMP 780 depends on MMC_SDHCI 781 help 782 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform 783 784config ZYNQ_SDHCI_MAX_FREQ 785 int "Set the maximum frequency of the controller" 786 depends on MMC_SDHCI_ZYNQ 787 help 788 Set the maximum frequency of the controller. 789 790config ZYNQ_SDHCI_MIN_FREQ 791 int "Set the minimum frequency of the controller" 792 depends on MMC_SDHCI_ZYNQ 793 default 0 794 help 795 Set the minimum frequency of the controller. 796 797config ZYNQ_HISPD_BROKEN 798 bool "High speed broken for Zynq SDHCI controller" 799 depends on MMC_SDHCI_ZYNQ 800 help 801 Set if high speed mode is broken. 802 803config MMC_SUNXI 804 bool "Allwinner sunxi SD/MMC Host Controller support" 805 depends on ARCH_SUNXI 806 default y 807 help 808 This selects support for the SD/MMC Host Controller on 809 Allwinner sunxi SoCs. 810 811config MMC_SUNXI_HAS_NEW_MODE 812 bool 813 depends on MMC_SUNXI 814 815config MMC_SUNXI_HAS_MODE_SWITCH 816 bool 817 depends on MMC_SUNXI 818 819config MMC_PITON 820 bool "MMC support for OpenPiton SoC" 821 help 822 This selects support for the SD host controller on OpenPiton SoC. 823 Note that this SD controller directly exposes the contents of the 824 SD card as memory mapped, so there is no manual configuration 825 required 826 827config GENERIC_ATMEL_MCI 828 bool "Atmel Multimedia Card Interface support" 829 depends on ARCH_AT91 830 help 831 This enables support for Atmel High Speed Multimedia Card Interface 832 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3, 833 the SD Memory Card Specification V2.0, the SDIO V2.0 specification 834 and CE-ATA V1.1. 835 836config STM32_SDMMC2 837 bool "STMicroelectronics STM32H7 SD/MMC Host Controller support" 838 depends on OF_CONTROL && (ARCH_STM32 || ARCH_STM32MP) 839 help 840 This selects support for the SD/MMC controller on STM32H7 SoCs. 841 If you have a board based on such a SoC and with a SD/MMC slot, 842 say Y here. 843 844config FTSDC010 845 bool "Ftsdc010 SD/MMC controller Support" 846 help 847 This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP. 848 849config FTSDC010_SDIO 850 bool "Support ftsdc010 sdio" 851 depends on FTSDC010 852 help 853 This can enable ftsdc010 sdio function. 854 855config MMC_MTK 856 bool "MediaTek SD/MMC Card Interface support" 857 depends on ARCH_MEDIATEK || ARCH_MTMIPS || ARCH_AIROHA 858 depends on OF_CONTROL 859 help 860 This selects the MediaTek(R) Secure digital and Multimedia card Interface. 861 If you have a machine with a integrated SD/MMC card reader, say Y here. 862 This is needed if support for any SD/SDIO/MMC devices is required. 863 If unsure, say N. 864 865endif 866 867config FSL_SDHC_V2_3 868 bool 869 870config FSL_ESDHC 871 bool "Freescale/NXP eSDHC controller support" 872 depends on ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 || PPC 873 select FSL_SDHC_V2_3 if ARCH_P1010 || ARCH_BSC9131 || ARCH_BSC9132 \ 874 || ARCH_C29X 875 help 876 This selects support for the eSDHC (Enhanced Secure Digital Host 877 Controller) found on numerous Freescale/NXP SoCs. 878 879config FSL_ESDHC_SUPPORT_ADMA2 880 bool "enable ADMA2 support" 881 depends on FSL_ESDHC 882 select MMC_SDHCI_ADMA_HELPERS 883 help 884 This enables support for the ADMA2 transfer mode. If supported by the 885 eSDHC it will allow 64bit DMA addresses. 886 887config FSL_ESDHC_33V_IO_RELIABILITY_WORKAROUND 888 bool "enable eSDHC workaround for 3.3v IO reliability issue" 889 depends on FSL_ESDHC 890 help 891 When eSDHC operates at 3.3v, damage can accumulate in an internal 892 level shifter at a higher than expected rate. The faster the interface 893 runs, the more damage accumulates. This issue now is found on LX2160A 894 eSDHC1 for only SD card. The hardware workaround is recommended to use 895 an on-board level shifter that is 1.8v on SoC side and 3.3v on SD card 896 side. For boards without hardware workaround, this option could be 897 enabled, ensuring 1.8v IO voltage and disabling eSDHC if no card. 898 This option assumes no hotplug, and u-boot has to make all the way to 899 to linux to use 1.8v UHS-I speed mode if has card. 900 901config FSL_ESDHC_VS33_NOT_SUPPORT 902 bool "3.3V power supply not supported" 903 depends on FSL_ESDHC 904 help 905 For eSDHC, power supply is through peripheral circuit. 3.3V support is 906 common. Select this if 3.3V power supply not supported. 907 908config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH 909 int 910 depends on FSL_ESDHC 911 default 1 912 913config ESDHC_DETECT_QUIRK 914 bool "QIXIS-based eSDHC quirk detection" 915 depends on FSL_ESDHC && FSL_QIXIS 916 917config ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE 918 bool 919 depends on FSL_ESDHC || FSL_ESDHC_IMX 920 def_bool y if ARCH_T1024 || ARCH_T1040 || ARCH_T1042 || ARCH_T2080 \ 921 || FSL_ESDHC_IMX 922 923config FSL_ESDHC_IMX 924 bool "Freescale/NXP i.MX eSDHC controller support" 925 depends on MACH_IMX 926 help 927 This selects support for the i.MX eSDHC (Enhanced Secure Digital Host 928 Controller) found on numerous Freescale/NXP SoCs. 929 930config SYS_FSL_ESDHC_HAS_DDR_MODE 931 bool "i.MX eSDHC controller supports DDR mode" 932 depends on FSL_ESDHC_IMX 933 934config FSL_USDHC 935 bool "Freescale/NXP i.MX uSDHC controller support" 936 depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMX8ULP || IMX9 || IMXRT 937 select FSL_ESDHC_IMX 938 help 939 This enables the Ultra Secured Digital Host Controller enhancements 940 941config FSL_ESDHC_PIN_MUX 942 bool "Perform esdhc device-tree fixup" 943 depends on (FSL_ESDHC || FSL_ESDHC_IMX) && OF_LIBFDT 944 945endmenu 946 947config SYS_FSL_ERRATUM_ESDHC111 948 bool 949 950config SYS_FSL_ERRATUM_ESDHC13 951 bool 952 953config SYS_FSL_ERRATUM_ESDHC135 954 bool 955 956config SYS_FSL_ERRATUM_ESDHC_A001 957 bool 958 959config SYS_FSL_ERRATUM_A011334 960 bool 961 962config SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND 963 bool 964