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 GENERIC_MMC 14 bool "Generic MMC driver framework" 15 default MMC 16 17config DM_MMC 18 bool "Enable MMC controllers using Driver Model" 19 depends on DM 20 help 21 This enables the MultiMediaCard (MMC) uclass which supports MMC and 22 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.) 23 and non-removable (e.g. eMMC chip) devices are supported. These 24 appear as block devices in U-Boot and can support filesystems such 25 as EXT4 and FAT. 26 27config DM_MMC_OPS 28 bool "Support MMC controller operations using Driver Model" 29 depends on DM_MMC 30 default y if DM_MMC 31 help 32 Driver model provides a means of supporting device operations. This 33 option moves MMC operations under the control of driver model. The 34 option will be removed as soon as all DM_MMC drivers use it, as it 35 will the only supported behaviour. 36 37if MMC 38 39config SPL_MMC_TINY 40 bool "Tiny MMC framework in SPL" 41 help 42 Enable MMC framework tinification support. This option is useful if 43 if your SPL is extremely size constrained. Heed the warning, enable 44 this option if and only if you know exactly what you are doing, if 45 you are reading this help text, you most likely have no idea :-) 46 47 The MMC framework is reduced to bare minimum to be useful. No malloc 48 support is needed for the MMC framework operation with this option 49 enabled. The framework supports exactly one MMC device and exactly 50 one MMC driver. The MMC driver can be adjusted to avoid any malloc 51 operations too, which can remove the need for malloc support in SPL 52 and thus further reduce footprint. 53 54config MMC_DAVINCI 55 bool "TI DAVINCI Multimedia Card Interface support" 56 depends on ARCH_DAVINCI 57 default y 58 help 59 This selects the TI DAVINCI Multimedia card Interface. 60 If you have an DAVINCI board with a Multimedia Card slot, 61 say Y here. If unsure, say N. 62 63config MMC_DW 64 bool "Synopsys DesignWare Memory Card Interface" 65 help 66 This selects support for the Synopsys DesignWare Mobile Storage IP 67 block, this provides host support for SD and MMC interfaces, in both 68 PIO, internal DMA mode and external DMA mode. 69 70config MMC_DW_EXYNOS 71 bool "Exynos specific extensions for Synopsys DW Memory Card Interface" 72 depends on ARCH_EXYNOS 73 depends on MMC_DW 74 default y 75 help 76 This selects support for Samsung Exynos SoC specific extensions to the 77 Synopsys DesignWare Memory Card Interface driver. Select this option 78 for platforms based on Exynos4 and Exynos5 SoC's. 79 80config MMC_DW_K3 81 bool "K3 specific extensions for Synopsys DW Memory Card Interface" 82 depends on MMC_DW 83 help 84 This selects support for Hisilicon K3 SoC specific extensions to the 85 Synopsys DesignWare Memory Card Interface driver. Select this option 86 for platforms based on Hisilicon K3 SoC's. 87 88config MMC_DW_ROCKCHIP 89 bool "Rockchip SD/MMC controller support" 90 depends on DM_MMC && OF_CONTROL 91 depends on MMC_DW 92 help 93 This enables support for the Rockchip SD/MMM controller, which is 94 based on Designware IP. The device is compatible with at least 95 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well 96 as removeable SD and micro-SD cards. 97 98config MMC_DW_SOCFPGA 99 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface" 100 depends on ARCH_SOCFPGA 101 depends on MMC_DW 102 default y 103 help 104 This selects support for Altera SOCFPGA specific extensions to the 105 Synopsys DesignWare Memory Card Interface driver. Select this option 106 for platforms based on Altera SOCFPGA. 107 108config MMC_MESON_GX 109 bool "Meson GX EMMC controller support" 110 depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_MESON 111 help 112 Support for EMMC host controller on Meson GX ARM SoCs platform (S905) 113 114config MMC_MXC 115 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support" 116 help 117 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x 118 Multimedia Card Interface. If you have an i.MX or MPC512x platform 119 with a Multimedia Card slot, say Y here. 120 121 If unsure, say N. 122 123config MMC_MXS 124 bool "Freescale MXS Multimedia Card Interface support" 125 help 126 This selects the Freescale SSP MMC controller found on MXS based 127 platforms like mx23/28. 128 129 If unsure, say N. 130 131config MMC_PCI 132 bool "Support for MMC controllers on PCI" 133 help 134 This selects PCI-based MMC controllers. 135 If you have an MMC controller on a PCI bus, say Y here. 136 137 If unsure, say N. 138 139config MMC_OMAP_HS 140 bool "TI OMAP High Speed Multimedia Card Interface support" 141 help 142 This selects the TI OMAP High Speed Multimedia card Interface. 143 If you have an omap2plus board with a Multimedia Card slot, 144 say Y here. 145 146 If unsure, say N. 147 148config MMC_OMAP36XX_PINS 149 bool "Enable MMC1 on OMAP36xx/37xx" 150 depends on OMAP34XX && MMC_OMAP_HS 151 help 152 This enables extended-drain in the MMC/SD/SDIO1I/O and 153 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129) 154 specific to the OMAP36xx/37xx using MMC1 155 156 If you have a controller with this interface, say Y here. 157 158 If unsure, say N. 159 160config SH_SDHI 161 bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support" 162 depends on RMOBILE 163 help 164 Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform 165 166config MMC_UNIPHIER 167 bool "UniPhier SD/MMC Host Controller support" 168 depends on ARCH_UNIPHIER 169 depends on BLK && DM_MMC_OPS 170 depends on OF_CONTROL 171 help 172 This selects support for the SD/MMC Host Controller on UniPhier SoCs. 173 174config MMC_SANDBOX 175 bool "Sandbox MMC support" 176 depends on SANDBOX 177 depends on BLK && DM_MMC_OPS && 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 && DM_MMC_OPS && 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_OPS 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_OPS 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 && DM_MMC_OPS 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 && DM_MMC_OPS 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 GENERIC_ATMEL_MCI 375 bool "Atmel Multimedia Card Interface support" 376 depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_AT91 377 help 378 This enables support for Atmel High Speed Multimedia Card Interface 379 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3, 380 the SD Memory Card Specification V2.0, the SDIO V2.0 specification 381 and CE-ATA V1.1. 382 383endif 384 385config TEGRA124_MMC_DISABLE_EXT_LOOPBACK 386 bool "Disable external clock loopback" 387 depends on MMC_SDHCI_TEGRA && TEGRA124 388 help 389 Disable the external clock loopback and use the internal one on SDMMC3 390 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits 391 being set to 0xfffd according to the TRM. 392 393 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled 394 approach once proper kernel integration made it mainline. 395 396endmenu 397 398config SYS_FSL_ERRATUM_ESDHC111 399 bool 400 401config SYS_FSL_ERRATUM_ESDHC13 402 bool 403 404config SYS_FSL_ERRATUM_ESDHC135 405 bool 406 407config SYS_FSL_ERRATUM_ESDHC_A001 408 bool 409