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