xref: /openbmc/u-boot/drivers/mmc/Kconfig (revision 4e97e257)
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 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
45config SPL_MMC_TINY
46	bool "Tiny MMC framework in SPL"
47	help
48	  Enable MMC framework tinification support. This option is useful if
49	  if your SPL is extremely size constrained. Heed the warning, enable
50	  this option if and only if you know exactly what you are doing, if
51	  you are reading this help text, you most likely have no idea :-)
52
53	  The MMC framework is reduced to bare minimum to be useful. No malloc
54	  support is needed for the MMC framework operation with this option
55	  enabled. The framework supports exactly one MMC device and exactly
56	  one MMC driver. The MMC driver can be adjusted to avoid any malloc
57	  operations too, which can remove the need for malloc support in SPL
58	  and thus further reduce footprint.
59
60config MMC_DAVINCI
61	bool "TI DAVINCI Multimedia Card Interface support"
62	depends on ARCH_DAVINCI
63	default y
64	help
65	  This selects the TI DAVINCI Multimedia card Interface.
66	  If you have an DAVINCI board with a Multimedia Card slot,
67	  say Y here.  If unsure, say N.
68
69config MMC_DW
70	bool "Synopsys DesignWare Memory Card Interface"
71	help
72	  This selects support for the Synopsys DesignWare Mobile Storage IP
73	  block, this provides host support for SD and MMC interfaces, in both
74	  PIO, internal DMA mode and external DMA mode.
75
76config MMC_DW_EXYNOS
77	bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
78	depends on ARCH_EXYNOS
79	depends on MMC_DW
80	default y
81	help
82	  This selects support for Samsung Exynos SoC specific extensions to the
83	  Synopsys DesignWare Memory Card Interface driver. Select this option
84	  for platforms based on Exynos4 and Exynos5 SoC's.
85
86config MMC_DW_K3
87	bool "K3 specific extensions for Synopsys DW Memory Card Interface"
88	depends on MMC_DW
89	help
90	  This selects support for Hisilicon K3 SoC specific extensions to the
91	  Synopsys DesignWare Memory Card Interface driver. Select this option
92	  for platforms based on Hisilicon K3 SoC's.
93
94config MMC_DW_ROCKCHIP
95	bool "Rockchip SD/MMC controller support"
96	depends on DM_MMC && OF_CONTROL
97	depends on MMC_DW
98	help
99	  This enables support for the Rockchip SD/MMM controller, which is
100	  based on Designware IP. The device is compatible with at least
101	  SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
102	  as removeable SD and micro-SD cards.
103
104config MMC_DW_SOCFPGA
105	bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
106	depends on ARCH_SOCFPGA
107	depends on MMC_DW
108	default y
109	help
110	  This selects support for Altera SOCFPGA specific extensions to the
111	  Synopsys DesignWare Memory Card Interface driver. Select this option
112	  for platforms based on Altera SOCFPGA.
113
114config MMC_MESON_GX
115	bool "Meson GX EMMC controller support"
116	depends on DM_MMC && BLK && ARCH_MESON
117	help
118	 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
119
120config MMC_MXC
121	bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
122	help
123	  This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
124	  Multimedia Card Interface. If you have an i.MX or MPC512x platform
125	  with a Multimedia Card slot, say Y here.
126
127	  If unsure, say N.
128
129config MMC_MXS
130	bool "Freescale MXS Multimedia Card Interface support"
131	help
132	  This selects the Freescale SSP MMC controller found on MXS based
133	  platforms like mx23/28.
134
135	  If unsure, say N.
136
137config MMC_PCI
138	bool "Support for MMC controllers on PCI"
139	help
140	  This selects PCI-based MMC controllers.
141	  If you have an MMC controller on a PCI bus, say Y here.
142
143	  If unsure, say N.
144
145config MMC_OMAP_HS
146	bool "TI OMAP High Speed Multimedia Card Interface support"
147	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
148	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
149	help
150	  This selects the TI OMAP High Speed Multimedia card Interface.
151	  If you have an omap2plus board with a Multimedia Card slot,
152	  say Y here.
153
154	  If unsure, say N.
155
156config MMC_OMAP36XX_PINS
157	bool "Enable MMC1 on OMAP36xx/37xx"
158	depends on OMAP34XX && MMC_OMAP_HS
159	help
160	  This enables extended-drain in the MMC/SD/SDIO1I/O and
161	  GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
162	  specific to the OMAP36xx/37xx using MMC1
163
164	  If you have a controller with this interface, say Y here.
165
166	  If unsure, say N.
167
168config SH_SDHI
169	bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
170	depends on ARCH_RMOBILE
171	help
172	  Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
173
174config MMC_UNIPHIER
175	bool "UniPhier/RCar SD/MMC Host Controller support"
176	depends on ARCH_UNIPHIER || ARCH_RMOBILE
177	depends on BLK && DM_MMC
178	depends on OF_CONTROL
179	help
180	  This selects support for the Matsushita SD/MMC Host Controller on
181	  SocioNext UniPhier and Renesas RCar SoCs.
182
183config MMC_SANDBOX
184	bool "Sandbox MMC support"
185	depends on SANDBOX
186	depends on BLK && DM_MMC && OF_CONTROL
187	help
188	  This select a dummy sandbox MMC driver. At present this does nothing
189	  other than allow sandbox to be build with MMC support. This
190	  improves build coverage for sandbox and makes it easier to detect
191	  MMC build errors with sandbox.
192
193config MMC_SDHCI
194	bool "Secure Digital Host Controller Interface support"
195	help
196	  This selects the generic Secure Digital Host Controller Interface.
197	  It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
198	  and Toshiba(R). Most controllers found in laptops are of this type.
199
200	  If you have a controller with this interface, say Y here.
201
202	  If unsure, say N.
203
204config MMC_SDHCI_IO_ACCESSORS
205	bool
206	depends on MMC_SDHCI
207	help
208	  This is silent Kconfig symbol that is selected by the drivers that
209	  need to overwrite SDHCI IO memory accessors.
210
211config MMC_SDHCI_SDMA
212	bool "Support SDHCI SDMA"
213	depends on MMC_SDHCI
214	help
215	  This enables support for the SDMA (Single Operation DMA) defined
216	  in the SD Host Controller Standard Specification Version 1.00 .
217
218config MMC_SDHCI_ATMEL
219	bool "Atmel SDHCI controller support"
220	depends on ARCH_AT91
221	depends on DM_MMC && BLK && ARCH_AT91
222	depends on MMC_SDHCI
223	help
224	  This enables support for the Atmel SDHCI controller, which supports
225	  the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
226	  Memory Card Specification V3.0, and the SDIO V3.0 specification.
227	  It is compliant with the SD Host Controller Standard V3.0
228	  specification.
229
230config MMC_SDHCI_BCM2835
231	tristate "SDHCI support for the BCM2835 SD/MMC Controller"
232	depends on ARCH_BCM283X
233	depends on MMC_SDHCI
234	select MMC_SDHCI_IO_ACCESSORS
235	help
236	  This selects the BCM2835 SD/MMC controller.
237
238	  If you have a BCM2835 platform with SD or MMC devices,
239	  say Y here.
240
241	  If unsure, say N.
242
243config MMC_SDHCI_CADENCE
244	bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
245	depends on BLK && DM_MMC
246	depends on MMC_SDHCI
247	depends on OF_CONTROL
248	help
249	  This selects the Cadence SD/SDIO/eMMC driver.
250
251	  If you have a controller with this interface, say Y here.
252
253	  If unsure, say N.
254
255config MMC_SDHCI_KONA
256	bool "SDHCI support on Broadcom KONA platform"
257	depends on MMC_SDHCI
258	help
259	  This selects the Broadcom Kona Secure Digital Host Controller
260	  Interface(SDHCI) support.
261	  This is used in Broadcom mobile SoCs.
262
263	  If you have a controller with this interface, say Y here.
264
265config MMC_SDHCI_MSM
266	bool "Qualcomm SDHCI controller"
267	depends on BLK && DM_MMC
268	depends on MMC_SDHCI
269	help
270	  Enables support for SDHCI 2.0 controller present on some Qualcomm
271          Snapdragon devices. This device is compatible with eMMC v4.5 and
272          SD 3.0 specifications. Both SD and eMMC devices are supported.
273	  Card-detect gpios are not supported.
274
275config MMC_SDHCI_MV
276	bool "SDHCI support on Marvell platform"
277	depends on ARCH_MVEBU
278	depends on MMC_SDHCI
279	help
280	  This selects the Secure Digital Host Controller Interface on
281	  Marvell platform.
282
283	  If you have a controller with this interface, say Y here.
284
285	  If unsure, say N.
286
287config MMC_SDHCI_PIC32
288	bool "Microchip PIC32 on-chip SDHCI support"
289	depends on DM_MMC && MACH_PIC32
290	depends on MMC_SDHCI
291	help
292	  Support for Microchip PIC32 SDHCI controller.
293
294config MMC_SDHCI_ROCKCHIP
295	bool "Arasan SDHCI controller for Rockchip support"
296	depends on ARCH_ROCKCHIP
297	depends on DM_MMC && BLK
298	depends on MMC_SDHCI
299	help
300	  Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
301
302config MMC_SDHCI_S5P
303	bool "SDHCI support on Samsung S5P SoC"
304	depends on MMC_SDHCI
305	help
306	  This selects the Secure Digital Host Controller Interface (SDHCI)
307	  on Samsung S5P SoCs.
308
309	  If you have a controller with this interface, say Y here.
310
311	  If unsure, say N.
312
313config MMC_SDHCI_SPEAR
314	bool "SDHCI support on ST SPEAr platform"
315	depends on MMC_SDHCI
316	help
317	  This selects the Secure Digital Host Controller Interface (SDHCI)
318	  often referrered to as the HSMMC block in some of the ST SPEAR range
319	  of SoC
320
321	  If you have a controller with this interface, say Y here.
322
323	  If unsure, say N.
324
325config MMC_SDHCI_STI
326	bool "SDHCI support for STMicroelectronics SoC"
327	depends on MMC_SDHCI && OF_CONTROL
328	help
329	  This selects the Secure Digital Host Controller Interface (SDHCI)
330	  on STMicroelectronics STiH410 SoC.
331
332config MMC_SDHCI_XENON
333	bool "SDHCI support for the Xenon SDHCI controller"
334	depends on MMC_SDHCI && DM_MMC && OF_CONTROL
335	help
336	  Support for Xenon SDHCI host controller on Marvell Armada 3700
337	  7k/8k ARM SoCs platforms
338
339	  If you have a controller with this interface, say Y here.
340
341	  If unsure, say N.
342
343config MMC_SDHCI_TANGIER
344	bool "Tangier SDHCI controller support"
345	depends on DM_MMC && BLK
346	depends on MMC_SDHCI
347	help
348	  This selects support for SDHCI controller on Tanginer
349	  SoC. Note that this controller does not sit on PCI bus and,
350	  hence, cannot be enumerated by standard PCI means.
351
352	  If you're using an Intel Tangier SoC (available on Intel
353	  Edison board), say Y here.
354
355	  If unsure, say N.
356
357config MMC_SDHCI_TEGRA
358	bool "SDHCI platform support for the Tegra SD/MMC Controller"
359	depends on TEGRA
360	default y
361	help
362	  This selects the Tegra SD/MMC controller. If you have a Tegra
363	  platform with SD or MMC devices, say Y here.
364
365	  If unsure, say N.
366
367config MMC_SDHCI_ZYNQ
368	bool "Arasan SDHCI controller support"
369	depends on ARCH_ZYNQ || ARCH_ZYNQMP
370	depends on DM_MMC && OF_CONTROL && BLK
371	depends on MMC_SDHCI
372	help
373	  Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
374
375config MMC_SUNXI
376	bool "Allwinner sunxi SD/MMC Host Controller support"
377	depends on ARCH_SUNXI && !UART0_PORT_F
378	default y
379	help
380	  This selects support for the SD/MMC Host Controller on
381	  Allwinner sunxi SoCs.
382
383config MMC_SUNXI_HAS_NEW_MODE
384	bool
385	depends on MMC_SUNXI
386
387config GENERIC_ATMEL_MCI
388	bool "Atmel Multimedia Card Interface support"
389	depends on DM_MMC && BLK && ARCH_AT91
390	help
391	  This enables support for Atmel High Speed Multimedia Card Interface
392	  (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
393	  the SD Memory Card Specification V2.0, the SDIO V2.0 specification
394	  and CE-ATA V1.1.
395
396config STM32_SDMMC2
397	bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
398	depends on DM_MMC && BLK && OF_CONTROL
399	help
400	  This selects support for the SD/MMC controller on STM32H7 SoCs.
401	  If you have a board based on such a SoC and with a SD/MMC slot,
402	  say Y or M here.
403
404config MMC_NDS32
405	bool "Andestech SD/MMC controller support"
406	depends on DM_MMC && OF_CONTROL && BLK && FTSDC010
407	help
408	  This enables support for the Andestech SD/MMM controller, which is
409	  based on Faraday IP.
410
411config FTSDC010
412	bool "Ftsdc010 SD/MMC controller Support"
413	help
414	  This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
415
416endif
417
418config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
419	bool "Disable external clock loopback"
420	depends on MMC_SDHCI_TEGRA && TEGRA124
421	help
422	  Disable the external clock loopback and use the internal one on SDMMC3
423	  as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
424	  being set to 0xfffd according to the TRM.
425
426	  TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
427	  approach once proper kernel integration made it mainline.
428
429endmenu
430
431config SYS_FSL_ERRATUM_ESDHC111
432	bool
433
434config SYS_FSL_ERRATUM_ESDHC13
435	bool
436
437config SYS_FSL_ERRATUM_ESDHC135
438	bool
439
440config SYS_FSL_ERRATUM_ESDHC_A001
441	bool
442