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