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