1menu "MMC Host controller Support"
2
3config MMC
4	bool "MMC/SD/SDIO card support"
5	default ARM || PPC || SANDBOX
6	select HAVE_BLOCK_DEVICE
7	help
8	  This selects MultiMediaCard, Secure Digital and Secure
9	  Digital I/O support.
10
11	  If you want MMC/SD/SDIO support, you should say Y here and
12	  also to your specific host controller driver.
13
14config MMC_WRITE
15	bool "support for MMC/SD write operations"
16	depends on MMC
17	default y
18	help
19	  Enable write access to MMC and SD Cards
20
21config MMC_BROKEN_CD
22	bool "Poll for broken card detection case"
23	help
24	  If card  detection feature is broken, just poll to detect.
25
26config DM_MMC
27	bool "Enable MMC controllers using Driver Model"
28	depends on DM
29	help
30	  This enables the MultiMediaCard (MMC) uclass which supports MMC and
31	  Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
32	  and non-removable (e.g. eMMC chip) devices are supported. These
33	  appear as block devices in U-Boot and can support filesystems such
34	  as EXT4 and FAT.
35
36config SPL_DM_MMC
37	bool "Enable MMC controllers using Driver Model in SPL"
38	depends on SPL_DM && DM_MMC
39	default y
40	help
41	  This enables the MultiMediaCard (MMC) uclass which supports MMC and
42	  Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
43	  and non-removable (e.g. eMMC chip) devices are supported. These
44	  appear as block devices in U-Boot and can support filesystems such
45	  as EXT4 and FAT.
46
47if MMC
48
49config MMC_SPI
50	bool "Support for SPI-based MMC controller"
51	depends on DM_MMC && DM_SPI
52	help
53	  This selects SPI-based MMC controllers.
54	  If you have an MMC controller on a SPI bus, say Y here.
55
56	  If unsure, say N.
57
58config MMC_SPI_CRC_ON
59	bool "Support CRC for SPI-based MMC controller"
60	depends on MMC_SPI
61	default y
62	help
63	  This enables CRC for SPI-based MMC controllers.
64
65	  If unsure, say N.
66
67config ARM_PL180_MMCI
68	bool "ARM AMBA Multimedia Card Interface and compatible support"
69	depends on DM_MMC && OF_CONTROL
70	help
71	  This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
72	  Interface (PL180, PL181 and compatible) support.
73	  If you have an ARM(R) platform with a Multimedia Card slot,
74	  say Y or M here.
75
76config MMC_QUIRKS
77	bool "Enable quirks"
78	default y
79	help
80	  Some cards and hosts may sometimes behave unexpectedly (quirks).
81	  This option enable workarounds to handle those quirks. Some of them
82	  are enabled by default, other may require additional flags or are
83	  enabled by the host driver.
84
85config MMC_HW_PARTITIONING
86	bool "Support for HW partitioning command(eMMC)"
87	default y
88	help
89	  This adds a command and an API to do hardware partitioning on eMMC
90	  devices.
91
92config SUPPORT_EMMC_RPMB
93	bool "Support eMMC replay protected memory block (RPMB)"
94	imply CMD_MMC_RPMB
95	help
96	  Enable support for reading, writing and programming the
97	  key for the Replay Protection Memory Block partition in eMMC.
98
99config SUPPORT_EMMC_BOOT
100	bool "Support some additional features of the eMMC boot partitions"
101	help
102	  Enable support for eMMC boot partitions. This also enables
103	  extensions within the mmc command.
104
105config MMC_IO_VOLTAGE
106	bool "Support IO voltage configuration"
107	help
108	  IO voltage configuration allows selecting the voltage level of the IO
109	  lines (not the level of main supply). This is required for UHS
110	  support. For eMMC this not mandatory, but not enabling this option may
111	  prevent the driver of using the faster modes.
112
113config SPL_MMC_IO_VOLTAGE
114	bool "Support IO voltage configuration in SPL"
115	default n
116	help
117	  IO voltage configuration allows selecting the voltage level of the IO
118	  lines (not the level of main supply). This is required for UHS
119	  support. For eMMC this not mandatory, but not enabling this option may
120	  prevent the driver of using the faster modes.
121
122config MMC_UHS_SUPPORT
123	bool "enable UHS support"
124	depends on MMC_IO_VOLTAGE
125	help
126	  The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
127	  cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
128	  frequency can go up to 208MHz (SDR104)
129
130config SPL_MMC_UHS_SUPPORT
131	bool "enable UHS support in SPL"
132	depends on SPL_MMC_IO_VOLTAGE
133	help
134	  The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
135	  cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
136	  frequency can go up to 208MHz (SDR104)
137
138config MMC_HS400_ES_SUPPORT
139	bool "enable HS400 Enhanced Strobe support"
140	help
141	  The HS400 Enhanced Strobe mode is support by some eMMC. The bus
142	  frequency is up to 200MHz. This mode does not tune the IO.
143
144config SPL_MMC_HS400_ES_SUPPORT
145	bool "enable HS400 Enhanced Strobe support in SPL"
146	help
147	  The HS400 Enhanced Strobe mode is support by some eMMC. The bus
148	  frequency is up to 200MHz. This mode does not tune the IO.
149
150config MMC_HS400_SUPPORT
151	bool "enable HS400 support"
152	select MMC_HS200_SUPPORT
153	help
154	  The HS400 mode is support by some eMMC. The bus frequency is up to
155	  200MHz. This mode requires tuning the IO.
156
157config SPL_MMC_HS400_SUPPORT
158	bool "enable HS400 support in SPL"
159	select SPL_MMC_HS200_SUPPORT
160	help
161	  The HS400 mode is support by some eMMC. The bus frequency is up to
162	  200MHz. This mode requires tuning the IO.
163
164config MMC_HS200_SUPPORT
165	bool "enable HS200 support"
166	help
167	  The HS200 mode is support by some eMMC. The bus frequency is up to
168	  200MHz. This mode requires tuning the IO.
169
170config SPL_MMC_HS200_SUPPORT
171	bool "enable HS200 support in SPL"
172	help
173	  The HS200 mode is support by some eMMC. The bus frequency is up to
174	  200MHz. This mode requires tuning the IO.
175
176config MMC_VERBOSE
177	bool "Output more information about the MMC"
178	default y
179	help
180	  Enable the output of more information about the card such as the
181	  operating mode.
182
183config MMC_TRACE
184	bool "MMC debugging"
185	default n
186	help
187	  This is an option for use by developer. Enable MMC core debugging.
188
189	  If you need to see the MMC core message, say Y.
190
191config MMC_DAVINCI
192	bool "TI DAVINCI Multimedia Card Interface support"
193	depends on ARCH_DAVINCI
194	default y
195	help
196	  This selects the TI DAVINCI Multimedia card Interface.
197	  If you have an DAVINCI board with a Multimedia Card slot,
198	  say Y here.  If unsure, say N.
199
200config MMC_DW
201	bool "Synopsys DesignWare Memory Card Interface"
202	select BOUNCE_BUFFER
203	help
204	  This selects support for the Synopsys DesignWare Mobile Storage IP
205	  block, this provides host support for SD and MMC interfaces, in both
206	  PIO, internal DMA mode and external DMA mode.
207
208config MMC_DW_CORTINA
209	bool "Cortina specific extensions for Synopsys DW Memory Card Interface"
210	depends on DM_MMC
211	depends on MMC_DW
212	depends on BLK
213	default n
214	help
215	  This selects support for Cortina SoC specific extensions to the
216	  Synopsys DesignWare Memory Card Interface driver. Select this option
217	  for platforms based on Cortina CAxxxx Soc's.
218
219config MMC_DW_EXYNOS
220	bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
221	depends on ARCH_EXYNOS
222	depends on MMC_DW
223	default y
224	help
225	  This selects support for Samsung Exynos SoC specific extensions to the
226	  Synopsys DesignWare Memory Card Interface driver. Select this option
227	  for platforms based on Exynos4 and Exynos5 SoC's.
228
229config MMC_DW_K3
230	bool "K3 specific extensions for Synopsys DW Memory Card Interface"
231	depends on MMC_DW
232	help
233	  This selects support for Hisilicon K3 SoC specific extensions to the
234	  Synopsys DesignWare Memory Card Interface driver. Select this option
235	  for platforms based on Hisilicon K3 SoC's.
236
237config MMC_DW_ROCKCHIP
238	bool "Rockchip SD/MMC controller support"
239	depends on DM_MMC && OF_CONTROL
240	depends on MMC_DW
241	help
242	  This enables support for the Rockchip SD/MMM controller, which is
243	  based on Designware IP. The device is compatible with at least
244	  SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
245	  as removeable SD and micro-SD cards.
246
247config MMC_DW_SOCFPGA
248	bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
249	depends on ARCH_SOCFPGA
250	depends on MMC_DW
251	default y
252	help
253	  This selects support for Altera SOCFPGA specific extensions to the
254	  Synopsys DesignWare Memory Card Interface driver. Select this option
255	  for platforms based on Altera SOCFPGA.
256
257config MMC_DW_SNPS
258	bool "Extensions for DW Memory Card Interface used in Synopsys ARC devboards"
259	depends on MMC_DW
260	depends on DM_MMC
261	depends on OF_CONTROL
262	depends on CLK
263	help
264	  This selects support for Synopsys DesignWare Memory Card Interface driver
265	  extensions used in various Synopsys ARC devboards.
266
267config MMC_MESON_GX
268	bool "Meson GX EMMC controller support"
269	depends on DM_MMC && BLK && ARCH_MESON
270	help
271	 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
272
273config MMC_MXC
274	bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
275	help
276	  This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
277	  Multimedia Card Interface. If you have an i.MX or MPC512x platform
278	  with a Multimedia Card slot, say Y here.
279
280	  If unsure, say N.
281
282config MMC_MXS
283	bool "Freescale MXS Multimedia Card Interface support"
284	depends on MX23 || MX28 || MX6 || MX7
285	select BOUNCE_BUFFER
286	select APBH_DMA
287	select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
288	select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
289	help
290	  This selects the Freescale SSP MMC controller found on MXS based
291	  platforms like mx23/28.
292
293	  If unsure, say N.
294
295config MMC_PCI
296	bool "Support for MMC controllers on PCI"
297	help
298	  This selects PCI-based MMC controllers.
299	  If you have an MMC controller on a PCI bus, say Y here.
300
301	  If unsure, say N.
302
303config MMC_OMAP_HS
304	bool "TI OMAP High Speed Multimedia Card Interface support"
305	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
306	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
307	help
308	  This selects the TI OMAP High Speed Multimedia card Interface.
309	  If you have an omap2plus board with a Multimedia Card slot,
310	  say Y here.
311
312	  If unsure, say N.
313
314config MMC_OMAP_HS_ADMA
315	bool "ADMA support for OMAP HS MMC"
316	depends on MMC_OMAP_HS && !OMAP34XX
317	default y if !AM33XX
318	help
319	  This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA
320	  controller). If supported by the hardware, selecting this option will
321	  increase performances.
322
323config MMC_OMAP36XX_PINS
324	bool "Enable MMC1 on OMAP36xx/37xx"
325	depends on OMAP34XX && MMC_OMAP_HS
326	help
327	  This enables extended-drain in the MMC/SD/SDIO1I/O and
328	  GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
329	  specific to the OMAP36xx/37xx using MMC1
330
331	  If you have a controller with this interface, say Y here.
332
333	  If unsure, say N.
334
335config SH_SDHI
336	bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
337	depends on ARCH_RMOBILE
338	help
339	  Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
340
341config SH_MMCIF
342	bool "SuperH/Renesas ARM SoCs on-chip MMCIF host controller support"
343	depends on ARCH_RMOBILE || SH
344	help
345	  Support for the on-chip MMCIF host controller on SuperH/Renesas ARM SoCs platform
346
347config MMC_UNIPHIER
348	bool "UniPhier SD/MMC Host Controller support"
349	depends on ARCH_UNIPHIER
350	depends on BLK && DM_MMC
351	depends on OF_CONTROL
352	help
353	  This selects support for the Matsushita SD/MMC Host Controller on
354	  SocioNext UniPhier SoCs.
355
356config RENESAS_SDHI
357	bool "Renesas R-Car SD/MMC Host Controller support"
358	depends on ARCH_RMOBILE
359	depends on BLK && DM_MMC
360	depends on OF_CONTROL
361	select BOUNCE_BUFFER
362	help
363	  This selects support for the Matsushita SD/MMC Host Controller on
364	  Renesas R-Car SoCs.
365
366config MMC_BCM2835
367	bool "BCM2835 family custom SD/MMC Host Controller support"
368	depends on ARCH_BCM283X
369	depends on BLK && DM_MMC
370	depends on OF_CONTROL
371	default y
372	help
373	  This selects support for the custom SD host controller in the BCM2835
374	  family of devices.
375
376	  If you have a BCM2835 platform with SD or MMC devices, say Y here.
377
378	  If unsure, say N.
379
380config JZ47XX_MMC
381	bool "Ingenic JZ47xx SD/MMC Host Controller support"
382	depends on ARCH_JZ47XX
383	help
384	  This selects support for the SD Card Controller on Ingenic JZ47xx SoCs.
385
386config MMC_SANDBOX
387	bool "Sandbox MMC support"
388	depends on SANDBOX
389	depends on BLK && DM_MMC && OF_CONTROL
390	help
391	  This select a dummy sandbox MMC driver. At present this does nothing
392	  other than allow sandbox to be build with MMC support. This
393	  improves build coverage for sandbox and makes it easier to detect
394	  MMC build errors with sandbox.
395
396config MMC_SDHCI
397	bool "Secure Digital Host Controller Interface support"
398	help
399	  This selects the generic Secure Digital Host Controller Interface.
400	  It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
401	  and Toshiba(R). Most controllers found in laptops are of this type.
402
403	  If you have a controller with this interface, say Y here.
404
405	  If unsure, say N.
406
407config MMC_SDHCI_IO_ACCESSORS
408	bool
409	depends on MMC_SDHCI
410	help
411	  This is silent Kconfig symbol that is selected by the drivers that
412	  need to overwrite SDHCI IO memory accessors.
413
414config MMC_SDHCI_SDMA
415	bool "Support SDHCI SDMA"
416	depends on MMC_SDHCI
417	help
418	  This enables support for the SDMA (Single Operation DMA) defined
419	  in the SD Host Controller Standard Specification Version 1.00 .
420
421config MMC_SDHCI_ADMA
422	bool "Support SDHCI ADMA2"
423	depends on MMC_SDHCI
424	help
425	  This enables support for the ADMA (Advanced DMA) defined
426	  in the SD Host Controller Standard Specification Version 3.00
427
428config SPL_MMC_SDHCI_ADMA
429	bool "Support SDHCI ADMA2 in SPL"
430	depends on MMC_SDHCI
431	help
432	  This enables support for the ADMA (Advanced DMA) defined
433	  in the SD Host Controller Standard Specification Version 3.00 in SPL.
434
435config MMC_SDHCI_ASPEED
436	bool "Aspeed SDHCI controller"
437	depends on ARCH_ASPEED
438	depends on DM_MMC
439	depends on MMC_SDHCI
440	help
441	  Enables support for the Aspeed SDHCI 2.0 controller present on Aspeed
442	  SoCs. This device is compatible with SD 3.0 and/or MMC 4.3
443	  specifications. On the AST2600, the device is also compatible with
444	  MMC 5.1 and eMMC 3.0.
445
446config MMC_SDHCI_ATMEL
447	bool "Atmel SDHCI controller support"
448	depends on ARCH_AT91
449	depends on DM_MMC && BLK && ARCH_AT91
450	depends on MMC_SDHCI
451	help
452	  This enables support for the Atmel SDHCI controller, which supports
453	  the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
454	  Memory Card Specification V3.0, and the SDIO V3.0 specification.
455	  It is compliant with the SD Host Controller Standard V3.0
456	  specification.
457
458config MMC_SDHCI_BCM2835
459	tristate "SDHCI support for the BCM2835 SD/MMC Controller"
460	depends on ARCH_BCM283X
461	depends on MMC_SDHCI
462	select MMC_SDHCI_IO_ACCESSORS
463	help
464	  This selects the BCM2835 SD/MMC controller.
465
466	  If you have a BCM2835 platform with SD or MMC devices,
467	  say Y here.
468
469	  If unsure, say N.
470
471config MMC_SDHCI_BCMSTB
472	tristate "SDHCI support for the BCMSTB SD/MMC Controller"
473	depends on MMC_SDHCI
474	help
475	  This selects the Broadcom set-top box SD/MMC controller.
476
477	  If you have a BCMSTB platform with SD or MMC devices,
478	  say Y here.
479
480	  If unsure, say N.
481
482config MMC_SDHCI_CADENCE
483	bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
484	depends on BLK && DM_MMC
485	depends on MMC_SDHCI
486	depends on OF_CONTROL
487	help
488	  This selects the Cadence SD/SDIO/eMMC driver.
489
490	  If you have a controller with this interface, say Y here.
491
492	  If unsure, say N.
493
494config MMC_SDHCI_AM654
495	bool "SDHCI Controller on TI's Am654 devices"
496	depends on ARCH_K3
497	depends on MMC_SDHCI
498	depends on DM_MMC && OF_CONTROL && BLK
499	depends on REGMAP
500	help
501	  Support for Secure Digital Host Controller Interface (SDHCI)
502	  controllers present on TI's AM654 SOCs.
503
504config MMC_SDHCI_IPROC
505	bool "SDHCI support for the iProc SD/MMC Controller"
506	depends on MMC_SDHCI
507	help
508	  This selects the iProc SD/MMC controller.
509
510	  If you have a Broadcom IPROC platform with SD or MMC devices,
511	  say Y or M here.
512
513	  If unsure, say N.
514
515config MMC_SDHCI_KONA
516	bool "SDHCI support on Broadcom KONA platform"
517	depends on MMC_SDHCI
518	help
519	  This selects the Broadcom Kona Secure Digital Host Controller
520	  Interface(SDHCI) support.
521	  This is used in Broadcom mobile SoCs.
522
523	  If you have a controller with this interface, say Y here.
524
525config MMC_SDHCI_MSM
526	bool "Qualcomm SDHCI controller"
527	depends on BLK && DM_MMC
528	depends on MMC_SDHCI
529	help
530	  Enables support for SDHCI 2.0 controller present on some Qualcomm
531          Snapdragon devices. This device is compatible with eMMC v4.5 and
532          SD 3.0 specifications. Both SD and eMMC devices are supported.
533	  Card-detect gpios are not supported.
534
535config MMC_SDHCI_MV
536	bool "SDHCI support on Marvell platform"
537	depends on ARCH_MVEBU
538	depends on MMC_SDHCI
539	help
540	  This selects the Secure Digital Host Controller Interface on
541	  Marvell platform.
542
543	  If you have a controller with this interface, say Y here.
544
545	  If unsure, say N.
546
547config MMC_SDHCI_PIC32
548	bool "Microchip PIC32 on-chip SDHCI support"
549	depends on DM_MMC && MACH_PIC32
550	depends on MMC_SDHCI
551	help
552	  Support for Microchip PIC32 SDHCI controller.
553
554config MMC_SDHCI_ROCKCHIP
555	bool "Arasan SDHCI controller for Rockchip support"
556	depends on ARCH_ROCKCHIP
557	depends on DM_MMC && BLK
558	depends on MMC_SDHCI
559	help
560	  Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
561
562config MMC_SDHCI_S5P
563	bool "SDHCI support on Samsung S5P SoC"
564	depends on MMC_SDHCI
565	help
566	  This selects the Secure Digital Host Controller Interface (SDHCI)
567	  on Samsung S5P SoCs.
568
569	  If you have a controller with this interface, say Y here.
570
571	  If unsure, say N.
572
573config MMC_SDHCI_SPEAR
574	bool "SDHCI support on ST SPEAr platform"
575	depends on MMC_SDHCI
576	help
577	  This selects the Secure Digital Host Controller Interface (SDHCI)
578	  often referrered to as the HSMMC block in some of the ST SPEAR range
579	  of SoC
580
581	  If you have a controller with this interface, say Y here.
582
583	  If unsure, say N.
584
585config MMC_SDHCI_STI
586	bool "SDHCI support for STMicroelectronics SoC"
587	depends on MMC_SDHCI && OF_CONTROL
588	help
589	  This selects the Secure Digital Host Controller Interface (SDHCI)
590	  on STMicroelectronics STiH410 SoC.
591
592config MMC_SDHCI_XENON
593	bool "SDHCI support for the Xenon SDHCI controller"
594	depends on MMC_SDHCI && DM_MMC && OF_CONTROL
595	help
596	  Support for Xenon SDHCI host controller on Marvell Armada 3700
597	  7k/8k ARM SoCs platforms
598
599	  If you have a controller with this interface, say Y here.
600
601	  If unsure, say N.
602
603config MMC_SDHCI_TANGIER
604	bool "Tangier SDHCI controller support"
605	depends on DM_MMC && BLK
606	depends on MMC_SDHCI
607	help
608	  This selects support for SDHCI controller on Tanginer
609	  SoC. Note that this controller does not sit on PCI bus and,
610	  hence, cannot be enumerated by standard PCI means.
611
612	  If you're using an Intel Tangier SoC (available on Intel
613	  Edison board), say Y here.
614
615	  If unsure, say N.
616
617config MMC_SDHCI_TEGRA
618	bool "SDHCI platform support for the Tegra SD/MMC Controller"
619	depends on ARCH_TEGRA
620	select BOUNCE_BUFFER
621	default y
622	help
623	  This selects the Tegra SD/MMC controller. If you have a Tegra
624	  platform with SD or MMC devices, say Y here.
625
626	  If unsure, say N.
627
628config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
629	bool "Disable external clock loopback"
630	depends on MMC_SDHCI_TEGRA && TEGRA124
631	help
632	  Disable the external clock loopback and use the internal one on SDMMC3
633	  as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
634	  being set to 0xfffd according to the TRM.
635
636	  TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
637	  approach once proper kernel integration made it mainline.
638
639config MMC_SDHCI_ZYNQ
640	bool "Arasan SDHCI controller support"
641	depends on ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL
642	depends on DM_MMC && OF_CONTROL && BLK
643	depends on MMC_SDHCI
644	help
645	  Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
646
647config ZYNQ_SDHCI_MAX_FREQ
648	int "Set the maximum frequency of the controller"
649	depends on MMC_SDHCI_ZYNQ
650	help
651	  Set the maximum frequency of the controller.
652
653config ZYNQ_SDHCI_MIN_FREQ
654	int "Set the minimum frequency of the controller"
655	depends on MMC_SDHCI_ZYNQ
656	default 0
657	help
658	  Set the minimum frequency of the controller.
659
660config ZYNQ_HISPD_BROKEN
661	bool "High speed broken for Zynq SDHCI controller"
662	depends on MMC_SDHCI_ZYNQ
663	help
664	  Set if high speed mode is broken.
665
666config MMC_SUNXI
667	bool "Allwinner sunxi SD/MMC Host Controller support"
668	depends on ARCH_SUNXI && !UART0_PORT_F
669	default y
670	help
671	  This selects support for the SD/MMC Host Controller on
672	  Allwinner sunxi SoCs.
673
674config MMC_SUNXI_HAS_NEW_MODE
675	bool
676	depends on MMC_SUNXI
677
678config MMC_SUNXI_HAS_MODE_SWITCH
679	bool
680	depends on MMC_SUNXI
681
682config GENERIC_ATMEL_MCI
683	bool "Atmel Multimedia Card Interface support"
684	depends on DM_MMC && BLK && ARCH_AT91
685	help
686	  This enables support for Atmel High Speed Multimedia Card Interface
687	  (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
688	  the SD Memory Card Specification V2.0, the SDIO V2.0 specification
689	  and CE-ATA V1.1.
690
691config STM32_SDMMC2
692	bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
693	depends on DM_MMC && BLK && OF_CONTROL
694	help
695	  This selects support for the SD/MMC controller on STM32H7 SoCs.
696	  If you have a board based on such a SoC and with a SD/MMC slot,
697	  say Y or M here.
698
699config FTSDC010
700	bool "Ftsdc010 SD/MMC controller Support"
701	help
702	  This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
703
704config FTSDC010_SDIO
705	bool "Support ftsdc010 sdio"
706	default n
707	depends on FTSDC010
708	help
709		This can enable ftsdc010 sdio function.
710
711config MMC_MTK
712	bool "MediaTek SD/MMC Card Interface support"
713	depends on ARCH_MEDIATEK || ARCH_MTMIPS
714	depends on BLK && DM_MMC
715	depends on OF_CONTROL
716	help
717	  This selects the MediaTek(R) Secure digital and Multimedia card Interface.
718	  If you have a machine with a integrated SD/MMC card reader, say Y or M here.
719	  This is needed if support for any SD/SDIO/MMC devices is required.
720	  If unsure, say N.
721
722endif
723
724config FSL_ESDHC
725	bool "Freescale/NXP eSDHC controller support"
726	help
727	  This selects support for the eSDHC (Enhanced Secure Digital Host
728	  Controller) found on numerous Freescale/NXP SoCs.
729
730config FSL_ESDHC_33V_IO_RELIABILITY_WORKAROUND
731	bool "enable eSDHC workaround for 3.3v IO reliability issue"
732	depends on FSL_ESDHC && DM_MMC
733	default n
734	help
735	  When eSDHC operates at 3.3v, damage can accumulate in an internal
736	  level shifter at a higher than expected rate. The faster the interface
737	  runs, the more damage accumulates. This issue now is found on LX2160A
738	  eSDHC1 for only SD card. The hardware workaround is recommended to use
739	  an on-board level shifter that is 1.8v on SoC side and 3.3v on SD card
740	  side. For boards without hardware workaround, this option could be
741	  enabled, ensuring 1.8v IO voltage and disabling eSDHC if no card.
742	  This option assumes no hotplug, and u-boot has to make all the way to
743	  to linux to use 1.8v UHS-I speed mode if has card.
744
745config FSL_ESDHC_IMX
746	bool "Freescale/NXP i.MX eSDHC controller support"
747	help
748	  This selects support for the i.MX eSDHC (Enhanced Secure Digital Host
749	  Controller) found on numerous Freescale/NXP SoCs.
750
751config FSL_USDHC
752	bool "Freescale/NXP i.MX uSDHC controller support"
753	depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMXRT || TARGET_S32V234EVB
754	select FSL_ESDHC_IMX
755	help
756	  This enables the Ultra Secured Digital Host Controller enhancements
757
758endmenu
759
760config SYS_FSL_ERRATUM_ESDHC111
761	bool
762
763config SYS_FSL_ERRATUM_ESDHC13
764	bool
765
766config SYS_FSL_ERRATUM_ESDHC135
767	bool
768
769config SYS_FSL_ERRATUM_ESDHC_A001
770	bool
771