xref: /openbmc/u-boot/drivers/mmc/Kconfig (revision be059e88)
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 GENERIC_MMC
14	bool "Generic MMC driver framework"
15	default MMC
16
17config DM_MMC
18	bool "Enable MMC controllers using Driver Model"
19	depends on DM
20	help
21	  This enables the MultiMediaCard (MMC) uclass which supports MMC and
22	  Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
23	  and non-removable (e.g. eMMC chip) devices are supported. These
24	  appear as block devices in U-Boot and can support filesystems such
25	  as EXT4 and FAT.
26
27config DM_MMC_OPS
28	bool "Support MMC controller operations using Driver Model"
29	depends on DM_MMC
30	default y if DM_MMC
31	help
32	  Driver model provides a means of supporting device operations. This
33	  option moves MMC operations under the control of driver model. The
34	  option will be removed as soon as all DM_MMC drivers use it, as it
35	  will the only supported behaviour.
36
37if MMC
38
39config SPL_MMC_TINY
40	bool "Tiny MMC framework in SPL"
41	help
42	  Enable MMC framework tinification support. This option is useful if
43	  if your SPL is extremely size constrained. Heed the warning, enable
44	  this option if and only if you know exactly what you are doing, if
45	  you are reading this help text, you most likely have no idea :-)
46
47	  The MMC framework is reduced to bare minimum to be useful. No malloc
48	  support is needed for the MMC framework operation with this option
49	  enabled. The framework supports exactly one MMC device and exactly
50	  one MMC driver. The MMC driver can be adjusted to avoid any malloc
51	  operations too, which can remove the need for malloc support in SPL
52	  and thus further reduce footprint.
53
54config MMC_DAVINCI
55	bool "TI DAVINCI Multimedia Card Interface support"
56	depends on ARCH_DAVINCI
57	default y
58	help
59	  This selects the TI DAVINCI Multimedia card Interface.
60	  If you have an DAVINCI board with a Multimedia Card slot,
61	  say Y here.  If unsure, say N.
62
63config MMC_DW
64	bool "Synopsys DesignWare Memory Card Interface"
65	help
66	  This selects support for the Synopsys DesignWare Mobile Storage IP
67	  block, this provides host support for SD and MMC interfaces, in both
68	  PIO, internal DMA mode and external DMA mode.
69
70config MMC_DW_EXYNOS
71	bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
72	depends on ARCH_EXYNOS
73	depends on MMC_DW
74	default y
75	help
76	  This selects support for Samsung Exynos SoC specific extensions to the
77	  Synopsys DesignWare Memory Card Interface driver. Select this option
78	  for platforms based on Exynos4 and Exynos5 SoC's.
79
80config MMC_DW_K3
81	bool "K3 specific extensions for Synopsys DW Memory Card Interface"
82	depends on MMC_DW
83	help
84	  This selects support for Hisilicon K3 SoC specific extensions to the
85	  Synopsys DesignWare Memory Card Interface driver. Select this option
86	  for platforms based on Hisilicon K3 SoC's.
87
88config MMC_DW_ROCKCHIP
89	bool "Rockchip SD/MMC controller support"
90	depends on DM_MMC && OF_CONTROL
91	depends on MMC_DW
92	help
93	  This enables support for the Rockchip SD/MMM controller, which is
94	  based on Designware IP. The device is compatible with at least
95	  SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
96	  as removeable SD and micro-SD cards.
97
98config MMC_DW_SOCFPGA
99	bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
100	depends on ARCH_SOCFPGA
101	depends on MMC_DW
102	default y
103	help
104	  This selects support for Altera SOCFPGA specific extensions to the
105	  Synopsys DesignWare Memory Card Interface driver. Select this option
106	  for platforms based on Altera SOCFPGA.
107
108config MMC_MXC
109	bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
110	help
111	  This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
112	  Multimedia Card Interface. If you have an i.MX or MPC512x platform
113	  with a Multimedia Card slot, say Y here.
114
115	  If unsure, say N.
116
117config MMC_MXS
118	bool "Freescale MXS Multimedia Card Interface support"
119	help
120	  This selects the Freescale SSP MMC controller found on MXS based
121	  platforms like mx23/28.
122
123	  If unsure, say N.
124
125config MMC_OMAP_HS
126	bool "TI OMAP High Speed Multimedia Card Interface support"
127	help
128	  This selects the TI OMAP High Speed Multimedia card Interface.
129	  If you have an omap2plus board with a Multimedia Card slot,
130	  say Y here.
131
132	  If unsure, say N.
133
134config SH_SDHI
135	bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
136	depends on RMOBILE
137	help
138	  Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
139
140config MMC_UNIPHIER
141	bool "UniPhier SD/MMC Host Controller support"
142	depends on ARCH_UNIPHIER
143	depends on BLK && DM_MMC_OPS
144	depends on OF_CONTROL
145	help
146	  This selects support for the SD/MMC Host Controller on UniPhier SoCs.
147
148config MMC_SANDBOX
149	bool "Sandbox MMC support"
150	depends on SANDBOX
151	depends on BLK && DM_MMC_OPS && OF_CONTROL
152	help
153	  This select a dummy sandbox MMC driver. At present this does nothing
154	  other than allow sandbox to be build with MMC support. This
155	  improves build coverage for sandbox and makes it easier to detect
156	  MMC build errors with sandbox.
157
158config MMC_SDHCI
159	bool "Secure Digital Host Controller Interface support"
160	help
161	  This selects the generic Secure Digital Host Controller Interface.
162	  It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
163	  and Toshiba(R). Most controllers found in laptops are of this type.
164
165	  If you have a controller with this interface, say Y here.
166
167	  If unsure, say N.
168
169config MMC_SDHCI_IO_ACCESSORS
170	bool
171	depends on MMC_SDHCI
172	help
173	  This is silent Kconfig symbol that is selected by the drivers that
174	  need to overwrite SDHCI IO memory accessors.
175
176config MMC_SDHCI_SDMA
177	bool "Support SDHCI SDMA"
178	depends on MMC_SDHCI
179	help
180	  This enables support for the SDMA (Single Operation DMA) defined
181	  in the SD Host Controller Standard Specification Version 1.00 .
182
183config MMC_SDHCI_ATMEL
184	bool "Atmel SDHCI controller support"
185	depends on ARCH_AT91
186	depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_AT91
187	depends on MMC_SDHCI
188	help
189	  This enables support for the Atmel SDHCI controller, which supports
190	  the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
191	  Memory Card Specification V3.0, and the SDIO V3.0 specification.
192	  It is compliant with the SD Host Controller Standard V3.0
193	  specification.
194
195config MMC_SDHCI_BCM2835
196	tristate "SDHCI support for the BCM2835 SD/MMC Controller"
197	depends on ARCH_BCM283X
198	depends on MMC_SDHCI
199	select MMC_SDHCI_IO_ACCESSORS
200	help
201	  This selects the BCM2835 SD/MMC controller.
202
203	  If you have a BCM2835 platform with SD or MMC devices,
204	  say Y here.
205
206	  If unsure, say N.
207
208config MMC_SDHCI_CADENCE
209	bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
210	depends on BLK && DM_MMC_OPS
211	depends on MMC_SDHCI
212	depends on OF_CONTROL
213	help
214	  This selects the Cadence SD/SDIO/eMMC driver.
215
216	  If you have a controller with this interface, say Y here.
217
218	  If unsure, say N.
219
220config MMC_SDHCI_KONA
221	bool "SDHCI support on Broadcom KONA platform"
222	depends on MMC_SDHCI
223	help
224	  This selects the Broadcom Kona Secure Digital Host Controller
225	  Interface(SDHCI) support.
226	  This is used in Broadcom mobile SoCs.
227
228	  If you have a controller with this interface, say Y here.
229
230config MMC_SDHCI_MSM
231	bool "Qualcomm SDHCI controller"
232	depends on BLK && DM_MMC_OPS
233	depends on MMC_SDHCI
234	help
235	  Enables support for SDHCI 2.0 controller present on some Qualcomm
236          Snapdragon devices. This device is compatible with eMMC v4.5 and
237          SD 3.0 specifications. Both SD and eMMC devices are supported.
238	  Card-detect gpios are not supported.
239
240config MMC_SDHCI_MV
241	bool "SDHCI support on Marvell platform"
242	depends on ARCH_MVEBU
243	depends on MMC_SDHCI
244	help
245	  This selects the Secure Digital Host Controller Interface on
246	  Marvell platform.
247
248	  If you have a controller with this interface, say Y here.
249
250	  If unsure, say N.
251
252config MMC_SDHCI_PIC32
253	bool "Microchip PIC32 on-chip SDHCI support"
254	depends on DM_MMC && MACH_PIC32
255	depends on MMC_SDHCI
256	help
257	  Support for Microchip PIC32 SDHCI controller.
258
259config MMC_SDHCI_ROCKCHIP
260	bool "Arasan SDHCI controller for Rockchip support"
261	depends on ARCH_ROCKCHIP
262	depends on DM_MMC && BLK && DM_MMC_OPS
263	depends on MMC_SDHCI
264	help
265	  Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
266
267config MMC_SDHCI_S5P
268	bool "SDHCI support on Samsung S5P SoC"
269	depends on MMC_SDHCI
270	help
271	  This selects the Secure Digital Host Controller Interface (SDHCI)
272	  on Samsung S5P SoCs.
273
274	  If you have a controller with this interface, say Y here.
275
276	  If unsure, say N.
277
278config MMC_SDHCI_SPEAR
279	bool "SDHCI support on ST SPEAr platform"
280	depends on MMC_SDHCI
281	help
282	  This selects the Secure Digital Host Controller Interface (SDHCI)
283	  often referrered to as the HSMMC block in some of the ST SPEAR range
284	  of SoC
285
286	  If you have a controller with this interface, say Y here.
287
288	  If unsure, say N.
289
290config MMC_SDHCI_XENON
291	bool "SDHCI support for the Xenon SDHCI controller"
292	depends on MMC_SDHCI && DM_MMC && OF_CONTROL
293	help
294	  Support for Xenon SDHCI host controller on Marvell Armada 3700
295	  7k/8k ARM SoCs platforms
296
297	  If you have a controller with this interface, say Y here.
298
299	  If unsure, say N.
300
301config MMC_SDHCI_TEGRA
302	bool "SDHCI platform support for the Tegra SD/MMC Controller"
303	depends on TEGRA
304	default y
305	help
306	  This selects the Tegra SD/MMC controller. If you have a Tegra
307	  platform with SD or MMC devices, say Y here.
308
309	  If unsure, say N.
310
311config MMC_SDHCI_ZYNQ
312	bool "Arasan SDHCI controller support"
313	depends on ARCH_ZYNQ || ARCH_ZYNQMP
314	depends on DM_MMC && OF_CONTROL && BLK && DM_MMC_OPS
315	depends on MMC_SDHCI
316	help
317	  Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
318
319config MMC_SUNXI
320	bool "Allwinner sunxi SD/MMC Host Controller support"
321	depends on ARCH_SUNXI && !UART0_PORT_F
322	default y
323	help
324	  This selects support for the SD/MMC Host Controller on
325	  Allwinner sunxi SoCs.
326
327endif
328
329endmenu
330
331config SYS_FSL_ERRATUM_ESDHC111
332	bool
333
334config SYS_FSL_ERRATUM_ESDHC13
335	bool
336
337config SYS_FSL_ERRATUM_ESDHC135
338	bool
339
340config SYS_FSL_ERRATUM_ESDHC_A001
341	bool
342