1menu "MMC Host controller Support" 2 3config MMC 4 bool "MMC/SD/SDIO card support" 5 default ARM || PPC || SANDBOX 6 help 7 This selects MultiMediaCard, Secure Digital and Secure 8 Digital I/O support. 9 10 If you want MMC/SD/SDIO support, you should say Y here and 11 also to your specific host controller driver. 12 13config MMC_WRITE 14 bool "support for MMC/SD write operations" 15 depends on MMC 16 default y 17 help 18 Enable write access to MMC and SD Cards 19 20config MMC_BROKEN_CD 21 bool "Poll for broken card detection case" 22 help 23 If card detection feature is broken, just poll to detect. 24 25config DM_MMC 26 bool "Enable MMC controllers using Driver Model" 27 depends on DM 28 help 29 This enables the MultiMediaCard (MMC) uclass which supports MMC and 30 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.) 31 and non-removable (e.g. eMMC chip) devices are supported. These 32 appear as block devices in U-Boot and can support filesystems such 33 as EXT4 and FAT. 34 35config SPL_DM_MMC 36 bool "Enable MMC controllers using Driver Model in SPL" 37 depends on SPL_DM && DM_MMC 38 default y 39 help 40 This enables the MultiMediaCard (MMC) uclass which supports MMC and 41 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.) 42 and non-removable (e.g. eMMC chip) devices are supported. These 43 appear as block devices in U-Boot and can support filesystems such 44 as EXT4 and FAT. 45 46if MMC 47 48config ARM_PL180_MMCI 49 bool "ARM AMBA Multimedia Card Interface and compatible support" 50 depends on DM_MMC && OF_CONTROL 51 help 52 This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card 53 Interface (PL180, PL181 and compatible) support. 54 If you have an ARM(R) platform with a Multimedia Card slot, 55 say Y or M here. 56 57config MMC_QUIRKS 58 bool "Enable quirks" 59 default y 60 help 61 Some cards and hosts may sometimes behave unexpectedly (quirks). 62 This option enable workarounds to handle those quirks. Some of them 63 are enabled by default, other may require additionnal flags or are 64 enabled by the host driver. 65 66config MMC_HW_PARTITIONING 67 bool "Support for HW partitioning command(eMMC)" 68 default y 69 help 70 This adds a command and an API to do hardware partitioning on eMMC 71 devices. 72 73config MMC_IO_VOLTAGE 74 bool "Support IO voltage configuration" 75 help 76 IO voltage configuration allows selecting the voltage level of the IO 77 lines (not the level of main supply). This is required for UHS 78 support. For eMMC this not mandatory, but not enabling this option may 79 prevent the driver of using the faster modes. 80 81config SPL_MMC_IO_VOLTAGE 82 bool "Support IO voltage configuration in SPL" 83 default n 84 help 85 IO voltage configuration allows selecting the voltage level of the IO 86 lines (not the level of main supply). This is required for UHS 87 support. For eMMC this not mandatory, but not enabling this option may 88 prevent the driver of using the faster modes. 89 90config MMC_UHS_SUPPORT 91 bool "enable UHS support" 92 depends on MMC_IO_VOLTAGE 93 help 94 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC 95 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus 96 frequency can go up to 208MHz (SDR104) 97 98config SPL_MMC_UHS_SUPPORT 99 bool "enable UHS support in SPL" 100 depends on SPL_MMC_IO_VOLTAGE 101 help 102 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC 103 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus 104 frequency can go up to 208MHz (SDR104) 105 106config MMC_HS200_SUPPORT 107 bool "enable HS200 support" 108 help 109 The HS200 mode is support by some eMMC. The bus frequency is up to 110 200MHz. This mode requires tuning the IO. 111 112 113config SPL_MMC_HS200_SUPPORT 114 bool "enable HS200 support in SPL" 115 help 116 The HS200 mode is support by some eMMC. The bus frequency is up to 117 200MHz. This mode requires tuning the IO. 118 119config MMC_VERBOSE 120 bool "Output more information about the MMC" 121 default y 122 help 123 Enable the output of more information about the card such as the 124 operating mode. 125 126config SPL_MMC_TINY 127 bool "Tiny MMC framework in SPL" 128 help 129 Enable MMC framework tinification support. This option is useful if 130 if your SPL is extremely size constrained. Heed the warning, enable 131 this option if and only if you know exactly what you are doing, if 132 you are reading this help text, you most likely have no idea :-) 133 134 The MMC framework is reduced to bare minimum to be useful. No malloc 135 support is needed for the MMC framework operation with this option 136 enabled. The framework supports exactly one MMC device and exactly 137 one MMC driver. The MMC driver can be adjusted to avoid any malloc 138 operations too, which can remove the need for malloc support in SPL 139 and thus further reduce footprint. 140 141config MMC_DAVINCI 142 bool "TI DAVINCI Multimedia Card Interface support" 143 depends on ARCH_DAVINCI 144 default y 145 help 146 This selects the TI DAVINCI Multimedia card Interface. 147 If you have an DAVINCI board with a Multimedia Card slot, 148 say Y here. If unsure, say N. 149 150config MMC_DW 151 bool "Synopsys DesignWare Memory Card Interface" 152 help 153 This selects support for the Synopsys DesignWare Mobile Storage IP 154 block, this provides host support for SD and MMC interfaces, in both 155 PIO, internal DMA mode and external DMA mode. 156 157config MMC_DW_EXYNOS 158 bool "Exynos specific extensions for Synopsys DW Memory Card Interface" 159 depends on ARCH_EXYNOS 160 depends on MMC_DW 161 default y 162 help 163 This selects support for Samsung Exynos SoC specific extensions to the 164 Synopsys DesignWare Memory Card Interface driver. Select this option 165 for platforms based on Exynos4 and Exynos5 SoC's. 166 167config MMC_DW_K3 168 bool "K3 specific extensions for Synopsys DW Memory Card Interface" 169 depends on MMC_DW 170 help 171 This selects support for Hisilicon K3 SoC specific extensions to the 172 Synopsys DesignWare Memory Card Interface driver. Select this option 173 for platforms based on Hisilicon K3 SoC's. 174 175config MMC_DW_ROCKCHIP 176 bool "Rockchip SD/MMC controller support" 177 depends on DM_MMC && OF_CONTROL 178 depends on MMC_DW 179 help 180 This enables support for the Rockchip SD/MMM controller, which is 181 based on Designware IP. The device is compatible with at least 182 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well 183 as removeable SD and micro-SD cards. 184 185config MMC_DW_SOCFPGA 186 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface" 187 depends on ARCH_SOCFPGA 188 depends on MMC_DW 189 default y 190 help 191 This selects support for Altera SOCFPGA specific extensions to the 192 Synopsys DesignWare Memory Card Interface driver. Select this option 193 for platforms based on Altera SOCFPGA. 194 195config MMC_MESON_GX 196 bool "Meson GX EMMC controller support" 197 depends on DM_MMC && BLK && ARCH_MESON 198 help 199 Support for EMMC host controller on Meson GX ARM SoCs platform (S905) 200 201config MMC_MXC 202 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support" 203 help 204 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x 205 Multimedia Card Interface. If you have an i.MX or MPC512x platform 206 with a Multimedia Card slot, say Y here. 207 208 If unsure, say N. 209 210config MMC_MXS 211 bool "Freescale MXS Multimedia Card Interface support" 212 help 213 This selects the Freescale SSP MMC controller found on MXS based 214 platforms like mx23/28. 215 216 If unsure, say N. 217 218config MMC_PCI 219 bool "Support for MMC controllers on PCI" 220 help 221 This selects PCI-based MMC controllers. 222 If you have an MMC controller on a PCI bus, say Y here. 223 224 If unsure, say N. 225 226config MMC_OMAP_HS 227 bool "TI OMAP High Speed Multimedia Card Interface support" 228 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR 229 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR 230 help 231 This selects the TI OMAP High Speed Multimedia card Interface. 232 If you have an omap2plus board with a Multimedia Card slot, 233 say Y here. 234 235 If unsure, say N. 236 237config MMC_OMAP36XX_PINS 238 bool "Enable MMC1 on OMAP36xx/37xx" 239 depends on OMAP34XX && MMC_OMAP_HS 240 help 241 This enables extended-drain in the MMC/SD/SDIO1I/O and 242 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129) 243 specific to the OMAP36xx/37xx using MMC1 244 245 If you have a controller with this interface, say Y here. 246 247 If unsure, say N. 248 249config SH_SDHI 250 bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support" 251 depends on ARCH_RMOBILE 252 help 253 Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform 254 255config MMC_UNIPHIER 256 bool "UniPhier/RCar SD/MMC Host Controller support" 257 depends on ARCH_UNIPHIER || ARCH_RMOBILE 258 depends on BLK && DM_MMC 259 depends on OF_CONTROL 260 help 261 This selects support for the Matsushita SD/MMC Host Controller on 262 SocioNext UniPhier and Renesas RCar SoCs. 263 264config MMC_SANDBOX 265 bool "Sandbox MMC support" 266 depends on SANDBOX 267 depends on BLK && DM_MMC && OF_CONTROL 268 help 269 This select a dummy sandbox MMC driver. At present this does nothing 270 other than allow sandbox to be build with MMC support. This 271 improves build coverage for sandbox and makes it easier to detect 272 MMC build errors with sandbox. 273 274config MMC_SDHCI 275 bool "Secure Digital Host Controller Interface support" 276 help 277 This selects the generic Secure Digital Host Controller Interface. 278 It is used by manufacturers such as Texas Instruments(R), Ricoh(R) 279 and Toshiba(R). Most controllers found in laptops are of this type. 280 281 If you have a controller with this interface, say Y here. 282 283 If unsure, say N. 284 285config MMC_SDHCI_IO_ACCESSORS 286 bool 287 depends on MMC_SDHCI 288 help 289 This is silent Kconfig symbol that is selected by the drivers that 290 need to overwrite SDHCI IO memory accessors. 291 292config MMC_SDHCI_SDMA 293 bool "Support SDHCI SDMA" 294 depends on MMC_SDHCI 295 help 296 This enables support for the SDMA (Single Operation DMA) defined 297 in the SD Host Controller Standard Specification Version 1.00 . 298 299config MMC_SDHCI_ATMEL 300 bool "Atmel SDHCI controller support" 301 depends on ARCH_AT91 302 depends on DM_MMC && BLK && ARCH_AT91 303 depends on MMC_SDHCI 304 help 305 This enables support for the Atmel SDHCI controller, which supports 306 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD 307 Memory Card Specification V3.0, and the SDIO V3.0 specification. 308 It is compliant with the SD Host Controller Standard V3.0 309 specification. 310 311config MMC_SDHCI_BCM2835 312 tristate "SDHCI support for the BCM2835 SD/MMC Controller" 313 depends on ARCH_BCM283X 314 depends on MMC_SDHCI 315 select MMC_SDHCI_IO_ACCESSORS 316 help 317 This selects the BCM2835 SD/MMC controller. 318 319 If you have a BCM2835 platform with SD or MMC devices, 320 say Y here. 321 322 If unsure, say N. 323 324config MMC_SDHCI_CADENCE 325 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller" 326 depends on BLK && DM_MMC 327 depends on MMC_SDHCI 328 depends on OF_CONTROL 329 help 330 This selects the Cadence SD/SDIO/eMMC driver. 331 332 If you have a controller with this interface, say Y here. 333 334 If unsure, say N. 335 336config MMC_SDHCI_KONA 337 bool "SDHCI support on Broadcom KONA platform" 338 depends on MMC_SDHCI 339 help 340 This selects the Broadcom Kona Secure Digital Host Controller 341 Interface(SDHCI) support. 342 This is used in Broadcom mobile SoCs. 343 344 If you have a controller with this interface, say Y here. 345 346config MMC_SDHCI_MSM 347 bool "Qualcomm SDHCI controller" 348 depends on BLK && DM_MMC 349 depends on MMC_SDHCI 350 help 351 Enables support for SDHCI 2.0 controller present on some Qualcomm 352 Snapdragon devices. This device is compatible with eMMC v4.5 and 353 SD 3.0 specifications. Both SD and eMMC devices are supported. 354 Card-detect gpios are not supported. 355 356config MMC_SDHCI_MV 357 bool "SDHCI support on Marvell platform" 358 depends on ARCH_MVEBU 359 depends on MMC_SDHCI 360 help 361 This selects the Secure Digital Host Controller Interface on 362 Marvell platform. 363 364 If you have a controller with this interface, say Y here. 365 366 If unsure, say N. 367 368config MMC_SDHCI_PIC32 369 bool "Microchip PIC32 on-chip SDHCI support" 370 depends on DM_MMC && MACH_PIC32 371 depends on MMC_SDHCI 372 help 373 Support for Microchip PIC32 SDHCI controller. 374 375config MMC_SDHCI_ROCKCHIP 376 bool "Arasan SDHCI controller for Rockchip support" 377 depends on ARCH_ROCKCHIP 378 depends on DM_MMC && BLK 379 depends on MMC_SDHCI 380 help 381 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform 382 383config MMC_SDHCI_S5P 384 bool "SDHCI support on Samsung S5P SoC" 385 depends on MMC_SDHCI 386 help 387 This selects the Secure Digital Host Controller Interface (SDHCI) 388 on Samsung S5P SoCs. 389 390 If you have a controller with this interface, say Y here. 391 392 If unsure, say N. 393 394config MMC_SDHCI_SPEAR 395 bool "SDHCI support on ST SPEAr platform" 396 depends on MMC_SDHCI 397 help 398 This selects the Secure Digital Host Controller Interface (SDHCI) 399 often referrered to as the HSMMC block in some of the ST SPEAR range 400 of SoC 401 402 If you have a controller with this interface, say Y here. 403 404 If unsure, say N. 405 406config MMC_SDHCI_STI 407 bool "SDHCI support for STMicroelectronics SoC" 408 depends on MMC_SDHCI && OF_CONTROL 409 help 410 This selects the Secure Digital Host Controller Interface (SDHCI) 411 on STMicroelectronics STiH410 SoC. 412 413config MMC_SDHCI_XENON 414 bool "SDHCI support for the Xenon SDHCI controller" 415 depends on MMC_SDHCI && DM_MMC && OF_CONTROL 416 help 417 Support for Xenon SDHCI host controller on Marvell Armada 3700 418 7k/8k ARM SoCs platforms 419 420 If you have a controller with this interface, say Y here. 421 422 If unsure, say N. 423 424config MMC_SDHCI_TANGIER 425 bool "Tangier SDHCI controller support" 426 depends on DM_MMC && BLK 427 depends on MMC_SDHCI 428 help 429 This selects support for SDHCI controller on Tanginer 430 SoC. Note that this controller does not sit on PCI bus and, 431 hence, cannot be enumerated by standard PCI means. 432 433 If you're using an Intel Tangier SoC (available on Intel 434 Edison board), say Y here. 435 436 If unsure, say N. 437 438config MMC_SDHCI_TEGRA 439 bool "SDHCI platform support for the Tegra SD/MMC Controller" 440 depends on TEGRA 441 default y 442 help 443 This selects the Tegra SD/MMC controller. If you have a Tegra 444 platform with SD or MMC devices, say Y here. 445 446 If unsure, say N. 447 448config MMC_SDHCI_ZYNQ 449 bool "Arasan SDHCI controller support" 450 depends on ARCH_ZYNQ || ARCH_ZYNQMP 451 depends on DM_MMC && OF_CONTROL && BLK 452 depends on MMC_SDHCI 453 help 454 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform 455 456config MMC_SUNXI 457 bool "Allwinner sunxi SD/MMC Host Controller support" 458 depends on ARCH_SUNXI && !UART0_PORT_F 459 default y 460 help 461 This selects support for the SD/MMC Host Controller on 462 Allwinner sunxi SoCs. 463 464config MMC_SUNXI_HAS_NEW_MODE 465 bool 466 depends on MMC_SUNXI 467 468config GENERIC_ATMEL_MCI 469 bool "Atmel Multimedia Card Interface support" 470 depends on DM_MMC && BLK && ARCH_AT91 471 help 472 This enables support for Atmel High Speed Multimedia Card Interface 473 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3, 474 the SD Memory Card Specification V2.0, the SDIO V2.0 specification 475 and CE-ATA V1.1. 476 477config STM32_SDMMC2 478 bool "STMicroelectronics STM32H7 SD/MMC Host Controller support" 479 depends on DM_MMC && BLK && OF_CONTROL 480 help 481 This selects support for the SD/MMC controller on STM32H7 SoCs. 482 If you have a board based on such a SoC and with a SD/MMC slot, 483 say Y or M here. 484 485config MMC_NDS32 486 bool "Andestech SD/MMC controller support" 487 depends on DM_MMC && OF_CONTROL && BLK && FTSDC010 488 help 489 This enables support for the Andestech SD/MMM controller, which is 490 based on Faraday IP. 491 492config FTSDC010 493 bool "Ftsdc010 SD/MMC controller Support" 494 help 495 This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP. 496 497endif 498 499config TEGRA124_MMC_DISABLE_EXT_LOOPBACK 500 bool "Disable external clock loopback" 501 depends on MMC_SDHCI_TEGRA && TEGRA124 502 help 503 Disable the external clock loopback and use the internal one on SDMMC3 504 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits 505 being set to 0xfffd according to the TRM. 506 507 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled 508 approach once proper kernel integration made it mainline. 509 510endmenu 511 512config SYS_FSL_ERRATUM_ESDHC111 513 bool 514 515config SYS_FSL_ERRATUM_ESDHC13 516 bool 517 518config SYS_FSL_ERRATUM_ESDHC135 519 bool 520 521config SYS_FSL_ERRATUM_ESDHC_A001 522 bool 523