mmc: make UHS and HS200 optional
[oweals/u-boot.git] / drivers / mmc / Kconfig
1 menu "MMC Host controller Support"
2
3 config 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
13 config 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
23 config 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
34 if MMC
35
36 config ARM_PL180_MMCI
37         bool "ARM AMBA Multimedia Card Interface and compatible support"
38         depends on DM_MMC && OF_CONTROL
39         help
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,
43           say Y or M here.
44
45 config MMC_QUIRKS
46         bool "Enable quirks"
47         default y
48         help
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.
53
54 config MMC_IO_VOLTAGE
55         bool "Support IO voltage configuration"
56         help
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.
61
62 config SPL_MMC_IO_VOLTAGE
63         bool "Support IO voltage configuration in SPL"
64         default n
65         help
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.
70
71 config MMC_UHS_SUPPORT
72         bool "enable UHS support"
73         depends on MMC_IO_VOLTAGE
74         help
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)
78
79 config SPL_MMC_UHS_SUPPORT
80         bool "enable UHS support in SPL"
81         depends on SPL_MMC_IO_VOLTAGE
82         help
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)
86
87 config MMC_HS200_SUPPORT
88         bool "enable HS200 support"
89         help
90           The HS200 mode is support by some eMMC. The bus frequency is up to
91           200MHz. This mode requires tuning the IO.
92
93
94 config SPL_MMC_HS200_SUPPORT
95         bool "enable HS200 support in SPL"
96         help
97           The HS200 mode is support by some eMMC. The bus frequency is up to
98           200MHz. This mode requires tuning the IO.
99
100 config MMC_VERBOSE
101         bool "Output more information about the MMC"
102         default y
103         help
104           Enable the output of more information about the card such as the
105           operating mode.
106
107 config SPL_MMC_TINY
108         bool "Tiny MMC framework in SPL"
109         help
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 :-)
114
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.
121
122 config MMC_DAVINCI
123         bool "TI DAVINCI Multimedia Card Interface support"
124         depends on ARCH_DAVINCI
125         default y
126         help
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.
130
131 config MMC_DW
132         bool "Synopsys DesignWare Memory Card Interface"
133         help
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.
137
138 config MMC_DW_EXYNOS
139         bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
140         depends on ARCH_EXYNOS
141         depends on MMC_DW
142         default y
143         help
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.
147
148 config MMC_DW_K3
149         bool "K3 specific extensions for Synopsys DW Memory Card Interface"
150         depends on MMC_DW
151         help
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.
155
156 config MMC_DW_ROCKCHIP
157         bool "Rockchip SD/MMC controller support"
158         depends on DM_MMC && OF_CONTROL
159         depends on MMC_DW
160         help
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.
165
166 config MMC_DW_SOCFPGA
167         bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
168         depends on ARCH_SOCFPGA
169         depends on MMC_DW
170         default y
171         help
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.
175
176 config MMC_MESON_GX
177         bool "Meson GX EMMC controller support"
178         depends on DM_MMC && BLK && ARCH_MESON
179         help
180          Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
181
182 config MMC_MXC
183         bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
184         help
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.
188
189           If unsure, say N.
190
191 config MMC_MXS
192         bool "Freescale MXS Multimedia Card Interface support"
193         help
194           This selects the Freescale SSP MMC controller found on MXS based
195           platforms like mx23/28.
196
197           If unsure, say N.
198
199 config MMC_PCI
200         bool "Support for MMC controllers on PCI"
201         help
202           This selects PCI-based MMC controllers.
203           If you have an MMC controller on a PCI bus, say Y here.
204
205           If unsure, say N.
206
207 config MMC_OMAP_HS
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
211         help
212           This selects the TI OMAP High Speed Multimedia card Interface.
213           If you have an omap2plus board with a Multimedia Card slot,
214           say Y here.
215
216           If unsure, say N.
217
218 config MMC_OMAP36XX_PINS
219         bool "Enable MMC1 on OMAP36xx/37xx"
220         depends on OMAP34XX && MMC_OMAP_HS
221         help
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
225
226           If you have a controller with this interface, say Y here.
227
228           If unsure, say N.
229
230 config SH_SDHI
231         bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
232         depends on ARCH_RMOBILE
233         help
234           Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
235
236 config MMC_UNIPHIER
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
241         help
242           This selects support for the Matsushita SD/MMC Host Controller on
243           SocioNext UniPhier and Renesas RCar SoCs.
244
245 config MMC_SANDBOX
246         bool "Sandbox MMC support"
247         depends on SANDBOX
248         depends on BLK && DM_MMC && OF_CONTROL
249         help
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.
254
255 config MMC_SDHCI
256         bool "Secure Digital Host Controller Interface support"
257         help
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.
261
262           If you have a controller with this interface, say Y here.
263
264           If unsure, say N.
265
266 config MMC_SDHCI_IO_ACCESSORS
267         bool
268         depends on MMC_SDHCI
269         help
270           This is silent Kconfig symbol that is selected by the drivers that
271           need to overwrite SDHCI IO memory accessors.
272
273 config MMC_SDHCI_SDMA
274         bool "Support SDHCI SDMA"
275         depends on MMC_SDHCI
276         help
277           This enables support for the SDMA (Single Operation DMA) defined
278           in the SD Host Controller Standard Specification Version 1.00 .
279
280 config MMC_SDHCI_ATMEL
281         bool "Atmel SDHCI controller support"
282         depends on ARCH_AT91
283         depends on DM_MMC && BLK && ARCH_AT91
284         depends on MMC_SDHCI
285         help
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
290           specification.
291
292 config MMC_SDHCI_BCM2835
293         tristate "SDHCI support for the BCM2835 SD/MMC Controller"
294         depends on ARCH_BCM283X
295         depends on MMC_SDHCI
296         select MMC_SDHCI_IO_ACCESSORS
297         help
298           This selects the BCM2835 SD/MMC controller.
299
300           If you have a BCM2835 platform with SD or MMC devices,
301           say Y here.
302
303           If unsure, say N.
304
305 config MMC_SDHCI_CADENCE
306         bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
307         depends on BLK && DM_MMC
308         depends on MMC_SDHCI
309         depends on OF_CONTROL
310         help
311           This selects the Cadence SD/SDIO/eMMC driver.
312
313           If you have a controller with this interface, say Y here.
314
315           If unsure, say N.
316
317 config MMC_SDHCI_KONA
318         bool "SDHCI support on Broadcom KONA platform"
319         depends on MMC_SDHCI
320         help
321           This selects the Broadcom Kona Secure Digital Host Controller
322           Interface(SDHCI) support.
323           This is used in Broadcom mobile SoCs.
324
325           If you have a controller with this interface, say Y here.
326
327 config MMC_SDHCI_MSM
328         bool "Qualcomm SDHCI controller"
329         depends on BLK && DM_MMC
330         depends on MMC_SDHCI
331         help
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.
336
337 config MMC_SDHCI_MV
338         bool "SDHCI support on Marvell platform"
339         depends on ARCH_MVEBU
340         depends on MMC_SDHCI
341         help
342           This selects the Secure Digital Host Controller Interface on
343           Marvell platform.
344
345           If you have a controller with this interface, say Y here.
346
347           If unsure, say N.
348
349 config MMC_SDHCI_PIC32
350         bool "Microchip PIC32 on-chip SDHCI support"
351         depends on DM_MMC && MACH_PIC32
352         depends on MMC_SDHCI
353         help
354           Support for Microchip PIC32 SDHCI controller.
355
356 config MMC_SDHCI_ROCKCHIP
357         bool "Arasan SDHCI controller for Rockchip support"
358         depends on ARCH_ROCKCHIP
359         depends on DM_MMC && BLK
360         depends on MMC_SDHCI
361         help
362           Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
363
364 config MMC_SDHCI_S5P
365         bool "SDHCI support on Samsung S5P SoC"
366         depends on MMC_SDHCI
367         help
368           This selects the Secure Digital Host Controller Interface (SDHCI)
369           on Samsung S5P SoCs.
370
371           If you have a controller with this interface, say Y here.
372
373           If unsure, say N.
374
375 config MMC_SDHCI_SPEAR
376         bool "SDHCI support on ST SPEAr platform"
377         depends on MMC_SDHCI
378         help
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
381           of SoC
382
383           If you have a controller with this interface, say Y here.
384
385           If unsure, say N.
386
387 config MMC_SDHCI_STI
388         bool "SDHCI support for STMicroelectronics SoC"
389         depends on MMC_SDHCI && OF_CONTROL
390         help
391           This selects the Secure Digital Host Controller Interface (SDHCI)
392           on STMicroelectronics STiH410 SoC.
393
394 config MMC_SDHCI_XENON
395         bool "SDHCI support for the Xenon SDHCI controller"
396         depends on MMC_SDHCI && DM_MMC && OF_CONTROL
397         help
398           Support for Xenon SDHCI host controller on Marvell Armada 3700
399           7k/8k ARM SoCs platforms
400
401           If you have a controller with this interface, say Y here.
402
403           If unsure, say N.
404
405 config MMC_SDHCI_TANGIER
406         bool "Tangier SDHCI controller support"
407         depends on DM_MMC && BLK
408         depends on MMC_SDHCI
409         help
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.
413
414           If you're using an Intel Tangier SoC (available on Intel
415           Edison board), say Y here.
416
417           If unsure, say N.
418
419 config MMC_SDHCI_TEGRA
420         bool "SDHCI platform support for the Tegra SD/MMC Controller"
421         depends on TEGRA
422         default y
423         help
424           This selects the Tegra SD/MMC controller. If you have a Tegra
425           platform with SD or MMC devices, say Y here.
426
427           If unsure, say N.
428
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
433         depends on MMC_SDHCI
434         help
435           Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
436
437 config MMC_SUNXI
438         bool "Allwinner sunxi SD/MMC Host Controller support"
439         depends on ARCH_SUNXI && !UART0_PORT_F
440         default y
441         help
442           This selects support for the SD/MMC Host Controller on
443           Allwinner sunxi SoCs.
444
445 config MMC_SUNXI_HAS_NEW_MODE
446         bool
447         depends on MMC_SUNXI
448
449 config GENERIC_ATMEL_MCI
450         bool "Atmel Multimedia Card Interface support"
451         depends on DM_MMC && BLK && ARCH_AT91
452         help
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
456           and CE-ATA V1.1.
457
458 config STM32_SDMMC2
459         bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
460         depends on DM_MMC && BLK && OF_CONTROL
461         help
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,
464           say Y or M here.
465
466 config MMC_NDS32
467         bool "Andestech SD/MMC controller support"
468         depends on DM_MMC && OF_CONTROL && BLK && FTSDC010
469         help
470           This enables support for the Andestech SD/MMM controller, which is
471           based on Faraday IP.
472
473 config FTSDC010
474         bool "Ftsdc010 SD/MMC controller Support"
475         help
476           This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
477
478 endif
479
480 config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
481         bool "Disable external clock loopback"
482         depends on MMC_SDHCI_TEGRA && TEGRA124
483         help
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.
487
488           TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
489           approach once proper kernel integration made it mainline.
490
491 endmenu
492
493 config SYS_FSL_ERRATUM_ESDHC111
494         bool
495
496 config SYS_FSL_ERRATUM_ESDHC13
497         bool
498
499 config SYS_FSL_ERRATUM_ESDHC135
500         bool
501
502 config SYS_FSL_ERRATUM_ESDHC_A001
503         bool