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_CADENCE 252 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller" 253 depends on BLK && DM_MMC 254 depends on MMC_SDHCI 255 depends on OF_CONTROL 256 help 257 This selects the Cadence SD/SDIO/eMMC driver. 258 259 If you have a controller with this interface, say Y here. 260 261 If unsure, say N. 262 263config MMC_SDHCI_KONA 264 bool "SDHCI support on Broadcom KONA platform" 265 depends on MMC_SDHCI 266 help 267 This selects the Broadcom Kona Secure Digital Host Controller 268 Interface(SDHCI) support. 269 This is used in Broadcom mobile SoCs. 270 271 If you have a controller with this interface, say Y here. 272 273config MMC_SDHCI_MSM 274 bool "Qualcomm SDHCI controller" 275 depends on BLK && DM_MMC 276 depends on MMC_SDHCI 277 help 278 Enables support for SDHCI 2.0 controller present on some Qualcomm 279 Snapdragon devices. This device is compatible with eMMC v4.5 and 280 SD 3.0 specifications. Both SD and eMMC devices are supported. 281 Card-detect gpios are not supported. 282 283config MMC_SDHCI_MV 284 bool "SDHCI support on Marvell platform" 285 depends on ARCH_MVEBU 286 depends on MMC_SDHCI 287 help 288 This selects the Secure Digital Host Controller Interface on 289 Marvell platform. 290 291 If you have a controller with this interface, say Y here. 292 293 If unsure, say N. 294 295config MMC_SDHCI_PIC32 296 bool "Microchip PIC32 on-chip SDHCI support" 297 depends on DM_MMC && MACH_PIC32 298 depends on MMC_SDHCI 299 help 300 Support for Microchip PIC32 SDHCI controller. 301 302config MMC_SDHCI_ROCKCHIP 303 bool "Arasan SDHCI controller for Rockchip support" 304 depends on ARCH_ROCKCHIP 305 depends on DM_MMC && BLK 306 depends on MMC_SDHCI 307 help 308 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform 309 310config MMC_SDHCI_S5P 311 bool "SDHCI support on Samsung S5P SoC" 312 depends on MMC_SDHCI 313 help 314 This selects the Secure Digital Host Controller Interface (SDHCI) 315 on Samsung S5P SoCs. 316 317 If you have a controller with this interface, say Y here. 318 319 If unsure, say N. 320 321config MMC_SDHCI_SPEAR 322 bool "SDHCI support on ST SPEAr platform" 323 depends on MMC_SDHCI 324 help 325 This selects the Secure Digital Host Controller Interface (SDHCI) 326 often referrered to as the HSMMC block in some of the ST SPEAR range 327 of SoC 328 329 If you have a controller with this interface, say Y here. 330 331 If unsure, say N. 332 333config MMC_SDHCI_STI 334 bool "SDHCI support for STMicroelectronics SoC" 335 depends on MMC_SDHCI && OF_CONTROL 336 help 337 This selects the Secure Digital Host Controller Interface (SDHCI) 338 on STMicroelectronics STiH410 SoC. 339 340config MMC_SDHCI_XENON 341 bool "SDHCI support for the Xenon SDHCI controller" 342 depends on MMC_SDHCI && DM_MMC && OF_CONTROL 343 help 344 Support for Xenon SDHCI host controller on Marvell Armada 3700 345 7k/8k ARM SoCs platforms 346 347 If you have a controller with this interface, say Y here. 348 349 If unsure, say N. 350 351config MMC_SDHCI_TANGIER 352 bool "Tangier SDHCI controller support" 353 depends on DM_MMC && BLK 354 depends on MMC_SDHCI 355 help 356 This selects support for SDHCI controller on Tanginer 357 SoC. Note that this controller does not sit on PCI bus and, 358 hence, cannot be enumerated by standard PCI means. 359 360 If you're using an Intel Tangier SoC (available on Intel 361 Edison board), say Y here. 362 363 If unsure, say N. 364 365config MMC_SDHCI_TEGRA 366 bool "SDHCI platform support for the Tegra SD/MMC Controller" 367 depends on TEGRA 368 default y 369 help 370 This selects the Tegra SD/MMC controller. If you have a Tegra 371 platform with SD or MMC devices, say Y here. 372 373 If unsure, say N. 374 375config MMC_SDHCI_ZYNQ 376 bool "Arasan SDHCI controller support" 377 depends on ARCH_ZYNQ || ARCH_ZYNQMP 378 depends on DM_MMC && OF_CONTROL && BLK 379 depends on MMC_SDHCI 380 help 381 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform 382 383config MMC_SUNXI 384 bool "Allwinner sunxi SD/MMC Host Controller support" 385 depends on ARCH_SUNXI && !UART0_PORT_F 386 default y 387 help 388 This selects support for the SD/MMC Host Controller on 389 Allwinner sunxi SoCs. 390 391config MMC_SUNXI_HAS_NEW_MODE 392 bool 393 depends on MMC_SUNXI 394 395config GENERIC_ATMEL_MCI 396 bool "Atmel Multimedia Card Interface support" 397 depends on DM_MMC && BLK && ARCH_AT91 398 help 399 This enables support for Atmel High Speed Multimedia Card Interface 400 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3, 401 the SD Memory Card Specification V2.0, the SDIO V2.0 specification 402 and CE-ATA V1.1. 403 404config MMC_USE_PRE_CONFIG 405 bool "Enable to use pre-configure set by pre-loader or bootrom" 406 help 407 The MMC is initialized by pre-loader or bootrom, so it is no need to 408 initialize it again. Open this config to skip some unused initialized 409 process. 410 411endif 412 413config TEGRA124_MMC_DISABLE_EXT_LOOPBACK 414 bool "Disable external clock loopback" 415 depends on MMC_SDHCI_TEGRA && TEGRA124 416 help 417 Disable the external clock loopback and use the internal one on SDMMC3 418 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits 419 being set to 0xfffd according to the TRM. 420 421 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled 422 approach once proper kernel integration made it mainline. 423 424endmenu 425 426config SYS_FSL_ERRATUM_ESDHC111 427 bool 428 429config SYS_FSL_ERRATUM_ESDHC13 430 bool 431 432config SYS_FSL_ERRATUM_ESDHC135 433 bool 434 435config SYS_FSL_ERRATUM_ESDHC_A001 436 bool 437