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