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