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