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_BCM2835 265 bool "BCM2835 family custom SD/MMC Host Controller support" 266 depends on ARCH_BCM283X 267 depends on BLK && DM_MMC 268 depends on OF_CONTROL 269 default y 270 help 271 This selects support for the custom SD host controller in the BCM2835 272 family of devices. 273 274 If you have a BCM2835 platform with SD or MMC devices, say Y here. 275 276 If unsure, say N. 277 278config MMC_SANDBOX 279 bool "Sandbox MMC support" 280 depends on SANDBOX 281 depends on BLK && DM_MMC && OF_CONTROL 282 help 283 This select a dummy sandbox MMC driver. At present this does nothing 284 other than allow sandbox to be build with MMC support. This 285 improves build coverage for sandbox and makes it easier to detect 286 MMC build errors with sandbox. 287 288config MMC_SDHCI 289 bool "Secure Digital Host Controller Interface support" 290 help 291 This selects the generic Secure Digital Host Controller Interface. 292 It is used by manufacturers such as Texas Instruments(R), Ricoh(R) 293 and Toshiba(R). Most controllers found in laptops are of this type. 294 295 If you have a controller with this interface, say Y here. 296 297 If unsure, say N. 298 299config MMC_SDHCI_IO_ACCESSORS 300 bool 301 depends on MMC_SDHCI 302 help 303 This is silent Kconfig symbol that is selected by the drivers that 304 need to overwrite SDHCI IO memory accessors. 305 306config MMC_SDHCI_SDMA 307 bool "Support SDHCI SDMA" 308 depends on MMC_SDHCI 309 help 310 This enables support for the SDMA (Single Operation DMA) defined 311 in the SD Host Controller Standard Specification Version 1.00 . 312 313config MMC_SDHCI_ATMEL 314 bool "Atmel SDHCI controller support" 315 depends on ARCH_AT91 316 depends on DM_MMC && BLK && ARCH_AT91 317 depends on MMC_SDHCI 318 help 319 This enables support for the Atmel SDHCI controller, which supports 320 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD 321 Memory Card Specification V3.0, and the SDIO V3.0 specification. 322 It is compliant with the SD Host Controller Standard V3.0 323 specification. 324 325config MMC_SDHCI_BCM2835 326 tristate "SDHCI support for the BCM2835 SD/MMC Controller" 327 depends on ARCH_BCM283X 328 depends on MMC_SDHCI 329 select MMC_SDHCI_IO_ACCESSORS 330 help 331 This selects the BCM2835 SD/MMC controller. 332 333 If you have a BCM2835 platform with SD or MMC devices, 334 say Y here. 335 336 If unsure, say N. 337 338config MMC_SDHCI_CADENCE 339 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller" 340 depends on BLK && DM_MMC 341 depends on MMC_SDHCI 342 depends on OF_CONTROL 343 help 344 This selects the Cadence SD/SDIO/eMMC driver. 345 346 If you have a controller with this interface, say Y here. 347 348 If unsure, say N. 349 350config MMC_SDHCI_KONA 351 bool "SDHCI support on Broadcom KONA platform" 352 depends on MMC_SDHCI 353 help 354 This selects the Broadcom Kona Secure Digital Host Controller 355 Interface(SDHCI) support. 356 This is used in Broadcom mobile SoCs. 357 358 If you have a controller with this interface, say Y here. 359 360config MMC_SDHCI_MSM 361 bool "Qualcomm SDHCI controller" 362 depends on BLK && DM_MMC 363 depends on MMC_SDHCI 364 help 365 Enables support for SDHCI 2.0 controller present on some Qualcomm 366 Snapdragon devices. This device is compatible with eMMC v4.5 and 367 SD 3.0 specifications. Both SD and eMMC devices are supported. 368 Card-detect gpios are not supported. 369 370config MMC_SDHCI_MV 371 bool "SDHCI support on Marvell platform" 372 depends on ARCH_MVEBU 373 depends on MMC_SDHCI 374 help 375 This selects the Secure Digital Host Controller Interface on 376 Marvell platform. 377 378 If you have a controller with this interface, say Y here. 379 380 If unsure, say N. 381 382config MMC_SDHCI_PIC32 383 bool "Microchip PIC32 on-chip SDHCI support" 384 depends on DM_MMC && MACH_PIC32 385 depends on MMC_SDHCI 386 help 387 Support for Microchip PIC32 SDHCI controller. 388 389config MMC_SDHCI_ROCKCHIP 390 bool "Arasan SDHCI controller for Rockchip support" 391 depends on ARCH_ROCKCHIP 392 depends on DM_MMC && BLK 393 depends on MMC_SDHCI 394 help 395 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform 396 397config MMC_SDHCI_S5P 398 bool "SDHCI support on Samsung S5P SoC" 399 depends on MMC_SDHCI 400 help 401 This selects the Secure Digital Host Controller Interface (SDHCI) 402 on Samsung S5P SoCs. 403 404 If you have a controller with this interface, say Y here. 405 406 If unsure, say N. 407 408config MMC_SDHCI_SPEAR 409 bool "SDHCI support on ST SPEAr platform" 410 depends on MMC_SDHCI 411 help 412 This selects the Secure Digital Host Controller Interface (SDHCI) 413 often referrered to as the HSMMC block in some of the ST SPEAR range 414 of SoC 415 416 If you have a controller with this interface, say Y here. 417 418 If unsure, say N. 419 420config MMC_SDHCI_STI 421 bool "SDHCI support for STMicroelectronics SoC" 422 depends on MMC_SDHCI && OF_CONTROL 423 help 424 This selects the Secure Digital Host Controller Interface (SDHCI) 425 on STMicroelectronics STiH410 SoC. 426 427config MMC_SDHCI_XENON 428 bool "SDHCI support for the Xenon SDHCI controller" 429 depends on MMC_SDHCI && DM_MMC && OF_CONTROL 430 help 431 Support for Xenon SDHCI host controller on Marvell Armada 3700 432 7k/8k ARM SoCs platforms 433 434 If you have a controller with this interface, say Y here. 435 436 If unsure, say N. 437 438config MMC_SDHCI_TANGIER 439 bool "Tangier SDHCI controller support" 440 depends on DM_MMC && BLK 441 depends on MMC_SDHCI 442 help 443 This selects support for SDHCI controller on Tanginer 444 SoC. Note that this controller does not sit on PCI bus and, 445 hence, cannot be enumerated by standard PCI means. 446 447 If you're using an Intel Tangier SoC (available on Intel 448 Edison board), say Y here. 449 450 If unsure, say N. 451 452config MMC_SDHCI_TEGRA 453 bool "SDHCI platform support for the Tegra SD/MMC Controller" 454 depends on TEGRA 455 default y 456 help 457 This selects the Tegra SD/MMC controller. If you have a Tegra 458 platform with SD or MMC devices, say Y here. 459 460 If unsure, say N. 461 462config MMC_SDHCI_ZYNQ 463 bool "Arasan SDHCI controller support" 464 depends on ARCH_ZYNQ || ARCH_ZYNQMP 465 depends on DM_MMC && OF_CONTROL && BLK 466 depends on MMC_SDHCI 467 help 468 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform 469 470config MMC_SUNXI 471 bool "Allwinner sunxi SD/MMC Host Controller support" 472 depends on ARCH_SUNXI && !UART0_PORT_F 473 default y 474 help 475 This selects support for the SD/MMC Host Controller on 476 Allwinner sunxi SoCs. 477 478config MMC_SUNXI_HAS_NEW_MODE 479 bool 480 depends on MMC_SUNXI 481 482config GENERIC_ATMEL_MCI 483 bool "Atmel Multimedia Card Interface support" 484 depends on DM_MMC && BLK && ARCH_AT91 485 help 486 This enables support for Atmel High Speed Multimedia Card Interface 487 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3, 488 the SD Memory Card Specification V2.0, the SDIO V2.0 specification 489 and CE-ATA V1.1. 490 491config STM32_SDMMC2 492 bool "STMicroelectronics STM32H7 SD/MMC Host Controller support" 493 depends on DM_MMC && BLK && OF_CONTROL 494 help 495 This selects support for the SD/MMC controller on STM32H7 SoCs. 496 If you have a board based on such a SoC and with a SD/MMC slot, 497 say Y or M here. 498 499config MMC_NDS32 500 bool "Andestech SD/MMC controller support" 501 depends on DM_MMC && OF_CONTROL && BLK && FTSDC010 502 help 503 This enables support for the Andestech SD/MMM controller, which is 504 based on Faraday IP. 505 506config FTSDC010 507 bool "Ftsdc010 SD/MMC controller Support" 508 help 509 This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP. 510 511endif 512 513config TEGRA124_MMC_DISABLE_EXT_LOOPBACK 514 bool "Disable external clock loopback" 515 depends on MMC_SDHCI_TEGRA && TEGRA124 516 help 517 Disable the external clock loopback and use the internal one on SDMMC3 518 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits 519 being set to 0xfffd according to the TRM. 520 521 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled 522 approach once proper kernel integration made it mainline. 523 524endmenu 525 526config SYS_FSL_ERRATUM_ESDHC111 527 bool 528 529config SYS_FSL_ERRATUM_ESDHC13 530 bool 531 532config SYS_FSL_ERRATUM_ESDHC135 533 bool 534 535config SYS_FSL_ERRATUM_ESDHC_A001 536 bool 537