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