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_DAVINCI 59 bool "TI DAVINCI Multimedia Card Interface support" 60 depends on ARCH_DAVINCI 61 default y 62 help 63 This selects the TI DAVINCI Multimedia card Interface. 64 If you have an DAVINCI board with a Multimedia Card slot, 65 say Y here. If unsure, say N. 66 67config MMC_DW 68 bool "Synopsys DesignWare Memory Card Interface" 69 help 70 This selects support for the Synopsys DesignWare Mobile Storage IP 71 block, this provides host support for SD and MMC interfaces, in both 72 PIO, internal DMA mode and external DMA mode. 73 74config MMC_DW_EXYNOS 75 bool "Exynos specific extensions for Synopsys DW Memory Card Interface" 76 depends on ARCH_EXYNOS 77 depends on MMC_DW 78 default y 79 help 80 This selects support for Samsung Exynos SoC specific extensions to the 81 Synopsys DesignWare Memory Card Interface driver. Select this option 82 for platforms based on Exynos4 and Exynos5 SoC's. 83 84config MMC_DW_K3 85 bool "K3 specific extensions for Synopsys DW Memory Card Interface" 86 depends on MMC_DW 87 help 88 This selects support for Hisilicon K3 SoC specific extensions to the 89 Synopsys DesignWare Memory Card Interface driver. Select this option 90 for platforms based on Hisilicon K3 SoC's. 91 92config MMC_DW_ROCKCHIP 93 bool "Rockchip SD/MMC controller support" 94 depends on DM_MMC && OF_CONTROL 95 depends on MMC_DW 96 help 97 This enables support for the Rockchip SD/MMM controller, which is 98 based on Designware IP. The device is compatible with at least 99 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well 100 as removeable SD and micro-SD cards. 101 102config MMC_DW_SOCFPGA 103 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface" 104 depends on ARCH_SOCFPGA 105 depends on MMC_DW 106 default y 107 help 108 This selects support for Altera SOCFPGA specific extensions to the 109 Synopsys DesignWare Memory Card Interface driver. Select this option 110 for platforms based on Altera SOCFPGA. 111 112config MMC_MESON_GX 113 bool "Meson GX EMMC controller support" 114 depends on DM_MMC && BLK && ARCH_MESON 115 help 116 Support for EMMC host controller on Meson GX ARM SoCs platform (S905) 117 118config MMC_MXC 119 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support" 120 help 121 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x 122 Multimedia Card Interface. If you have an i.MX or MPC512x platform 123 with a Multimedia Card slot, say Y here. 124 125 If unsure, say N. 126 127config MMC_MXS 128 bool "Freescale MXS Multimedia Card Interface support" 129 depends on MX23 || MX28 || MX6 || MX7 130 select APBH_DMA 131 select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7 132 select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7 133 help 134 This selects the Freescale SSP MMC controller found on MXS based 135 platforms like mx23/28. 136 137 If unsure, say N. 138 139config MMC_PCI 140 bool "Support for MMC controllers on PCI" 141 help 142 This selects PCI-based MMC controllers. 143 If you have an MMC controller on a PCI bus, say Y here. 144 145 If unsure, say N. 146 147config MMC_OMAP_HS 148 bool "TI OMAP High Speed Multimedia Card Interface support" 149 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR 150 help 151 This selects the TI OMAP High Speed Multimedia card Interface. 152 If you have an omap2plus board with a Multimedia Card slot, 153 say Y here. 154 155 If unsure, say N. 156 157config MMC_OMAP36XX_PINS 158 bool "Enable MMC1 on OMAP36xx/37xx" 159 depends on OMAP34XX && MMC_OMAP_HS 160 help 161 This enables extended-drain in the MMC/SD/SDIO1I/O and 162 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129) 163 specific to the OMAP36xx/37xx using MMC1 164 165 If you have a controller with this interface, say Y here. 166 167 If unsure, say N. 168 169config SH_SDHI 170 bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support" 171 depends on ARCH_RMOBILE 172 help 173 Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform 174 175config MMC_UNIPHIER 176 bool "UniPhier SD/MMC Host Controller support" 177 depends on ARCH_UNIPHIER 178 depends on BLK && DM_MMC 179 depends on OF_CONTROL 180 help 181 This selects support for the SD/MMC Host Controller on UniPhier 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 MMC_USE_PRE_CONFIG 397 bool "Enable to use pre-configure set by pre-loader or bootrom" 398 help 399 The MMC is initialized by pre-loader or bootrom, so it is no need to 400 initialize it again. Open this config to skip some unused initialized 401 process. 402 403endif 404 405config TEGRA124_MMC_DISABLE_EXT_LOOPBACK 406 bool "Disable external clock loopback" 407 depends on MMC_SDHCI_TEGRA && TEGRA124 408 help 409 Disable the external clock loopback and use the internal one on SDMMC3 410 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits 411 being set to 0xfffd according to the TRM. 412 413 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled 414 approach once proper kernel integration made it mainline. 415 416endmenu 417 418config SYS_FSL_ERRATUM_ESDHC111 419 bool 420 421config SYS_FSL_ERRATUM_ESDHC13 422 bool 423 424config SYS_FSL_ERRATUM_ESDHC135 425 bool 426 427config SYS_FSL_ERRATUM_ESDHC_A001 428 bool 429