1 menu "MMC Host controller Support"
4 bool "MMC/SD/SDIO card support"
5 default ARM || PPC || SANDBOX
7 This selects MultiMediaCard, Secure Digital and Secure
10 If you want MMC/SD/SDIO support, you should say Y here and
11 also to your specific host controller driver.
14 bool "Enable MMC controllers using Driver Model"
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
24 bool "Enable MMC controllers using Driver Model in SPL"
25 depends on SPL_DM && DM_MMC
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
37 bool "ARM AMBA Multimedia Card Interface and compatible support"
38 depends on DM_MMC && OF_CONTROL
40 This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
41 Interface (PL180, PL181 and compatible) support.
42 If you have an ARM(R) platform with a Multimedia Card slot,
49 Some cards and hosts may sometimes behave unexpectedly (quirks).
50 This option enable workarounds to handle those quirks. Some of them
51 are enabled by default, other may require additionnal flags or are
52 enabled by the host driver.
55 bool "Support IO voltage configuration"
57 IO voltage configuration allows selecting the voltage level of the IO
58 lines (not the level of main supply). This is required for UHS
59 support. For eMMC this not mandatory, but not enabling this option may
60 prevent the driver of using the faster modes.
62 config SPL_MMC_IO_VOLTAGE
63 bool "Support IO voltage configuration in SPL"
66 IO voltage configuration allows selecting the voltage level of the IO
67 lines (not the level of main supply). This is required for UHS
68 support. For eMMC this not mandatory, but not enabling this option may
69 prevent the driver of using the faster modes.
71 config MMC_UHS_SUPPORT
72 bool "enable UHS support"
73 depends on MMC_IO_VOLTAGE
75 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
76 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
77 frequency can go up to 208MHz (SDR104)
79 config SPL_MMC_UHS_SUPPORT
80 bool "enable UHS support in SPL"
81 depends on SPL_MMC_IO_VOLTAGE
83 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
84 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
85 frequency can go up to 208MHz (SDR104)
87 config MMC_HS200_SUPPORT
88 bool "enable HS200 support"
90 The HS200 mode is support by some eMMC. The bus frequency is up to
91 200MHz. This mode requires tuning the IO.
94 config SPL_MMC_HS200_SUPPORT
95 bool "enable HS200 support in SPL"
97 The HS200 mode is support by some eMMC. The bus frequency is up to
98 200MHz. This mode requires tuning the IO.
101 bool "Output more information about the MMC"
104 Enable the output of more information about the card such as the
108 bool "Tiny MMC framework in SPL"
110 Enable MMC framework tinification support. This option is useful if
111 if your SPL is extremely size constrained. Heed the warning, enable
112 this option if and only if you know exactly what you are doing, if
113 you are reading this help text, you most likely have no idea :-)
115 The MMC framework is reduced to bare minimum to be useful. No malloc
116 support is needed for the MMC framework operation with this option
117 enabled. The framework supports exactly one MMC device and exactly
118 one MMC driver. The MMC driver can be adjusted to avoid any malloc
119 operations too, which can remove the need for malloc support in SPL
120 and thus further reduce footprint.
123 bool "TI DAVINCI Multimedia Card Interface support"
124 depends on ARCH_DAVINCI
127 This selects the TI DAVINCI Multimedia card Interface.
128 If you have an DAVINCI board with a Multimedia Card slot,
129 say Y here. If unsure, say N.
132 bool "Synopsys DesignWare Memory Card Interface"
134 This selects support for the Synopsys DesignWare Mobile Storage IP
135 block, this provides host support for SD and MMC interfaces, in both
136 PIO, internal DMA mode and external DMA mode.
139 bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
140 depends on ARCH_EXYNOS
144 This selects support for Samsung Exynos SoC specific extensions to the
145 Synopsys DesignWare Memory Card Interface driver. Select this option
146 for platforms based on Exynos4 and Exynos5 SoC's.
149 bool "K3 specific extensions for Synopsys DW Memory Card Interface"
152 This selects support for Hisilicon K3 SoC specific extensions to the
153 Synopsys DesignWare Memory Card Interface driver. Select this option
154 for platforms based on Hisilicon K3 SoC's.
156 config MMC_DW_ROCKCHIP
157 bool "Rockchip SD/MMC controller support"
158 depends on DM_MMC && OF_CONTROL
161 This enables support for the Rockchip SD/MMM controller, which is
162 based on Designware IP. The device is compatible with at least
163 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
164 as removeable SD and micro-SD cards.
166 config MMC_DW_SOCFPGA
167 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
168 depends on ARCH_SOCFPGA
172 This selects support for Altera SOCFPGA specific extensions to the
173 Synopsys DesignWare Memory Card Interface driver. Select this option
174 for platforms based on Altera SOCFPGA.
177 bool "Meson GX EMMC controller support"
178 depends on DM_MMC && BLK && ARCH_MESON
180 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
183 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
185 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
186 Multimedia Card Interface. If you have an i.MX or MPC512x platform
187 with a Multimedia Card slot, say Y here.
192 bool "Freescale MXS Multimedia Card Interface support"
194 This selects the Freescale SSP MMC controller found on MXS based
195 platforms like mx23/28.
200 bool "Support for MMC controllers on PCI"
202 This selects PCI-based MMC controllers.
203 If you have an MMC controller on a PCI bus, say Y here.
208 bool "TI OMAP High Speed Multimedia Card Interface support"
209 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
210 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
212 This selects the TI OMAP High Speed Multimedia card Interface.
213 If you have an omap2plus board with a Multimedia Card slot,
218 config MMC_OMAP36XX_PINS
219 bool "Enable MMC1 on OMAP36xx/37xx"
220 depends on OMAP34XX && MMC_OMAP_HS
222 This enables extended-drain in the MMC/SD/SDIO1I/O and
223 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
224 specific to the OMAP36xx/37xx using MMC1
226 If you have a controller with this interface, say Y here.
231 bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
232 depends on ARCH_RMOBILE
234 Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
237 bool "UniPhier/RCar SD/MMC Host Controller support"
238 depends on ARCH_UNIPHIER || ARCH_RMOBILE
239 depends on BLK && DM_MMC
240 depends on OF_CONTROL
242 This selects support for the Matsushita SD/MMC Host Controller on
243 SocioNext UniPhier and Renesas RCar SoCs.
246 bool "Sandbox MMC support"
248 depends on BLK && DM_MMC && OF_CONTROL
250 This select a dummy sandbox MMC driver. At present this does nothing
251 other than allow sandbox to be build with MMC support. This
252 improves build coverage for sandbox and makes it easier to detect
253 MMC build errors with sandbox.
256 bool "Secure Digital Host Controller Interface support"
258 This selects the generic Secure Digital Host Controller Interface.
259 It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
260 and Toshiba(R). Most controllers found in laptops are of this type.
262 If you have a controller with this interface, say Y here.
266 config MMC_SDHCI_IO_ACCESSORS
270 This is silent Kconfig symbol that is selected by the drivers that
271 need to overwrite SDHCI IO memory accessors.
273 config MMC_SDHCI_SDMA
274 bool "Support SDHCI SDMA"
277 This enables support for the SDMA (Single Operation DMA) defined
278 in the SD Host Controller Standard Specification Version 1.00 .
280 config MMC_SDHCI_ATMEL
281 bool "Atmel SDHCI controller support"
283 depends on DM_MMC && BLK && ARCH_AT91
286 This enables support for the Atmel SDHCI controller, which supports
287 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
288 Memory Card Specification V3.0, and the SDIO V3.0 specification.
289 It is compliant with the SD Host Controller Standard V3.0
292 config MMC_SDHCI_BCM2835
293 tristate "SDHCI support for the BCM2835 SD/MMC Controller"
294 depends on ARCH_BCM283X
296 select MMC_SDHCI_IO_ACCESSORS
298 This selects the BCM2835 SD/MMC controller.
300 If you have a BCM2835 platform with SD or MMC devices,
305 config MMC_SDHCI_CADENCE
306 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
307 depends on BLK && DM_MMC
309 depends on OF_CONTROL
311 This selects the Cadence SD/SDIO/eMMC driver.
313 If you have a controller with this interface, say Y here.
317 config MMC_SDHCI_KONA
318 bool "SDHCI support on Broadcom KONA platform"
321 This selects the Broadcom Kona Secure Digital Host Controller
322 Interface(SDHCI) support.
323 This is used in Broadcom mobile SoCs.
325 If you have a controller with this interface, say Y here.
328 bool "Qualcomm SDHCI controller"
329 depends on BLK && DM_MMC
332 Enables support for SDHCI 2.0 controller present on some Qualcomm
333 Snapdragon devices. This device is compatible with eMMC v4.5 and
334 SD 3.0 specifications. Both SD and eMMC devices are supported.
335 Card-detect gpios are not supported.
338 bool "SDHCI support on Marvell platform"
339 depends on ARCH_MVEBU
342 This selects the Secure Digital Host Controller Interface on
345 If you have a controller with this interface, say Y here.
349 config MMC_SDHCI_PIC32
350 bool "Microchip PIC32 on-chip SDHCI support"
351 depends on DM_MMC && MACH_PIC32
354 Support for Microchip PIC32 SDHCI controller.
356 config MMC_SDHCI_ROCKCHIP
357 bool "Arasan SDHCI controller for Rockchip support"
358 depends on ARCH_ROCKCHIP
359 depends on DM_MMC && BLK
362 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
365 bool "SDHCI support on Samsung S5P SoC"
368 This selects the Secure Digital Host Controller Interface (SDHCI)
371 If you have a controller with this interface, say Y here.
375 config MMC_SDHCI_SPEAR
376 bool "SDHCI support on ST SPEAr platform"
379 This selects the Secure Digital Host Controller Interface (SDHCI)
380 often referrered to as the HSMMC block in some of the ST SPEAR range
383 If you have a controller with this interface, say Y here.
388 bool "SDHCI support for STMicroelectronics SoC"
389 depends on MMC_SDHCI && OF_CONTROL
391 This selects the Secure Digital Host Controller Interface (SDHCI)
392 on STMicroelectronics STiH410 SoC.
394 config MMC_SDHCI_XENON
395 bool "SDHCI support for the Xenon SDHCI controller"
396 depends on MMC_SDHCI && DM_MMC && OF_CONTROL
398 Support for Xenon SDHCI host controller on Marvell Armada 3700
399 7k/8k ARM SoCs platforms
401 If you have a controller with this interface, say Y here.
405 config MMC_SDHCI_TANGIER
406 bool "Tangier SDHCI controller support"
407 depends on DM_MMC && BLK
410 This selects support for SDHCI controller on Tanginer
411 SoC. Note that this controller does not sit on PCI bus and,
412 hence, cannot be enumerated by standard PCI means.
414 If you're using an Intel Tangier SoC (available on Intel
415 Edison board), say Y here.
419 config MMC_SDHCI_TEGRA
420 bool "SDHCI platform support for the Tegra SD/MMC Controller"
424 This selects the Tegra SD/MMC controller. If you have a Tegra
425 platform with SD or MMC devices, say Y here.
429 config MMC_SDHCI_ZYNQ
430 bool "Arasan SDHCI controller support"
431 depends on ARCH_ZYNQ || ARCH_ZYNQMP
432 depends on DM_MMC && OF_CONTROL && BLK
435 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
438 bool "Allwinner sunxi SD/MMC Host Controller support"
439 depends on ARCH_SUNXI && !UART0_PORT_F
442 This selects support for the SD/MMC Host Controller on
443 Allwinner sunxi SoCs.
445 config MMC_SUNXI_HAS_NEW_MODE
449 config GENERIC_ATMEL_MCI
450 bool "Atmel Multimedia Card Interface support"
451 depends on DM_MMC && BLK && ARCH_AT91
453 This enables support for Atmel High Speed Multimedia Card Interface
454 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
455 the SD Memory Card Specification V2.0, the SDIO V2.0 specification
459 bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
460 depends on DM_MMC && BLK && OF_CONTROL
462 This selects support for the SD/MMC controller on STM32H7 SoCs.
463 If you have a board based on such a SoC and with a SD/MMC slot,
467 bool "Andestech SD/MMC controller support"
468 depends on DM_MMC && OF_CONTROL && BLK && FTSDC010
470 This enables support for the Andestech SD/MMM controller, which is
474 bool "Ftsdc010 SD/MMC controller Support"
476 This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
480 config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
481 bool "Disable external clock loopback"
482 depends on MMC_SDHCI_TEGRA && TEGRA124
484 Disable the external clock loopback and use the internal one on SDMMC3
485 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
486 being set to 0xfffd according to the TRM.
488 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
489 approach once proper kernel integration made it mainline.
493 config SYS_FSL_ERRATUM_ESDHC111
496 config SYS_FSL_ERRATUM_ESDHC13
499 config SYS_FSL_ERRATUM_ESDHC135
502 config SYS_FSL_ERRATUM_ESDHC_A001