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