xref: /OK3568_Linux_fs/u-boot/drivers/mmc/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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 MMC_WRITE
14	bool "support for MMC/SD write operations"
15	depends on MMC
16	default y
17	help
18	  Enable write access to MMC and SD Cards
19
20config DM_MMC
21	bool "Enable MMC controllers using Driver Model"
22	depends on DM
23	help
24	  This enables the MultiMediaCard (MMC) uclass which supports MMC and
25	  Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
26	  and non-removable (e.g. eMMC chip) devices are supported. These
27	  appear as block devices in U-Boot and can support filesystems such
28	  as EXT4 and FAT.
29
30config SPL_DM_MMC
31	bool "Enable MMC controllers using Driver Model in SPL"
32	depends on SPL_DM && DM_MMC
33	default y
34	help
35	  This enables the MultiMediaCard (MMC) uclass which supports MMC and
36	  Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
37	  and non-removable (e.g. eMMC chip) devices are supported. These
38	  appear as block devices in U-Boot and can support filesystems such
39	  as EXT4 and FAT.
40
41if MMC
42
43config SPL_MMC_TINY
44	bool "Tiny MMC framework in SPL"
45	help
46	  Enable MMC framework tinification support. This option is useful if
47	  if your SPL is extremely size constrained. Heed the warning, enable
48	  this option if and only if you know exactly what you are doing, if
49	  you are reading this help text, you most likely have no idea :-)
50
51	  The MMC framework is reduced to bare minimum to be useful. No malloc
52	  support is needed for the MMC framework operation with this option
53	  enabled. The framework supports exactly one MMC device and exactly
54	  one MMC driver. The MMC driver can be adjusted to avoid any malloc
55	  operations too, which can remove the need for malloc support in SPL
56	  and thus further reduce footprint.
57
58config MMC_SIMPLE
59	bool "Reduce mmc code size"
60	help
61	  Reduce mmc code size.
62
63config SUPPORT_EMMC_RPMB
64	bool "Support eMMC replay protected memory block (RPMB)"
65	depends on MMC && CMD_MMC
66	default y
67	help
68	  Enable support for reading, writing and programming the
69	  key for the Replay Protection Memory Block partition in eMMC.
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 && 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	depends on MX23 || MX28 || MX6 || MX7
143	select APBH_DMA
144	select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
145	select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
146	help
147	  This selects the Freescale SSP MMC controller found on MXS based
148	  platforms like mx23/28.
149
150	  If unsure, say N.
151
152config MMC_PCI
153	bool "Support for MMC controllers on PCI"
154	help
155	  This selects PCI-based MMC controllers.
156	  If you have an MMC controller on a PCI bus, say Y here.
157
158	  If unsure, say N.
159
160config MMC_OMAP_HS
161	bool "TI OMAP High Speed Multimedia Card Interface support"
162	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
163	help
164	  This selects the TI OMAP High Speed Multimedia card Interface.
165	  If you have an omap2plus board with a Multimedia Card slot,
166	  say Y here.
167
168	  If unsure, say N.
169
170config MMC_OMAP36XX_PINS
171	bool "Enable MMC1 on OMAP36xx/37xx"
172	depends on OMAP34XX && MMC_OMAP_HS
173	help
174	  This enables extended-drain in the MMC/SD/SDIO1I/O and
175	  GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
176	  specific to the OMAP36xx/37xx using MMC1
177
178	  If you have a controller with this interface, say Y here.
179
180	  If unsure, say N.
181
182config SH_SDHI
183	bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
184	depends on ARCH_RMOBILE
185	help
186	  Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
187
188config MMC_UNIPHIER
189	bool "UniPhier SD/MMC Host Controller support"
190	depends on ARCH_UNIPHIER
191	depends on BLK && DM_MMC
192	depends on OF_CONTROL
193	help
194	  This selects support for the SD/MMC Host Controller on UniPhier SoCs.
195
196config MMC_SANDBOX
197	bool "Sandbox MMC support"
198	depends on SANDBOX
199	depends on BLK && DM_MMC && OF_CONTROL
200	help
201	  This select a dummy sandbox MMC driver. At present this does nothing
202	  other than allow sandbox to be build with MMC support. This
203	  improves build coverage for sandbox and makes it easier to detect
204	  MMC build errors with sandbox.
205
206config MMC_SDHCI
207	bool "Secure Digital Host Controller Interface support"
208	help
209	  This selects the generic Secure Digital Host Controller Interface.
210	  It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
211	  and Toshiba(R). Most controllers found in laptops are of this type.
212
213	  If you have a controller with this interface, say Y here.
214
215	  If unsure, say N.
216
217config MMC_SDHCI_IO_ACCESSORS
218	bool
219	depends on MMC_SDHCI
220	help
221	  This is silent Kconfig symbol that is selected by the drivers that
222	  need to overwrite SDHCI IO memory accessors.
223
224config MMC_SDHCI_SDMA
225	bool "Support SDHCI SDMA"
226	depends on MMC_SDHCI
227	help
228	  This enables support for the SDMA (Single Operation DMA) defined
229	  in the SD Host Controller Standard Specification Version 1.00 .
230
231config MMC_SDHCI_ATMEL
232	bool "Atmel SDHCI controller support"
233	depends on ARCH_AT91
234	depends on DM_MMC && BLK && ARCH_AT91
235	depends on MMC_SDHCI
236	help
237	  This enables support for the Atmel SDHCI controller, which supports
238	  the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
239	  Memory Card Specification V3.0, and the SDIO V3.0 specification.
240	  It is compliant with the SD Host Controller Standard V3.0
241	  specification.
242
243config MMC_SDHCI_BCM2835
244	tristate "SDHCI support for the BCM2835 SD/MMC Controller"
245	depends on ARCH_BCM283X
246	depends on MMC_SDHCI
247	select MMC_SDHCI_IO_ACCESSORS
248	help
249	  This selects the BCM2835 SD/MMC controller.
250
251	  If you have a BCM2835 platform with SD or MMC devices,
252	  say Y here.
253
254	  If unsure, say N.
255
256config MMC_SDHCI_BCMSTB
257	tristate "SDHCI support for the BCMSTB SD/MMC Controller"
258	depends on MMC_SDHCI
259	help
260	  This selects the Broadcom set-top box SD/MMC controller.
261
262	  If you have a BCMSTB platform with SD or MMC devices,
263	  say Y here.
264
265	  If unsure, say N.
266
267config MMC_SDHCI_CADENCE
268	bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
269	depends on BLK && DM_MMC
270	depends on MMC_SDHCI
271	depends on OF_CONTROL
272	help
273	  This selects the Cadence SD/SDIO/eMMC driver.
274
275	  If you have a controller with this interface, say Y here.
276
277	  If unsure, say N.
278
279config MMC_SDHCI_KONA
280	bool "SDHCI support on Broadcom KONA platform"
281	depends on MMC_SDHCI
282	help
283	  This selects the Broadcom Kona Secure Digital Host Controller
284	  Interface(SDHCI) support.
285	  This is used in Broadcom mobile SoCs.
286
287	  If you have a controller with this interface, say Y here.
288
289config MMC_SDHCI_MSM
290	bool "Qualcomm SDHCI controller"
291	depends on BLK && DM_MMC
292	depends on MMC_SDHCI
293	help
294	  Enables support for SDHCI 2.0 controller present on some Qualcomm
295          Snapdragon devices. This device is compatible with eMMC v4.5 and
296          SD 3.0 specifications. Both SD and eMMC devices are supported.
297	  Card-detect gpios are not supported.
298
299config MMC_SDHCI_MV
300	bool "SDHCI support on Marvell platform"
301	depends on ARCH_MVEBU
302	depends on MMC_SDHCI
303	help
304	  This selects the Secure Digital Host Controller Interface on
305	  Marvell platform.
306
307	  If you have a controller with this interface, say Y here.
308
309	  If unsure, say N.
310
311config MMC_SDHCI_PIC32
312	bool "Microchip PIC32 on-chip SDHCI support"
313	depends on DM_MMC && MACH_PIC32
314	depends on MMC_SDHCI
315	help
316	  Support for Microchip PIC32 SDHCI controller.
317
318config MMC_SDHCI_ROCKCHIP
319	bool "Arasan SDHCI controller for Rockchip support"
320	depends on ARCH_ROCKCHIP
321	depends on DM_MMC && BLK
322	depends on MMC_SDHCI
323	help
324	  Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
325
326config MMC_SDHCI_S5P
327	bool "SDHCI support on Samsung S5P SoC"
328	depends on MMC_SDHCI
329	help
330	  This selects the Secure Digital Host Controller Interface (SDHCI)
331	  on Samsung S5P SoCs.
332
333	  If you have a controller with this interface, say Y here.
334
335	  If unsure, say N.
336
337config MMC_SDHCI_SPEAR
338	bool "SDHCI support on ST SPEAr platform"
339	depends on MMC_SDHCI
340	help
341	  This selects the Secure Digital Host Controller Interface (SDHCI)
342	  often referrered to as the HSMMC block in some of the ST SPEAR range
343	  of SoC
344
345	  If you have a controller with this interface, say Y here.
346
347	  If unsure, say N.
348
349config MMC_SDHCI_STI
350	bool "SDHCI support for STMicroelectronics SoC"
351	depends on MMC_SDHCI && OF_CONTROL
352	help
353	  This selects the Secure Digital Host Controller Interface (SDHCI)
354	  on STMicroelectronics STiH410 SoC.
355
356config MMC_SDHCI_XENON
357	bool "SDHCI support for the Xenon SDHCI controller"
358	depends on MMC_SDHCI && DM_MMC && OF_CONTROL
359	help
360	  Support for Xenon SDHCI host controller on Marvell Armada 3700
361	  7k/8k ARM SoCs platforms
362
363	  If you have a controller with this interface, say Y here.
364
365	  If unsure, say N.
366
367config MMC_SDHCI_TANGIER
368	bool "Tangier SDHCI controller support"
369	depends on DM_MMC && BLK
370	depends on MMC_SDHCI
371	help
372	  This selects support for SDHCI controller on Tanginer
373	  SoC. Note that this controller does not sit on PCI bus and,
374	  hence, cannot be enumerated by standard PCI means.
375
376	  If you're using an Intel Tangier SoC (available on Intel
377	  Edison board), say Y here.
378
379	  If unsure, say N.
380
381config MMC_SDHCI_TEGRA
382	bool "SDHCI platform support for the Tegra SD/MMC Controller"
383	depends on TEGRA
384	default y
385	help
386	  This selects the Tegra SD/MMC controller. If you have a Tegra
387	  platform with SD or MMC devices, say Y here.
388
389	  If unsure, say N.
390
391config MMC_SDHCI_ZYNQ
392	bool "Arasan SDHCI controller support"
393	depends on ARCH_ZYNQ || ARCH_ZYNQMP
394	depends on DM_MMC && OF_CONTROL && BLK
395	depends on MMC_SDHCI
396	help
397	  Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
398
399config MMC_SUNXI
400	bool "Allwinner sunxi SD/MMC Host Controller support"
401	depends on ARCH_SUNXI && !UART0_PORT_F
402	default y
403	help
404	  This selects support for the SD/MMC Host Controller on
405	  Allwinner sunxi SoCs.
406
407config MMC_SUNXI_HAS_NEW_MODE
408	bool
409	depends on MMC_SUNXI
410
411config GENERIC_ATMEL_MCI
412	bool "Atmel Multimedia Card Interface support"
413	depends on DM_MMC && BLK && ARCH_AT91
414	help
415	  This enables support for Atmel High Speed Multimedia Card Interface
416	  (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
417	  the SD Memory Card Specification V2.0, the SDIO V2.0 specification
418	  and CE-ATA V1.1.
419
420config MMC_USE_PRE_CONFIG
421	bool "Enable to use pre-configure set by pre-loader or bootrom"
422	help
423	  The MMC is initialized by pre-loader or bootrom, so it is no need to
424	  initialize it again. Open this config to skip some unused initialized
425	  process.
426
427endif
428
429config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
430	bool "Disable external clock loopback"
431	depends on MMC_SDHCI_TEGRA && TEGRA124
432	help
433	  Disable the external clock loopback and use the internal one on SDMMC3
434	  as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
435	  being set to 0xfffd according to the TRM.
436
437	  TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
438	  approach once proper kernel integration made it mainline.
439
440endmenu
441
442config SYS_FSL_ERRATUM_ESDHC111
443	bool
444
445config SYS_FSL_ERRATUM_ESDHC13
446	bool
447
448config SYS_FSL_ERRATUM_ESDHC135
449	bool
450
451config SYS_FSL_ERRATUM_ESDHC_A001
452	bool
453