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