xref: /openbmc/u-boot/drivers/mmc/Kconfig (revision cb686454)
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_MESON_GX
109	bool "Meson GX EMMC controller support"
110	depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_MESON
111	help
112	 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
113
114config MMC_MXC
115	bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
116	help
117	  This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
118	  Multimedia Card Interface. If you have an i.MX or MPC512x platform
119	  with a Multimedia Card slot, say Y here.
120
121	  If unsure, say N.
122
123config MMC_MXS
124	bool "Freescale MXS Multimedia Card Interface support"
125	help
126	  This selects the Freescale SSP MMC controller found on MXS based
127	  platforms like mx23/28.
128
129	  If unsure, say N.
130
131config MMC_PCI
132	bool "Support for MMC controllers on PCI"
133	help
134	  This selects PCI-based MMC controllers.
135	  If you have an MMC controller on a PCI bus, say Y here.
136
137	  If unsure, say N.
138
139config MMC_OMAP_HS
140	bool "TI OMAP High Speed Multimedia Card Interface support"
141	help
142	  This selects the TI OMAP High Speed Multimedia card Interface.
143	  If you have an omap2plus board with a Multimedia Card slot,
144	  say Y here.
145
146	  If unsure, say N.
147
148config MMC_OMAP36XX_PINS
149	bool "Enable MMC1 on OMAP36xx/37xx"
150	depends on OMAP34XX && MMC_OMAP_HS
151	help
152	  This enables extended-drain in the MMC/SD/SDIO1I/O and
153	  GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
154	  specific to the OMAP36xx/37xx using MMC1
155
156	  If you have a controller with this interface, say Y here.
157
158	  If unsure, say N.
159
160config SH_SDHI
161	bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
162	depends on RMOBILE
163	help
164	  Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
165
166config MMC_UNIPHIER
167	bool "UniPhier SD/MMC Host Controller support"
168	depends on ARCH_UNIPHIER
169	depends on BLK && DM_MMC_OPS
170	depends on OF_CONTROL
171	help
172	  This selects support for the SD/MMC Host Controller on UniPhier SoCs.
173
174config MMC_SANDBOX
175	bool "Sandbox MMC support"
176	depends on SANDBOX
177	depends on BLK && DM_MMC_OPS && 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 && DM_MMC_OPS && 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_OPS
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_OPS
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 && DM_MMC_OPS
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 && DM_MMC_OPS
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 GENERIC_ATMEL_MCI
375	bool "Atmel Multimedia Card Interface support"
376	depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_AT91
377	help
378	  This enables support for Atmel High Speed Multimedia Card Interface
379	  (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
380	  the SD Memory Card Specification V2.0, the SDIO V2.0 specification
381	  and CE-ATA V1.1.
382
383endif
384
385config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
386	bool "Disable external clock loopback"
387	depends on MMC_SDHCI_TEGRA && TEGRA124
388	help
389	  Disable the external clock loopback and use the internal one on SDMMC3
390	  as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
391	  being set to 0xfffd according to the TRM.
392
393	  TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
394	  approach once proper kernel integration made it mainline.
395
396endmenu
397
398config SYS_FSL_ERRATUM_ESDHC111
399	bool
400
401config SYS_FSL_ERRATUM_ESDHC13
402	bool
403
404config SYS_FSL_ERRATUM_ESDHC135
405	bool
406
407config SYS_FSL_ERRATUM_ESDHC_A001
408	bool
409