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 SPL_MMC_TINY 44 bool "Tiny MMC framework in SPL" 45 help 46 Enable MMC framework tinification support. This option is useful if 47 if your SPL is extremely size constrained. Heed the warning, enable 48 this option if and only if you know exactly what you are doing, if 49 you are reading this help text, you most likely have no idea :-) 50 51 The MMC framework is reduced to bare minimum to be useful. No malloc 52 support is needed for the MMC framework operation with this option 53 enabled. The framework supports exactly one MMC device and exactly 54 one MMC driver. The MMC driver can be adjusted to avoid any malloc 55 operations too, which can remove the need for malloc support in SPL 56 and thus further reduce footprint. 57 58config MMC_SIMPLE 59 bool "Reduce mmc code size" 60 help 61 Reduce mmc code size. 62 63config SUPPORT_EMMC_RPMB 64 bool "Support eMMC replay protected memory block (RPMB)" 65 depends on MMC && CMD_MMC 66 default y 67 help 68 Enable support for reading, writing and programming the 69 key for the Replay Protection Memory Block partition in eMMC. 70 71config MMC_DAVINCI 72 bool "TI DAVINCI Multimedia Card Interface support" 73 depends on ARCH_DAVINCI 74 default y 75 help 76 This selects the TI DAVINCI Multimedia card Interface. 77 If you have an DAVINCI board with a Multimedia Card slot, 78 say Y here. If unsure, say N. 79 80config MMC_DW 81 bool "Synopsys DesignWare Memory Card Interface" 82 help 83 This selects support for the Synopsys DesignWare Mobile Storage IP 84 block, this provides host support for SD and MMC interfaces, in both 85 PIO, internal DMA mode and external DMA mode. 86 87config MMC_DW_PWREN_VALUE 88 hex "mmc dw powen value" 89 default 1 if ROCKCHIP_RK3576 90 default 0 91 help 92 Config the value for MMC-DW drivers to power on sd card. 93 94config MMC_DW_EXYNOS 95 bool "Exynos specific extensions for Synopsys DW Memory Card Interface" 96 depends on ARCH_EXYNOS 97 depends on MMC_DW 98 default y 99 help 100 This selects support for Samsung Exynos SoC specific extensions to the 101 Synopsys DesignWare Memory Card Interface driver. Select this option 102 for platforms based on Exynos4 and Exynos5 SoC's. 103 104config MMC_DW_K3 105 bool "K3 specific extensions for Synopsys DW Memory Card Interface" 106 depends on MMC_DW 107 help 108 This selects support for Hisilicon K3 SoC specific extensions to the 109 Synopsys DesignWare Memory Card Interface driver. Select this option 110 for platforms based on Hisilicon K3 SoC's. 111 112config MMC_DW_ROCKCHIP 113 bool "Rockchip SD/MMC controller support" 114 depends on DM_MMC && OF_CONTROL 115 depends on MMC_DW 116 help 117 This enables support for the Rockchip SD/MMM controller, which is 118 based on Designware IP. The device is compatible with at least 119 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well 120 as removeable SD and micro-SD cards. 121 122config MMC_DW_SOCFPGA 123 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface" 124 depends on ARCH_SOCFPGA 125 depends on MMC_DW 126 default y 127 help 128 This selects support for Altera SOCFPGA specific extensions to the 129 Synopsys DesignWare Memory Card Interface driver. Select this option 130 for platforms based on Altera SOCFPGA. 131 132config MMC_MESON_GX 133 bool "Meson GX EMMC controller support" 134 depends on DM_MMC && BLK && ARCH_MESON 135 help 136 Support for EMMC host controller on Meson GX ARM SoCs platform (S905) 137 138config MMC_MXC 139 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support" 140 help 141 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x 142 Multimedia Card Interface. If you have an i.MX or MPC512x platform 143 with a Multimedia Card slot, say Y here. 144 145 If unsure, say N. 146 147config MMC_MXS 148 bool "Freescale MXS Multimedia Card Interface support" 149 depends on MX23 || MX28 || MX6 || MX7 150 select APBH_DMA 151 select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7 152 select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7 153 help 154 This selects the Freescale SSP MMC controller found on MXS based 155 platforms like mx23/28. 156 157 If unsure, say N. 158 159config MMC_PCI 160 bool "Support for MMC controllers on PCI" 161 help 162 This selects PCI-based MMC controllers. 163 If you have an MMC controller on a PCI bus, say Y here. 164 165 If unsure, say N. 166 167config MMC_OMAP_HS 168 bool "TI OMAP High Speed Multimedia Card Interface support" 169 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR 170 help 171 This selects the TI OMAP High Speed Multimedia card Interface. 172 If you have an omap2plus board with a Multimedia Card slot, 173 say Y here. 174 175 If unsure, say N. 176 177config MMC_OMAP36XX_PINS 178 bool "Enable MMC1 on OMAP36xx/37xx" 179 depends on OMAP34XX && MMC_OMAP_HS 180 help 181 This enables extended-drain in the MMC/SD/SDIO1I/O and 182 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129) 183 specific to the OMAP36xx/37xx using MMC1 184 185 If you have a controller with this interface, say Y here. 186 187 If unsure, say N. 188 189config SH_SDHI 190 bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support" 191 depends on ARCH_RMOBILE 192 help 193 Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform 194 195config MMC_UNIPHIER 196 bool "UniPhier SD/MMC Host Controller support" 197 depends on ARCH_UNIPHIER 198 depends on BLK && DM_MMC 199 depends on OF_CONTROL 200 help 201 This selects support for the SD/MMC Host Controller on UniPhier SoCs. 202 203config MMC_SANDBOX 204 bool "Sandbox MMC support" 205 depends on SANDBOX 206 depends on BLK && DM_MMC && OF_CONTROL 207 help 208 This select a dummy sandbox MMC driver. At present this does nothing 209 other than allow sandbox to be build with MMC support. This 210 improves build coverage for sandbox and makes it easier to detect 211 MMC build errors with sandbox. 212 213config MMC_SDHCI 214 bool "Secure Digital Host Controller Interface support" 215 help 216 This selects the generic Secure Digital Host Controller Interface. 217 It is used by manufacturers such as Texas Instruments(R), Ricoh(R) 218 and Toshiba(R). Most controllers found in laptops are of this type. 219 220 If you have a controller with this interface, say Y here. 221 222 If unsure, say N. 223 224config MMC_SDHCI_IO_ACCESSORS 225 bool 226 depends on MMC_SDHCI 227 help 228 This is silent Kconfig symbol that is selected by the drivers that 229 need to overwrite SDHCI IO memory accessors. 230 231config MMC_SDHCI_SDMA 232 bool "Support SDHCI SDMA" 233 depends on MMC_SDHCI 234 help 235 This enables support for the SDMA (Single Operation DMA) defined 236 in the SD Host Controller Standard Specification Version 1.00 . 237 238config MMC_SDHCI_ATMEL 239 bool "Atmel SDHCI controller support" 240 depends on ARCH_AT91 241 depends on DM_MMC && BLK && ARCH_AT91 242 depends on MMC_SDHCI 243 help 244 This enables support for the Atmel SDHCI controller, which supports 245 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD 246 Memory Card Specification V3.0, and the SDIO V3.0 specification. 247 It is compliant with the SD Host Controller Standard V3.0 248 specification. 249 250config MMC_SDHCI_BCM2835 251 tristate "SDHCI support for the BCM2835 SD/MMC Controller" 252 depends on ARCH_BCM283X 253 depends on MMC_SDHCI 254 select MMC_SDHCI_IO_ACCESSORS 255 help 256 This selects the BCM2835 SD/MMC controller. 257 258 If you have a BCM2835 platform with SD or MMC devices, 259 say Y here. 260 261 If unsure, say N. 262 263config MMC_SDHCI_BCMSTB 264 tristate "SDHCI support for the BCMSTB SD/MMC Controller" 265 depends on MMC_SDHCI 266 help 267 This selects the Broadcom set-top box SD/MMC controller. 268 269 If you have a BCMSTB platform with SD or MMC devices, 270 say Y here. 271 272 If unsure, say N. 273 274config MMC_SDHCI_CADENCE 275 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller" 276 depends on BLK && DM_MMC 277 depends on MMC_SDHCI 278 depends on OF_CONTROL 279 help 280 This selects the Cadence SD/SDIO/eMMC driver. 281 282 If you have a controller with this interface, say Y here. 283 284 If unsure, say N. 285 286config MMC_SDHCI_KONA 287 bool "SDHCI support on Broadcom KONA platform" 288 depends on MMC_SDHCI 289 help 290 This selects the Broadcom Kona Secure Digital Host Controller 291 Interface(SDHCI) support. 292 This is used in Broadcom mobile SoCs. 293 294 If you have a controller with this interface, say Y here. 295 296config MMC_SDHCI_MSM 297 bool "Qualcomm SDHCI controller" 298 depends on BLK && DM_MMC 299 depends on MMC_SDHCI 300 help 301 Enables support for SDHCI 2.0 controller present on some Qualcomm 302 Snapdragon devices. This device is compatible with eMMC v4.5 and 303 SD 3.0 specifications. Both SD and eMMC devices are supported. 304 Card-detect gpios are not supported. 305 306config MMC_SDHCI_MV 307 bool "SDHCI support on Marvell platform" 308 depends on ARCH_MVEBU 309 depends on MMC_SDHCI 310 help 311 This selects the Secure Digital Host Controller Interface on 312 Marvell platform. 313 314 If you have a controller with this interface, say Y here. 315 316 If unsure, say N. 317 318config MMC_SDHCI_PIC32 319 bool "Microchip PIC32 on-chip SDHCI support" 320 depends on DM_MMC && MACH_PIC32 321 depends on MMC_SDHCI 322 help 323 Support for Microchip PIC32 SDHCI controller. 324 325config MMC_SDHCI_ROCKCHIP 326 bool "Arasan SDHCI controller for Rockchip support" 327 depends on ARCH_ROCKCHIP 328 depends on DM_MMC && BLK 329 depends on MMC_SDHCI 330 help 331 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform 332 333config MMC_SDHCI_S5P 334 bool "SDHCI support on Samsung S5P SoC" 335 depends on MMC_SDHCI 336 help 337 This selects the Secure Digital Host Controller Interface (SDHCI) 338 on Samsung S5P SoCs. 339 340 If you have a controller with this interface, say Y here. 341 342 If unsure, say N. 343 344config MMC_SDHCI_SPEAR 345 bool "SDHCI support on ST SPEAr platform" 346 depends on MMC_SDHCI 347 help 348 This selects the Secure Digital Host Controller Interface (SDHCI) 349 often referrered to as the HSMMC block in some of the ST SPEAR range 350 of SoC 351 352 If you have a controller with this interface, say Y here. 353 354 If unsure, say N. 355 356config MMC_SDHCI_STI 357 bool "SDHCI support for STMicroelectronics SoC" 358 depends on MMC_SDHCI && OF_CONTROL 359 help 360 This selects the Secure Digital Host Controller Interface (SDHCI) 361 on STMicroelectronics STiH410 SoC. 362 363config MMC_SDHCI_XENON 364 bool "SDHCI support for the Xenon SDHCI controller" 365 depends on MMC_SDHCI && DM_MMC && OF_CONTROL 366 help 367 Support for Xenon SDHCI host controller on Marvell Armada 3700 368 7k/8k ARM SoCs platforms 369 370 If you have a controller with this interface, say Y here. 371 372 If unsure, say N. 373 374config MMC_SDHCI_TANGIER 375 bool "Tangier SDHCI controller support" 376 depends on DM_MMC && BLK 377 depends on MMC_SDHCI 378 help 379 This selects support for SDHCI controller on Tanginer 380 SoC. Note that this controller does not sit on PCI bus and, 381 hence, cannot be enumerated by standard PCI means. 382 383 If you're using an Intel Tangier SoC (available on Intel 384 Edison board), say Y here. 385 386 If unsure, say N. 387 388config MMC_SDHCI_TEGRA 389 bool "SDHCI platform support for the Tegra SD/MMC Controller" 390 depends on TEGRA 391 default y 392 help 393 This selects the Tegra SD/MMC controller. If you have a Tegra 394 platform with SD or MMC devices, say Y here. 395 396 If unsure, say N. 397 398config MMC_SDHCI_ZYNQ 399 bool "Arasan SDHCI controller support" 400 depends on ARCH_ZYNQ || ARCH_ZYNQMP 401 depends on DM_MMC && OF_CONTROL && BLK 402 depends on MMC_SDHCI 403 help 404 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform 405 406config MMC_SUNXI 407 bool "Allwinner sunxi SD/MMC Host Controller support" 408 depends on ARCH_SUNXI && !UART0_PORT_F 409 default y 410 help 411 This selects support for the SD/MMC Host Controller on 412 Allwinner sunxi SoCs. 413 414config MMC_SUNXI_HAS_NEW_MODE 415 bool 416 depends on MMC_SUNXI 417 418config GENERIC_ATMEL_MCI 419 bool "Atmel Multimedia Card Interface support" 420 depends on DM_MMC && BLK && ARCH_AT91 421 help 422 This enables support for Atmel High Speed Multimedia Card Interface 423 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3, 424 the SD Memory Card Specification V2.0, the SDIO V2.0 specification 425 and CE-ATA V1.1. 426 427config MMC_USE_PRE_CONFIG 428 bool "Enable to use pre-configure set by pre-loader or bootrom" 429 help 430 The MMC is initialized by pre-loader or bootrom, so it is no need to 431 initialize it again. Open this config to skip some unused initialized 432 process. 433 434endif 435 436config TEGRA124_MMC_DISABLE_EXT_LOOPBACK 437 bool "Disable external clock loopback" 438 depends on MMC_SDHCI_TEGRA && TEGRA124 439 help 440 Disable the external clock loopback and use the internal one on SDMMC3 441 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits 442 being set to 0xfffd according to the TRM. 443 444 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled 445 approach once proper kernel integration made it mainline. 446 447endmenu 448 449config SYS_FSL_ERRATUM_ESDHC111 450 bool 451 452config SYS_FSL_ERRATUM_ESDHC13 453 bool 454 455config SYS_FSL_ERRATUM_ESDHC135 456 bool 457 458config SYS_FSL_ERRATUM_ESDHC_A001 459 bool 460