]>
Commit | Line | Data |
---|---|---|
72d42bad NI |
1 | menu "MMC Host controller Support" |
2 | ||
7a777f6d | 3 | config MMC |
c2726995 MY |
4 | bool "MMC/SD/SDIO card support" |
5 | default ARM || PPC || SANDBOX | |
f7173fce | 6 | select DM_MMC if DM |
7a777f6d | 7 | help |
c2726995 MY |
8 | This selects MultiMediaCard, Secure Digital and Secure |
9 | Digital I/O support. | |
10 | ||
11 | If you want MMC/SD/SDIO support, you should say Y here and | |
12 | also to your specific host controller driver. | |
7a777f6d | 13 | |
d6400c3f JJH |
14 | config MMC_WRITE |
15 | bool "support for MMC/SD write operations" | |
16 | depends on MMC | |
17 | default y | |
18 | help | |
19 | Enable write access to MMC and SD Cards | |
20 | ||
caee38ae JC |
21 | config MMC_PWRSEQ |
22 | bool "HW reset support for eMMC" | |
d06e4899 | 23 | depends on PWRSEQ && DM_GPIO |
caee38ae | 24 | help |
d06e4899 | 25 | This select Hardware reset support aka pwrseq-emmc for eMMC |
caee38ae JC |
26 | devices. |
27 | ||
d06e4899 JK |
28 | config SPL_MMC_PWRSEQ |
29 | bool "HW reset support for eMMC in SPL" | |
30 | depends on SPL_PWRSEQ && SPL_DM_GPIO | |
31 | default y if MMC_PWRSEQ | |
32 | help | |
33 | This select Hardware reset support aka pwrseq-emmc for eMMC | |
34 | devices in SPL. | |
35 | ||
2f516e4a JN |
36 | config MMC_BROKEN_CD |
37 | bool "Poll for broken card detection case" | |
38 | help | |
39 | If card detection feature is broken, just poll to detect. | |
40 | ||
e7ecf7cb SG |
41 | config DM_MMC |
42 | bool "Enable MMC controllers using Driver Model" | |
43 | depends on DM | |
f7173fce | 44 | select BLK |
e7ecf7cb | 45 | help |
62a3b7dd | 46 | This enables the MultiMediaCard (MMC) uclass which supports MMC and |
e7ecf7cb SG |
47 | Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.) |
48 | and non-removable (e.g. eMMC chip) devices are supported. These | |
49 | appear as block devices in U-Boot and can support filesystems such | |
50 | as EXT4 and FAT. | |
51 | ||
c4d660d4 SG |
52 | config SPL_DM_MMC |
53 | bool "Enable MMC controllers using Driver Model in SPL" | |
54 | depends on SPL_DM && DM_MMC | |
35ed176a | 55 | default n if ARCH_MVEBU && !MVEBU_SPL_BOOT_DEVICE_MMC |
c4d660d4 | 56 | default y |
9b8ebd3a | 57 | select SPL_BLK |
c4d660d4 SG |
58 | help |
59 | This enables the MultiMediaCard (MMC) uclass which supports MMC and | |
60 | Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.) | |
61 | and non-removable (e.g. eMMC chip) devices are supported. These | |
62 | appear as block devices in U-Boot and can support filesystems such | |
63 | as EXT4 and FAT. | |
64 | ||
e298c46a MY |
65 | if MMC |
66 | ||
4d6a773b MW |
67 | config MMC_SDHCI_ADMA_HELPERS |
68 | bool | |
69 | ||
05e35d42 BS |
70 | config MMC_SPI |
71 | bool "Support for SPI-based MMC controller" | |
72 | depends on DM_MMC && DM_SPI | |
73 | help | |
74 | This selects SPI-based MMC controllers. | |
75 | If you have an MMC controller on a SPI bus, say Y here. | |
76 | ||
77 | If unsure, say N. | |
78 | ||
79 | config MMC_SPI_CRC_ON | |
80 | bool "Support CRC for SPI-based MMC controller" | |
81 | depends on MMC_SPI | |
82 | default y | |
83 | help | |
84 | This enables CRC for SPI-based MMC controllers. | |
85 | ||
86 | If unsure, say N. | |
87 | ||
3c0dbed2 PC |
88 | config ARM_PL180_MMCI |
89 | bool "ARM AMBA Multimedia Card Interface and compatible support" | |
ee6cee12 | 90 | depends on DM_MMC |
3c0dbed2 PC |
91 | help |
92 | This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card | |
93 | Interface (PL180, PL181 and compatible) support. | |
94 | If you have an ARM(R) platform with a Multimedia Card slot, | |
4c9307b2 | 95 | say Y here. |
3c0dbed2 | 96 | |
83dc4227 KVA |
97 | config MMC_QUIRKS |
98 | bool "Enable quirks" | |
99 | default y | |
100 | help | |
101 | Some cards and hosts may sometimes behave unexpectedly (quirks). | |
102 | This option enable workarounds to handle those quirks. Some of them | |
26632b75 | 103 | are enabled by default, other may require additional flags or are |
83dc4227 KVA |
104 | enabled by the host driver. |
105 | ||
75fc79e5 TR |
106 | config SYS_MMC_MAX_BLK_COUNT |
107 | int "Block count limit" | |
108 | default 65535 | |
109 | help | |
110 | The block count limit on MMC based devices. We default to 65535 due | |
111 | to a 16bit register limit on some hardware. | |
112 | ||
cf17789e JJH |
113 | config MMC_HW_PARTITIONING |
114 | bool "Support for HW partitioning command(eMMC)" | |
115 | default y | |
116 | help | |
117 | This adds a command and an API to do hardware partitioning on eMMC | |
118 | devices. | |
119 | ||
5a7b11e6 AK |
120 | config SUPPORT_EMMC_RPMB |
121 | bool "Support eMMC replay protected memory block (RPMB)" | |
122 | imply CMD_MMC_RPMB | |
123 | help | |
124 | Enable support for reading, writing and programming the | |
125 | key for the Replay Protection Memory Block partition in eMMC. | |
126 | ||
623de3f0 AK |
127 | config SUPPORT_EMMC_BOOT |
128 | bool "Support some additional features of the eMMC boot partitions" | |
129 | help | |
130 | Enable support for eMMC boot partitions. This also enables | |
131 | extensions within the mmc command. | |
132 | ||
f99c2efe JJH |
133 | config MMC_IO_VOLTAGE |
134 | bool "Support IO voltage configuration" | |
135 | help | |
136 | IO voltage configuration allows selecting the voltage level of the IO | |
137 | lines (not the level of main supply). This is required for UHS | |
138 | support. For eMMC this not mandatory, but not enabling this option may | |
139 | prevent the driver of using the faster modes. | |
140 | ||
141 | config SPL_MMC_IO_VOLTAGE | |
142 | bool "Support IO voltage configuration in SPL" | |
b340199f | 143 | depends on SPL_MMC |
f99c2efe JJH |
144 | help |
145 | IO voltage configuration allows selecting the voltage level of the IO | |
146 | lines (not the level of main supply). This is required for UHS | |
147 | support. For eMMC this not mandatory, but not enabling this option may | |
148 | prevent the driver of using the faster modes. | |
149 | ||
150 | config MMC_UHS_SUPPORT | |
151 | bool "enable UHS support" | |
152 | depends on MMC_IO_VOLTAGE | |
153 | help | |
154 | The Ultra High Speed (UHS) bus is available on some SDHC and SDXC | |
155 | cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus | |
156 | frequency can go up to 208MHz (SDR104) | |
157 | ||
158 | config SPL_MMC_UHS_SUPPORT | |
159 | bool "enable UHS support in SPL" | |
160 | depends on SPL_MMC_IO_VOLTAGE | |
161 | help | |
162 | The Ultra High Speed (UHS) bus is available on some SDHC and SDXC | |
163 | cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus | |
164 | frequency can go up to 208MHz (SDR104) | |
165 | ||
44acd492 PF |
166 | config MMC_HS400_ES_SUPPORT |
167 | bool "enable HS400 Enhanced Strobe support" | |
168 | help | |
169 | The HS400 Enhanced Strobe mode is support by some eMMC. The bus | |
170 | frequency is up to 200MHz. This mode does not tune the IO. | |
171 | ||
172 | config SPL_MMC_HS400_ES_SUPPORT | |
173 | bool "enable HS400 Enhanced Strobe support in SPL" | |
b340199f | 174 | depends on SPL_MMC |
44acd492 PF |
175 | help |
176 | The HS400 Enhanced Strobe mode is support by some eMMC. The bus | |
177 | frequency is up to 200MHz. This mode does not tune the IO. | |
178 | ||
3dd2626f PF |
179 | config MMC_HS400_SUPPORT |
180 | bool "enable HS400 support" | |
181 | select MMC_HS200_SUPPORT | |
182 | help | |
183 | The HS400 mode is support by some eMMC. The bus frequency is up to | |
184 | 200MHz. This mode requires tuning the IO. | |
185 | ||
186 | config SPL_MMC_HS400_SUPPORT | |
187 | bool "enable HS400 support in SPL" | |
b340199f | 188 | depends on SPL_MMC |
68b3e8b3 | 189 | select SPL_MMC_HS200_SUPPORT |
3dd2626f PF |
190 | help |
191 | The HS400 mode is support by some eMMC. The bus frequency is up to | |
192 | 200MHz. This mode requires tuning the IO. | |
193 | ||
f99c2efe JJH |
194 | config MMC_HS200_SUPPORT |
195 | bool "enable HS200 support" | |
196 | help | |
197 | The HS200 mode is support by some eMMC. The bus frequency is up to | |
198 | 200MHz. This mode requires tuning the IO. | |
199 | ||
f99c2efe JJH |
200 | config SPL_MMC_HS200_SUPPORT |
201 | bool "enable HS200 support in SPL" | |
b340199f | 202 | depends on SPL_MMC |
f99c2efe JJH |
203 | help |
204 | The HS200 mode is support by some eMMC. The bus frequency is up to | |
205 | 200MHz. This mode requires tuning the IO. | |
206 | ||
35f9e196 JJH |
207 | config MMC_VERBOSE |
208 | bool "Output more information about the MMC" | |
209 | default y | |
210 | help | |
211 | Enable the output of more information about the card such as the | |
212 | operating mode. | |
213 | ||
72b5a037 JC |
214 | config MMC_TRACE |
215 | bool "MMC debugging" | |
72b5a037 JC |
216 | help |
217 | This is an option for use by developer. Enable MMC core debugging. | |
218 | ||
219 | If you need to see the MMC core message, say Y. | |
220 | ||
1d2c0506 MY |
221 | config MMC_DAVINCI |
222 | bool "TI DAVINCI Multimedia Card Interface support" | |
223 | depends on ARCH_DAVINCI | |
224 | default y | |
225 | help | |
226 | This selects the TI DAVINCI Multimedia card Interface. | |
227 | If you have an DAVINCI board with a Multimedia Card slot, | |
228 | say Y here. If unsure, say N. | |
229 | ||
55ed3b46 MY |
230 | config MMC_DW |
231 | bool "Synopsys DesignWare Memory Card Interface" | |
2acc24fc | 232 | select BOUNCE_BUFFER |
55ed3b46 MY |
233 | help |
234 | This selects support for the Synopsys DesignWare Mobile Storage IP | |
235 | block, this provides host support for SD and MMC interfaces, in both | |
236 | PIO, internal DMA mode and external DMA mode. | |
237 | ||
d55e4e74 AL |
238 | config MMC_DW_CORTINA |
239 | bool "Cortina specific extensions for Synopsys DW Memory Card Interface" | |
240 | depends on DM_MMC | |
241 | depends on MMC_DW | |
242 | depends on BLK | |
d55e4e74 AL |
243 | help |
244 | This selects support for Cortina SoC specific extensions to the | |
245 | Synopsys DesignWare Memory Card Interface driver. Select this option | |
246 | for platforms based on Cortina CAxxxx Soc's. | |
247 | ||
ae4c81e9 MY |
248 | config MMC_DW_EXYNOS |
249 | bool "Exynos specific extensions for Synopsys DW Memory Card Interface" | |
250 | depends on ARCH_EXYNOS | |
251 | depends on MMC_DW | |
252 | default y | |
253 | help | |
254 | This selects support for Samsung Exynos SoC specific extensions to the | |
255 | Synopsys DesignWare Memory Card Interface driver. Select this option | |
256 | for platforms based on Exynos4 and Exynos5 SoC's. | |
257 | ||
258 | config MMC_DW_K3 | |
259 | bool "K3 specific extensions for Synopsys DW Memory Card Interface" | |
260 | depends on MMC_DW | |
261 | help | |
262 | This selects support for Hisilicon K3 SoC specific extensions to the | |
263 | Synopsys DesignWare Memory Card Interface driver. Select this option | |
264 | for platforms based on Hisilicon K3 SoC's. | |
265 | ||
fed44087 | 266 | config MMC_DW_ROCKCHIP |
a8cb4fb5 SG |
267 | bool "Rockchip SD/MMC controller support" |
268 | depends on DM_MMC && OF_CONTROL | |
55ed3b46 | 269 | depends on MMC_DW |
a8cb4fb5 SG |
270 | help |
271 | This enables support for the Rockchip SD/MMM controller, which is | |
272 | based on Designware IP. The device is compatible with at least | |
273 | SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well | |
274 | as removeable SD and micro-SD cards. | |
275 | ||
ae4c81e9 MY |
276 | config MMC_DW_SOCFPGA |
277 | bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface" | |
278 | depends on ARCH_SOCFPGA | |
279 | depends on MMC_DW | |
280 | default y | |
281 | help | |
282 | This selects support for Altera SOCFPGA specific extensions to the | |
283 | Synopsys DesignWare Memory Card Interface driver. Select this option | |
284 | for platforms based on Altera SOCFPGA. | |
285 | ||
15736e28 EP |
286 | config MMC_DW_SNPS |
287 | bool "Extensions for DW Memory Card Interface used in Synopsys ARC devboards" | |
288 | depends on MMC_DW | |
289 | depends on DM_MMC | |
290 | depends on OF_CONTROL | |
291 | depends on CLK | |
292 | help | |
293 | This selects support for Synopsys DesignWare Memory Card Interface driver | |
294 | extensions used in various Synopsys ARC devboards. | |
295 | ||
84083189 SB |
296 | config NEXELL_DWMMC |
297 | bool "Nexell SD/MMC controller support" | |
298 | depends on ARCH_NEXELL | |
299 | depends on MMC_DW | |
300 | depends on DM_MMC | |
301 | depends on PINCTRL_NEXELL | |
302 | default y | |
303 | ||
93738620 CC |
304 | config MMC_MESON_GX |
305 | bool "Meson GX EMMC controller support" | |
e7881d85 | 306 | depends on DM_MMC && BLK && ARCH_MESON |
93738620 CC |
307 | help |
308 | Support for EMMC host controller on Meson GX ARM SoCs platform (S905) | |
309 | ||
1d2c0506 MY |
310 | config MMC_MXC |
311 | bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support" | |
312 | help | |
313 | This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x | |
314 | Multimedia Card Interface. If you have an i.MX or MPC512x platform | |
315 | with a Multimedia Card slot, say Y here. | |
316 | ||
317 | If unsure, say N. | |
318 | ||
57a91c3c AST |
319 | config MMC_OWL |
320 | bool "Actions OWL Multimedia Card Interface support" | |
321 | depends on ARCH_OWL && DM_MMC && BLK | |
322 | help | |
323 | This selects the OWL SD/MMC host controller found on board | |
324 | based on Actions S700/S900 SoC. | |
325 | ||
1d2c0506 MY |
326 | config MMC_MXS |
327 | bool "Freescale MXS Multimedia Card Interface support" | |
99bec1ae | 328 | depends on MX23 || MX28 || MX6 || MX7 |
2acc24fc | 329 | select BOUNCE_BUFFER |
99bec1ae AF |
330 | select APBH_DMA |
331 | select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7 | |
332 | select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7 | |
1d2c0506 MY |
333 | help |
334 | This selects the Freescale SSP MMC controller found on MXS based | |
335 | platforms like mx23/28. | |
336 | ||
337 | If unsure, say N. | |
338 | ||
b706b1c2 FB |
339 | config MMC_PCI |
340 | bool "Support for MMC controllers on PCI" | |
511dcc3b | 341 | depends on MMC_SDHCI |
b706b1c2 FB |
342 | help |
343 | This selects PCI-based MMC controllers. | |
344 | If you have an MMC controller on a PCI bus, say Y here. | |
345 | ||
70859899 | 346 | config MMC_OCTEONTX |
f9bb0baa SR |
347 | bool "Marvell Octeon Multimedia Card Interface support" |
348 | depends on (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2) | |
70859899 SG |
349 | depends on DM_MMC |
350 | help | |
f9bb0baa SR |
351 | This selects the Octeon Multimedia card Interface. |
352 | If you have an OcteonTX/TX2 or MIPS Octeon board with a | |
353 | Multimedia Card slot, say Y here. | |
70859899 | 354 | |
b706b1c2 FB |
355 | If unsure, say N. |
356 | ||
c689ae04 HB |
357 | config MVEBU_MMC |
358 | bool "Kirkwood MMC controller support" | |
359 | depends on DM_MMC && BLK && ARCH_KIRKWOOD | |
360 | help | |
361 | Support for MMC host controller on Kirkwood SoCs. | |
362 | If you are on a Kirkwood architecture, say Y here. | |
363 | ||
364 | If unsure, say N. | |
365 | ||
1d2c0506 MY |
366 | config MMC_OMAP_HS |
367 | bool "TI OMAP High Speed Multimedia Card Interface support" | |
e7881d85 | 368 | select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR |
8ff7763d | 369 | select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR |
1d2c0506 MY |
370 | help |
371 | This selects the TI OMAP High Speed Multimedia card Interface. | |
372 | If you have an omap2plus board with a Multimedia Card slot, | |
373 | say Y here. | |
374 | ||
375 | If unsure, say N. | |
376 | ||
27a4b3bc JJH |
377 | config MMC_OMAP_HS_ADMA |
378 | bool "ADMA support for OMAP HS MMC" | |
379 | depends on MMC_OMAP_HS && !OMAP34XX | |
380 | default y if !AM33XX | |
381 | help | |
382 | This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA | |
383 | controller). If supported by the hardware, selecting this option will | |
384 | increase performances. | |
385 | ||
6aca17c9 AF |
386 | config MMC_OMAP36XX_PINS |
387 | bool "Enable MMC1 on OMAP36xx/37xx" | |
388 | depends on OMAP34XX && MMC_OMAP_HS | |
389 | help | |
390 | This enables extended-drain in the MMC/SD/SDIO1I/O and | |
391 | GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129) | |
392 | specific to the OMAP36xx/37xx using MMC1 | |
393 | ||
394 | If you have a controller with this interface, say Y here. | |
395 | ||
396 | If unsure, say N. | |
397 | ||
2440b5bb TR |
398 | config HSMMC2_8BIT |
399 | bool "Enable 8-bit interface for eMMC (interface #2)" | |
400 | depends on MMC_OMAP_HS && (OMAP44XX || OMAP54XX || DRA7XX || AM33XX || \ | |
401 | AM43XX || ARCH_KEYSTONE) | |
402 | ||
f3dca4aa MV |
403 | config SH_MMCIF |
404 | bool "SuperH/Renesas ARM SoCs on-chip MMCIF host controller support" | |
f9aabd45 | 405 | depends on ARCH_RENESAS || SH |
f3dca4aa MV |
406 | help |
407 | Support for the on-chip MMCIF host controller on SuperH/Renesas ARM SoCs platform | |
408 | ||
a111bfbf | 409 | config MMC_UNIPHIER |
7dfddc09 MV |
410 | bool "UniPhier SD/MMC Host Controller support" |
411 | depends on ARCH_UNIPHIER | |
e7881d85 | 412 | depends on BLK && DM_MMC |
9c720c81 | 413 | depends on OF_CONTROL |
a111bfbf | 414 | help |
b24633df | 415 | This selects support for the Matsushita SD/MMC Host Controller on |
7dfddc09 MV |
416 | SocioNext UniPhier SoCs. |
417 | ||
418 | config RENESAS_SDHI | |
419 | bool "Renesas R-Car SD/MMC Host Controller support" | |
f9aabd45 | 420 | depends on ARCH_RENESAS |
7dfddc09 MV |
421 | depends on BLK && DM_MMC |
422 | depends on OF_CONTROL | |
d2661d8e | 423 | select BOUNCE_BUFFER |
7dfddc09 MV |
424 | help |
425 | This selects support for the Matsushita SD/MMC Host Controller on | |
426 | Renesas R-Car SoCs. | |
a111bfbf | 427 | |
c8a73a26 AG |
428 | config MMC_BCM2835 |
429 | bool "BCM2835 family custom SD/MMC Host Controller support" | |
430 | depends on ARCH_BCM283X | |
431 | depends on BLK && DM_MMC | |
432 | depends on OF_CONTROL | |
433 | default y | |
434 | help | |
435 | This selects support for the custom SD host controller in the BCM2835 | |
436 | family of devices. | |
437 | ||
438 | If you have a BCM2835 platform with SD or MMC devices, say Y here. | |
439 | ||
440 | If unsure, say N. | |
441 | ||
d7727139 PB |
442 | config JZ47XX_MMC |
443 | bool "Ingenic JZ47xx SD/MMC Host Controller support" | |
444 | depends on ARCH_JZ47XX | |
445 | help | |
446 | This selects support for the SD Card Controller on Ingenic JZ47xx SoCs. | |
447 | ||
a5995a5d | 448 | config MMC_SANDBOX |
f376a3cb | 449 | bool "Sandbox MMC support" |
a5995a5d | 450 | depends on SANDBOX |
e7881d85 | 451 | depends on BLK && DM_MMC && OF_CONTROL |
f376a3cb SG |
452 | help |
453 | This select a dummy sandbox MMC driver. At present this does nothing | |
454 | other than allow sandbox to be build with MMC support. This | |
455 | improves build coverage for sandbox and makes it easier to detect | |
456 | MMC build errors with sandbox. | |
457 | ||
e1ce61fb MY |
458 | config MMC_SDHCI |
459 | bool "Secure Digital Host Controller Interface support" | |
460 | help | |
461 | This selects the generic Secure Digital Host Controller Interface. | |
462 | It is used by manufacturers such as Texas Instruments(R), Ricoh(R) | |
463 | and Toshiba(R). Most controllers found in laptops are of this type. | |
464 | ||
465 | If you have a controller with this interface, say Y here. | |
466 | ||
467 | If unsure, say N. | |
468 | ||
3d3a74cc MY |
469 | config MMC_SDHCI_IO_ACCESSORS |
470 | bool | |
471 | depends on MMC_SDHCI | |
472 | help | |
473 | This is silent Kconfig symbol that is selected by the drivers that | |
474 | need to overwrite SDHCI IO memory accessors. | |
475 | ||
45a68fe2 MY |
476 | config MMC_SDHCI_SDMA |
477 | bool "Support SDHCI SDMA" | |
478 | depends on MMC_SDHCI | |
479 | help | |
480 | This enables support for the SDMA (Single Operation DMA) defined | |
481 | in the SD Host Controller Standard Specification Version 1.00 . | |
482 | ||
3cd664dc PG |
483 | config SPL_MMC_SDHCI_SDMA |
484 | bool "Support SDHCI SDMA in SPL" | |
485 | depends on SPL_MMC && MMC_SDHCI | |
486 | default y if MMC_SDHCI_SDMA | |
487 | help | |
488 | This enables support for the SDMA (Single Operation DMA) defined | |
489 | in the SD Host Controller Standard Specification Version 1.00 in SPL. | |
490 | ||
37cb626d FA |
491 | config MMC_SDHCI_ADMA |
492 | bool "Support SDHCI ADMA2" | |
493 | depends on MMC_SDHCI | |
4d6a773b | 494 | select MMC_SDHCI_ADMA_HELPERS |
37cb626d FA |
495 | help |
496 | This enables support for the ADMA (Advanced DMA) defined | |
497 | in the SD Host Controller Standard Specification Version 3.00 | |
498 | ||
499 | config SPL_MMC_SDHCI_ADMA | |
500 | bool "Support SDHCI ADMA2 in SPL" | |
b340199f | 501 | depends on SPL_MMC && MMC_SDHCI |
4d6a773b | 502 | select MMC_SDHCI_ADMA_HELPERS |
37cb626d FA |
503 | help |
504 | This enables support for the ADMA (Advanced DMA) defined | |
505 | in the SD Host Controller Standard Specification Version 3.00 in SPL. | |
506 | ||
5359cd11 GM |
507 | config MMC_SDHCI_ADMA_FORCE_32BIT |
508 | bool "Force 32 bit mode for ADMA on 64 bit platforms" | |
509 | help | |
510 | This forces SDHCI ADMA to be built for 32 bit descriptors, even | |
511 | on a 64 bit platform where they would otherwise be assumed to | |
512 | be 64 bits. This is necessary for certain hardware platforms | |
513 | that are 64-bit but include only 32-bit support within the selected | |
514 | SD host controller IP. | |
515 | ||
516 | config MMC_SDHCI_ADMA_64BIT | |
517 | bool "Use SHDCI ADMA with 64 bit descriptors" | |
518 | depends on !MMC_SDHCI_ADMA_FORCE_32BIT | |
519 | default y if DMA_ADDR_T_64BIT | |
520 | help | |
521 | This selects 64 bit descriptors for SDHCI ADMA. It is enabled by | |
522 | default on 64 bit systems, but can be disabled if one of these | |
523 | systems includes 32-bit ADMA. | |
524 | ||
b19512f1 CP |
525 | config FIXED_SDHCI_ALIGNED_BUFFER |
526 | hex "SDRAM address for fixed buffer" | |
527 | depends on SPL && MVEBU_SPL_BOOT_DEVICE_MMC | |
528 | default 0x00180000 | |
529 | help | |
530 | On the Marvell Armada 38x when the SPL runs it located in internal | |
531 | SRAM which is the L2 cache locked to memory. When the MMC buffers | |
532 | are located on the stack (or bss), the SDIO controller (SDHCI) can't | |
533 | write into this L2 cache memory. | |
534 | ||
535 | This specifies the address of a fixed buffer located in SDRAM that | |
536 | will be used for all SDHCI transfers in the SPL. | |
537 | ||
7764ee2e EJ |
538 | config MMC_SDHCI_ASPEED |
539 | bool "Aspeed SDHCI controller" | |
540 | depends on ARCH_ASPEED | |
541 | depends on DM_MMC | |
542 | depends on MMC_SDHCI | |
66900bc2 | 543 | select MISC |
7764ee2e EJ |
544 | help |
545 | Enables support for the Aspeed SDHCI 2.0 controller present on Aspeed | |
546 | SoCs. This device is compatible with SD 3.0 and/or MMC 4.3 | |
547 | specifications. On the AST2600, the device is also compatible with | |
548 | MMC 5.1 and eMMC 3.0. | |
549 | ||
dd3b64eb MY |
550 | config MMC_SDHCI_ATMEL |
551 | bool "Atmel SDHCI controller support" | |
552 | depends on ARCH_AT91 | |
e7881d85 | 553 | depends on DM_MMC && BLK && ARCH_AT91 |
dd3b64eb MY |
554 | depends on MMC_SDHCI |
555 | help | |
556 | This enables support for the Atmel SDHCI controller, which supports | |
557 | the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD | |
558 | Memory Card Specification V3.0, and the SDIO V3.0 specification. | |
559 | It is compliant with the SD Host Controller Standard V3.0 | |
560 | specification. | |
561 | ||
45a68fe2 MY |
562 | config MMC_SDHCI_BCM2835 |
563 | tristate "SDHCI support for the BCM2835 SD/MMC Controller" | |
564 | depends on ARCH_BCM283X | |
565 | depends on MMC_SDHCI | |
3d3a74cc | 566 | select MMC_SDHCI_IO_ACCESSORS |
45a68fe2 MY |
567 | help |
568 | This selects the BCM2835 SD/MMC controller. | |
569 | ||
570 | If you have a BCM2835 platform with SD or MMC devices, | |
571 | say Y here. | |
572 | ||
573 | If unsure, say N. | |
574 | ||
894c3ad2 TF |
575 | config MMC_SDHCI_BCMSTB |
576 | tristate "SDHCI support for the BCMSTB SD/MMC Controller" | |
577 | depends on MMC_SDHCI | |
578 | help | |
579 | This selects the Broadcom set-top box SD/MMC controller. | |
580 | ||
581 | If you have a BCMSTB platform with SD or MMC devices, | |
582 | say Y here. | |
583 | ||
584 | If unsure, say N. | |
585 | ||
e5e7a7c2 MY |
586 | config MMC_SDHCI_CADENCE |
587 | bool "SDHCI support for the Cadence SD/SDIO/eMMC controller" | |
e7881d85 | 588 | depends on BLK && DM_MMC |
e5e7a7c2 MY |
589 | depends on MMC_SDHCI |
590 | depends on OF_CONTROL | |
591 | help | |
592 | This selects the Cadence SD/SDIO/eMMC driver. | |
593 | ||
594 | If you have a controller with this interface, say Y here. | |
595 | ||
596 | If unsure, say N. | |
597 | ||
eb36f28f KL |
598 | config MMC_SDHCI_CV1800B |
599 | bool "SDHCI support for the CV1800B SD/SDIO/eMMC controller" | |
600 | depends on BLK && DM_MMC | |
601 | depends on MMC_SDHCI | |
602 | depends on OF_CONTROL | |
603 | help | |
604 | This selects the CV1800B SD/SDIO/eMMC driver. | |
605 | ||
606 | If you have a controller with this interface, | |
607 | say Y here. | |
608 | ||
609 | If unsure, say N. | |
610 | ||
3a1a0dfc FA |
611 | config MMC_SDHCI_AM654 |
612 | bool "SDHCI Controller on TI's Am654 devices" | |
aaa449fb LV |
613 | depends on ARCH_K3 |
614 | depends on MMC_SDHCI | |
615 | depends on DM_MMC && OF_CONTROL && BLK | |
ce142ff0 | 616 | depends on REGMAP |
27a87c83 | 617 | select MMC_SDHCI_IO_ACCESSORS |
aaa449fb | 618 | help |
3a1a0dfc FA |
619 | Support for Secure Digital Host Controller Interface (SDHCI) |
620 | controllers present on TI's AM654 SOCs. | |
aaa449fb | 621 | |
36645f45 AP |
622 | config MMC_SDHCI_IPROC |
623 | bool "SDHCI support for the iProc SD/MMC Controller" | |
624 | depends on MMC_SDHCI | |
625 | help | |
626 | This selects the iProc SD/MMC controller. | |
627 | ||
628 | If you have a Broadcom IPROC platform with SD or MMC devices, | |
4c9307b2 | 629 | say Y here. |
36645f45 AP |
630 | |
631 | If unsure, say N. | |
632 | ||
dadd43c1 | 633 | config MMC_SDHCI_F_SDH30 |
12fc8efe | 634 | bool "SDHCI support for Fujitsu Semiconductor/Socionext F_SDH30" |
dadd43c1 JB |
635 | depends on BLK && DM_MMC |
636 | depends on MMC_SDHCI | |
637 | help | |
638 | This selects the Secure Digital Host Controller Interface (SDHCI) | |
12fc8efe | 639 | Needed by some Fujitsu/Socionext SoC for MMC / SD / SDIO support. |
4c9307b2 | 640 | If you have a controller with this interface, say Y here. |
dadd43c1 JB |
641 | If unsure, say N. |
642 | ||
45a68fe2 MY |
643 | config MMC_SDHCI_KONA |
644 | bool "SDHCI support on Broadcom KONA platform" | |
645 | depends on MMC_SDHCI | |
646 | help | |
647 | This selects the Broadcom Kona Secure Digital Host Controller | |
648 | Interface(SDHCI) support. | |
649 | This is used in Broadcom mobile SoCs. | |
650 | ||
651 | If you have a controller with this interface, say Y here. | |
652 | ||
360c67d5 MY |
653 | config MMC_SDHCI_MSM |
654 | bool "Qualcomm SDHCI controller" | |
e7881d85 | 655 | depends on BLK && DM_MMC |
360c67d5 MY |
656 | depends on MMC_SDHCI |
657 | help | |
658 | Enables support for SDHCI 2.0 controller present on some Qualcomm | |
659 | Snapdragon devices. This device is compatible with eMMC v4.5 and | |
660 | SD 3.0 specifications. Both SD and eMMC devices are supported. | |
661 | Card-detect gpios are not supported. | |
662 | ||
45a68fe2 MY |
663 | config MMC_SDHCI_MV |
664 | bool "SDHCI support on Marvell platform" | |
665 | depends on ARCH_MVEBU | |
666 | depends on MMC_SDHCI | |
8af21b09 | 667 | depends on DM_MMC |
45a68fe2 MY |
668 | help |
669 | This selects the Secure Digital Host Controller Interface on | |
670 | Marvell platform. | |
671 | ||
672 | If you have a controller with this interface, say Y here. | |
673 | ||
674 | If unsure, say N. | |
675 | ||
3363a73d JL |
676 | config MMC_SDHCI_NPCM |
677 | bool "SDHCI support on Nuvoton NPCM device" | |
678 | depends on MMC_SDHCI | |
679 | depends on DM_MMC | |
680 | help | |
681 | This selects the Secure Digital Host Controller Interface (SDHCI) | |
682 | on Nuvoton NPCM device. | |
683 | ||
684 | If you have a controller with this interface, say Y here. | |
685 | ||
686 | If unsure, say N. | |
687 | ||
1b858770 MY |
688 | config MMC_SDHCI_PIC32 |
689 | bool "Microchip PIC32 on-chip SDHCI support" | |
690 | depends on DM_MMC && MACH_PIC32 | |
691 | depends on MMC_SDHCI | |
692 | help | |
693 | Support for Microchip PIC32 SDHCI controller. | |
694 | ||
facc8058 MY |
695 | config MMC_SDHCI_ROCKCHIP |
696 | bool "Arasan SDHCI controller for Rockchip support" | |
697 | depends on ARCH_ROCKCHIP | |
e7881d85 | 698 | depends on DM_MMC && BLK |
facc8058 MY |
699 | depends on MMC_SDHCI |
700 | help | |
701 | Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform | |
702 | ||
45a68fe2 MY |
703 | config MMC_SDHCI_S5P |
704 | bool "SDHCI support on Samsung S5P SoC" | |
705 | depends on MMC_SDHCI | |
706 | help | |
707 | This selects the Secure Digital Host Controller Interface (SDHCI) | |
708 | on Samsung S5P SoCs. | |
709 | ||
710 | If you have a controller with this interface, say Y here. | |
711 | ||
712 | If unsure, say N. | |
713 | ||
eee20f81 PC |
714 | config MMC_SDHCI_STI |
715 | bool "SDHCI support for STMicroelectronics SoC" | |
51cb23d4 | 716 | depends on MMC_SDHCI && OF_CONTROL |
eee20f81 PC |
717 | help |
718 | This selects the Secure Digital Host Controller Interface (SDHCI) | |
719 | on STMicroelectronics STiH410 SoC. | |
720 | ||
b6acb5f1 SR |
721 | config MMC_SDHCI_XENON |
722 | bool "SDHCI support for the Xenon SDHCI controller" | |
723 | depends on MMC_SDHCI && DM_MMC && OF_CONTROL | |
724 | help | |
725 | Support for Xenon SDHCI host controller on Marvell Armada 3700 | |
726 | 7k/8k ARM SoCs platforms | |
727 | ||
728 | If you have a controller with this interface, say Y here. | |
729 | ||
730 | If unsure, say N. | |
731 | ||
83b3248e FB |
732 | config MMC_SDHCI_TANGIER |
733 | bool "Tangier SDHCI controller support" | |
734 | depends on DM_MMC && BLK | |
735 | depends on MMC_SDHCI | |
736 | help | |
737 | This selects support for SDHCI controller on Tanginer | |
738 | SoC. Note that this controller does not sit on PCI bus and, | |
739 | hence, cannot be enumerated by standard PCI means. | |
740 | ||
741 | If you're using an Intel Tangier SoC (available on Intel | |
742 | Edison board), say Y here. | |
743 | ||
744 | If unsure, say N. | |
745 | ||
1d2c0506 MY |
746 | config MMC_SDHCI_TEGRA |
747 | bool "SDHCI platform support for the Tegra SD/MMC Controller" | |
18138ab2 | 748 | depends on ARCH_TEGRA |
2acc24fc | 749 | select BOUNCE_BUFFER |
1d2c0506 MY |
750 | default y |
751 | help | |
752 | This selects the Tegra SD/MMC controller. If you have a Tegra | |
753 | platform with SD or MMC devices, say Y here. | |
754 | ||
755 | If unsure, say N. | |
756 | ||
b78d97ea TP |
757 | config TEGRA124_MMC_DISABLE_EXT_LOOPBACK |
758 | bool "Disable external clock loopback" | |
759 | depends on MMC_SDHCI_TEGRA && TEGRA124 | |
760 | help | |
761 | Disable the external clock loopback and use the internal one on SDMMC3 | |
762 | as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits | |
763 | being set to 0xfffd according to the TRM. | |
764 | ||
765 | TODO(marcel.ziswiler@toradex.com): Move to device tree controlled | |
766 | approach once proper kernel integration made it mainline. | |
767 | ||
08aa0334 MY |
768 | config MMC_SDHCI_ZYNQ |
769 | bool "Arasan SDHCI controller support" | |
e7881d85 | 770 | depends on DM_MMC && OF_CONTROL && BLK |
08aa0334 MY |
771 | depends on MMC_SDHCI |
772 | help | |
773 | Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform | |
774 | ||
5dc5a53c VK |
775 | config ZYNQ_SDHCI_MAX_FREQ |
776 | int "Set the maximum frequency of the controller" | |
777 | depends on MMC_SDHCI_ZYNQ | |
778 | help | |
779 | Set the maximum frequency of the controller. | |
780 | ||
3ccc207a VK |
781 | config ZYNQ_SDHCI_MIN_FREQ |
782 | int "Set the minimum frequency of the controller" | |
783 | depends on MMC_SDHCI_ZYNQ | |
784 | default 0 | |
785 | help | |
786 | Set the minimum frequency of the controller. | |
787 | ||
d882f084 SDPP |
788 | config ZYNQ_HISPD_BROKEN |
789 | bool "High speed broken for Zynq SDHCI controller" | |
790 | depends on MMC_SDHCI_ZYNQ | |
791 | help | |
792 | Set if high speed mode is broken. | |
793 | ||
1d2c0506 MY |
794 | config MMC_SUNXI |
795 | bool "Allwinner sunxi SD/MMC Host Controller support" | |
818e1636 | 796 | depends on ARCH_SUNXI |
1d2c0506 MY |
797 | default y |
798 | help | |
799 | This selects support for the SD/MMC Host Controller on | |
800 | Allwinner sunxi SoCs. | |
801 | ||
de9b1771 MR |
802 | config MMC_SUNXI_HAS_NEW_MODE |
803 | bool | |
804 | depends on MMC_SUNXI | |
805 | ||
2a8882ec VK |
806 | config MMC_SUNXI_HAS_MODE_SWITCH |
807 | bool | |
808 | depends on MMC_SUNXI | |
809 | ||
d6b156eb TW |
810 | config MMC_PITON |
811 | bool "MMC support for OpenPiton SoC" | |
812 | depends on DM_MMC && BLK | |
813 | help | |
814 | This selects support for the SD host controller on OpenPiton SoC. | |
815 | Note that this SD controller directly exposes the contents of the | |
816 | SD card as memory mapped, so there is no manual configuration | |
817 | required | |
818 | ||
c86c0155 WY |
819 | config GENERIC_ATMEL_MCI |
820 | bool "Atmel Multimedia Card Interface support" | |
e7881d85 | 821 | depends on DM_MMC && BLK && ARCH_AT91 |
c86c0155 WY |
822 | help |
823 | This enables support for Atmel High Speed Multimedia Card Interface | |
824 | (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3, | |
825 | the SD Memory Card Specification V2.0, the SDIO V2.0 specification | |
826 | and CE-ATA V1.1. | |
827 | ||
b312c590 PC |
828 | config STM32_SDMMC2 |
829 | bool "STMicroelectronics STM32H7 SD/MMC Host Controller support" | |
53c656a8 | 830 | depends on DM_MMC && BLK && OF_CONTROL |
b312c590 PC |
831 | help |
832 | This selects support for the SD/MMC controller on STM32H7 SoCs. | |
833 | If you have a board based on such a SoC and with a SD/MMC slot, | |
4c9307b2 | 834 | say Y here. |
b312c590 | 835 | |
9f678ab1 RC |
836 | config FTSDC010 |
837 | bool "Ftsdc010 SD/MMC controller Support" | |
838 | help | |
839 | This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP. | |
840 | ||
095c9f35 RC |
841 | config FTSDC010_SDIO |
842 | bool "Support ftsdc010 sdio" | |
095c9f35 RC |
843 | depends on FTSDC010 |
844 | help | |
845 | This can enable ftsdc010 sdio function. | |
846 | ||
d24b6939 WG |
847 | config MMC_MTK |
848 | bool "MediaTek SD/MMC Card Interface support" | |
3c92a957 | 849 | depends on ARCH_MEDIATEK || ARCH_MTMIPS |
d24b6939 WG |
850 | depends on BLK && DM_MMC |
851 | depends on OF_CONTROL | |
852 | help | |
853 | This selects the MediaTek(R) Secure digital and Multimedia card Interface. | |
4c9307b2 | 854 | If you have a machine with a integrated SD/MMC card reader, say Y here. |
d24b6939 WG |
855 | This is needed if support for any SD/SDIO/MMC devices is required. |
856 | If unsure, say N. | |
857 | ||
e298c46a MY |
858 | endif |
859 | ||
3a581af2 TR |
860 | config FSL_SDHC_V2_3 |
861 | bool | |
862 | ||
07dea2e7 MS |
863 | config FSL_ESDHC |
864 | bool "Freescale/NXP eSDHC controller support" | |
3a581af2 TR |
865 | select FSL_SDHC_V2_3 if ARCH_P1010 || ARCH_BSC9131 || ARCH_BSC9132 \ |
866 | || ARCH_C29X | |
07dea2e7 | 867 | help |
fa33d207 YL |
868 | This selects support for the eSDHC (Enhanced Secure Digital Host |
869 | Controller) found on numerous Freescale/NXP SoCs. | |
870 | ||
361a422b MW |
871 | config FSL_ESDHC_SUPPORT_ADMA2 |
872 | bool "enable ADMA2 support" | |
873 | depends on FSL_ESDHC | |
874 | select MMC_SDHCI_ADMA_HELPERS | |
875 | help | |
876 | This enables support for the ADMA2 transfer mode. If supported by the | |
877 | eSDHC it will allow 64bit DMA addresses. | |
878 | ||
c927d658 YL |
879 | config FSL_ESDHC_33V_IO_RELIABILITY_WORKAROUND |
880 | bool "enable eSDHC workaround for 3.3v IO reliability issue" | |
881 | depends on FSL_ESDHC && DM_MMC | |
c927d658 YL |
882 | help |
883 | When eSDHC operates at 3.3v, damage can accumulate in an internal | |
884 | level shifter at a higher than expected rate. The faster the interface | |
885 | runs, the more damage accumulates. This issue now is found on LX2160A | |
886 | eSDHC1 for only SD card. The hardware workaround is recommended to use | |
887 | an on-board level shifter that is 1.8v on SoC side and 3.3v on SD card | |
888 | side. For boards without hardware workaround, this option could be | |
889 | enabled, ensuring 1.8v IO voltage and disabling eSDHC if no card. | |
890 | This option assumes no hotplug, and u-boot has to make all the way to | |
891 | to linux to use 1.8v UHS-I speed mode if has card. | |
892 | ||
ae7020b4 YL |
893 | config FSL_ESDHC_VS33_NOT_SUPPORT |
894 | bool "3.3V power supply not supported" | |
895 | depends on FSL_ESDHC | |
896 | help | |
897 | For eSDHC, power supply is through peripheral circuit. 3.3V support is | |
898 | common. Select this if 3.3V power supply not supported. | |
899 | ||
8f3f8ba9 T |
900 | config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH |
901 | int | |
902 | depends on FSL_ESDHC | |
903 | default 1 | |
904 | ||
7e7d04ae TR |
905 | config ESDHC_DETECT_QUIRK |
906 | bool "QIXIS-based eSDHC quirk detection" | |
907 | depends on FSL_ESDHC && FSL_QIXIS | |
908 | ||
fa33d207 YL |
909 | config FSL_ESDHC_IMX |
910 | bool "Freescale/NXP i.MX eSDHC controller support" | |
911 | help | |
912 | This selects support for the i.MX eSDHC (Enhanced Secure Digital Host | |
913 | Controller) found on numerous Freescale/NXP SoCs. | |
07dea2e7 | 914 | |
7ae1e6a3 TR |
915 | config SYS_FSL_ESDHC_HAS_DDR_MODE |
916 | bool "i.MX eSDHC controller supports DDR mode" | |
917 | depends on FSL_ESDHC_IMX | |
918 | ||
3f70bef1 AF |
919 | config FSL_USDHC |
920 | bool "Freescale/NXP i.MX uSDHC controller support" | |
c8671d27 | 921 | depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMX8ULP || IMX9 || IMXRT |
3f70bef1 AF |
922 | select FSL_ESDHC_IMX |
923 | help | |
924 | This enables the Ultra Secured Digital Host Controller enhancements | |
925 | ||
5388aa28 TR |
926 | config FSL_ESDHC_PIN_MUX |
927 | bool "Perform esdhc device-tree fixup" | |
928 | depends on (FSL_ESDHC || FSL_ESDHC_IMX) && OF_LIBFDT | |
929 | ||
72d42bad | 930 | endmenu |
c01e4a1a YS |
931 | |
932 | config SYS_FSL_ERRATUM_ESDHC111 | |
933 | bool | |
934 | ||
935 | config SYS_FSL_ERRATUM_ESDHC13 | |
936 | bool | |
937 | ||
938 | config SYS_FSL_ERRATUM_ESDHC135 | |
939 | bool | |
940 | ||
941 | config SYS_FSL_ERRATUM_ESDHC_A001 | |
942 | bool | |
bd7b8505 MW |
943 | |
944 | config SYS_FSL_ERRATUM_A011334 | |
945 | bool | |
d3b745f7 MW |
946 | |
947 | config SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND | |
948 | bool |