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