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