blob: 46513db0d6e36287a7b8c417ca76b920de15fee5 [file] [log] [blame]
Nobuhiro Iwamatsu3ec5f862014-12-17 08:03:00 +09001menu "MMC Host controller Support"
2
Maxime Ripard4f780742015-10-15 22:04:05 +02003config MMC
Masahiro Yamadaa5ed4be2016-12-07 22:10:26 +09004 bool "MMC/SD/SDIO card support"
5 default ARM || PPC || SANDBOX
Tom Rinie97402e2025-01-14 19:22:09 -06006 select DM_MMC
Maxime Ripard4f780742015-10-15 22:04:05 +02007 help
Masahiro Yamadaa5ed4be2016-12-07 22:10:26 +09008 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.
Maxime Ripard4f780742015-10-15 22:04:05 +020013
Jean-Jacques Hiblotd0531672018-01-04 15:23:32 +010014config 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
Jaehoon Chung48ad8272021-02-16 10:16:52 +090021config MMC_PWRSEQ
22 bool "HW reset support for eMMC"
Jonas Karlmanf2ceb752024-01-27 17:12:35 +000023 depends on PWRSEQ && DM_GPIO
Jaehoon Chung48ad8272021-02-16 10:16:52 +090024 help
Jonas Karlmanf2ceb752024-01-27 17:12:35 +000025 This select Hardware reset support aka pwrseq-emmc for eMMC
Jaehoon Chung48ad8272021-02-16 10:16:52 +090026 devices.
27
Jonas Karlmanf2ceb752024-01-27 17:12:35 +000028config 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
Jun Nieb4f4f6e2018-01-02 12:25:57 +080036config 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
Simon Glass1e8eb1b2015-06-23 15:38:48 -060041config DM_MMC
Tom Rinie97402e2025-01-14 19:22:09 -060042 bool
Simon Glass1e8eb1b2015-06-23 15:38:48 -060043 depends on DM
44 help
Tom Rinie97402e2025-01-14 19:22:09 -060045 This enables the MultiMediaCard (MMC) driver model uclass which
46 supports MMC and Secure Digital I/O (SDIO) cards. Both removable (SD,
47 micro-SD, etc.) and non-removable (e.g. eMMC chip) devices are
48 supported. These appear as block devices in U-Boot and can support
49 filesystems such as EXT4 and FAT.
Simon Glass1e8eb1b2015-06-23 15:38:48 -060050
Simon Glass5f4bd8c2017-07-04 13:31:19 -060051config SPL_DM_MMC
52 bool "Enable MMC controllers using Driver Model in SPL"
53 depends on SPL_DM && DM_MMC
Pali Rohár3c5ce032022-05-24 10:58:42 +020054 default n if ARCH_MVEBU && !MVEBU_SPL_BOOT_DEVICE_MMC
Simon Glass5f4bd8c2017-07-04 13:31:19 -060055 default y
Oleksandr Suvorov5c59a672023-08-23 18:45:45 +030056 select SPL_BLK
Simon Glass5f4bd8c2017-07-04 13:31:19 -060057 help
58 This enables the MultiMediaCard (MMC) uclass which supports MMC and
59 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
60 and non-removable (e.g. eMMC chip) devices are supported. These
61 appear as block devices in U-Boot and can support filesystems such
62 as EXT4 and FAT.
63
Simon Glass89e920a2024-09-20 09:24:36 +020064config TPL_DM_MMC
65 bool "Enable MMC controllers using Driver Model in TPL"
66 depends on TPL_DM && DM_MMC
67 select TPL_BLK
68 help
69 This enables the MultiMediaCard (MMC) uclass which supports MMC and
70 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
71 and non-removable (e.g. eMMC chip) devices are supported. These
72 appear as block devices in U-Boot and can support filesystems such
73 as EXT4 and FAT.
74
Masahiro Yamadae8b99722016-12-07 22:10:27 +090075if MMC
76
Michael Walle02016c62020-09-23 12:42:51 +020077config MMC_SDHCI_ADMA_HELPERS
78 bool
79
Bhargav Shaha1afe252019-07-08 04:10:48 +000080config MMC_SPI
81 bool "Support for SPI-based MMC controller"
Tom Rinie97402e2025-01-14 19:22:09 -060082 depends on DM_SPI
Bhargav Shaha1afe252019-07-08 04:10:48 +000083 help
84 This selects SPI-based MMC controllers.
85 If you have an MMC controller on a SPI bus, say Y here.
86
87 If unsure, say N.
88
89config MMC_SPI_CRC_ON
90 bool "Support CRC for SPI-based MMC controller"
91 depends on MMC_SPI
92 default y
93 help
94 This enables CRC for SPI-based MMC controllers.
95
96 If unsure, say N.
97
Patrice Chotardfcce4202017-10-23 10:57:31 +020098config ARM_PL180_MMCI
99 bool "ARM AMBA Multimedia Card Interface and compatible support"
Patrice Chotardfcce4202017-10-23 10:57:31 +0200100 help
101 This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
102 Interface (PL180, PL181 and compatible) support.
103 If you have an ARM(R) platform with a Multimedia Card slot,
Heinrich Schuchardtb8bcdeb2024-01-23 17:18:16 +0100104 say Y here.
Patrice Chotardfcce4202017-10-23 10:57:31 +0200105
Kishon Vijay Abraham I07baaa62017-09-21 16:30:10 +0200106config MMC_QUIRKS
107 bool "Enable quirks"
108 default y
109 help
110 Some cards and hosts may sometimes behave unexpectedly (quirks).
111 This option enable workarounds to handle those quirks. Some of them
Joel Johnson9cbee2c2020-01-11 09:08:15 -0700112 are enabled by default, other may require additional flags or are
Kishon Vijay Abraham I07baaa62017-09-21 16:30:10 +0200113 enabled by the host driver.
114
Tom Rini91735482022-10-28 20:27:05 -0400115config SYS_MMC_MAX_BLK_COUNT
116 int "Block count limit"
117 default 65535
118 help
119 The block count limit on MMC based devices. We default to 65535 due
120 to a 16bit register limit on some hardware.
121
Jean-Jacques Hiblot1d7769a2017-11-30 17:44:02 +0100122config MMC_HW_PARTITIONING
123 bool "Support for HW partitioning command(eMMC)"
124 default y
125 help
126 This adds a command and an API to do hardware partitioning on eMMC
127 devices.
128
Alex Kiernan60e0f612018-05-08 04:43:31 +0000129config SUPPORT_EMMC_RPMB
130 bool "Support eMMC replay protected memory block (RPMB)"
131 imply CMD_MMC_RPMB
Raymond Maoa571b982024-10-03 14:50:16 -0700132 select SHA256
Alex Kiernan60e0f612018-05-08 04:43:31 +0000133 help
134 Enable support for reading, writing and programming the
135 key for the Replay Protection Memory Block partition in eMMC.
136
Alex Kiernan00848772019-05-01 07:58:27 +0000137config SUPPORT_EMMC_BOOT
138 bool "Support some additional features of the eMMC boot partitions"
139 help
140 Enable support for eMMC boot partitions. This also enables
141 extensions within the mmc command.
142
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100143config MMC_IO_VOLTAGE
144 bool "Support IO voltage configuration"
145 help
146 IO voltage configuration allows selecting the voltage level of the IO
147 lines (not the level of main supply). This is required for UHS
148 support. For eMMC this not mandatory, but not enabling this option may
149 prevent the driver of using the faster modes.
150
151config SPL_MMC_IO_VOLTAGE
152 bool "Support IO voltage configuration in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400153 depends on SPL_MMC
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100154 help
155 IO voltage configuration allows selecting the voltage level of the IO
156 lines (not the level of main supply). This is required for UHS
157 support. For eMMC this not mandatory, but not enabling this option may
158 prevent the driver of using the faster modes.
159
Tom Rinidec7ea02024-05-20 13:35:03 -0600160config MMC_SUPPORTS_TUNING
161 bool
162
163config SPL_MMC_SUPPORTS_TUNING
164 bool
165
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100166config MMC_UHS_SUPPORT
167 bool "enable UHS support"
168 depends on MMC_IO_VOLTAGE
Tom Rinidec7ea02024-05-20 13:35:03 -0600169 select MMC_SUPPORTS_TUNING
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100170 help
171 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
172 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
173 frequency can go up to 208MHz (SDR104)
174
175config SPL_MMC_UHS_SUPPORT
176 bool "enable UHS support in SPL"
177 depends on SPL_MMC_IO_VOLTAGE
Tom Rinidec7ea02024-05-20 13:35:03 -0600178 select SPL_MMC_SUPPORTS_TUNING
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100179 help
180 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
181 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
182 frequency can go up to 208MHz (SDR104)
183
Peng Faneede83b2019-07-10 14:43:07 +0800184config MMC_HS400_ES_SUPPORT
185 bool "enable HS400 Enhanced Strobe support"
186 help
187 The HS400 Enhanced Strobe mode is support by some eMMC. The bus
188 frequency is up to 200MHz. This mode does not tune the IO.
189
190config SPL_MMC_HS400_ES_SUPPORT
191 bool "enable HS400 Enhanced Strobe support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400192 depends on SPL_MMC
Peng Faneede83b2019-07-10 14:43:07 +0800193 help
194 The HS400 Enhanced Strobe mode is support by some eMMC. The bus
195 frequency is up to 200MHz. This mode does not tune the IO.
196
Peng Fan46801252018-08-10 14:07:54 +0800197config MMC_HS400_SUPPORT
198 bool "enable HS400 support"
199 select MMC_HS200_SUPPORT
200 help
201 The HS400 mode is support by some eMMC. The bus frequency is up to
202 200MHz. This mode requires tuning the IO.
203
204config SPL_MMC_HS400_SUPPORT
205 bool "enable HS400 support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400206 depends on SPL_MMC
Faiz Abbas373954e2019-08-01 16:33:36 +0530207 select SPL_MMC_HS200_SUPPORT
Peng Fan46801252018-08-10 14:07:54 +0800208 help
209 The HS400 mode is support by some eMMC. The bus frequency is up to
210 200MHz. This mode requires tuning the IO.
211
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100212config MMC_HS200_SUPPORT
213 bool "enable HS200 support"
Tom Rinidec7ea02024-05-20 13:35:03 -0600214 select MMC_SUPPORTS_TUNING
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100215 help
216 The HS200 mode is support by some eMMC. The bus frequency is up to
217 200MHz. This mode requires tuning the IO.
218
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100219config SPL_MMC_HS200_SUPPORT
220 bool "enable HS200 support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400221 depends on SPL_MMC
Tom Rinidec7ea02024-05-20 13:35:03 -0600222 select SPL_MMC_SUPPORTS_TUNING
Jean-Jacques Hiblot6051e782017-11-30 17:44:01 +0100223 help
224 The HS200 mode is support by some eMMC. The bus frequency is up to
225 200MHz. This mode requires tuning the IO.
226
Jean-Jacques Hiblota94fb412017-09-21 16:29:53 +0200227config MMC_VERBOSE
228 bool "Output more information about the MMC"
229 default y
230 help
231 Enable the output of more information about the card such as the
232 operating mode.
233
Jaehoon Chunge2bf5802018-01-26 19:25:31 +0900234config MMC_TRACE
235 bool "MMC debugging"
Jaehoon Chunge2bf5802018-01-26 19:25:31 +0900236 help
237 This is an option for use by developer. Enable MMC core debugging.
238
239 If you need to see the MMC core message, say Y.
240
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900241config MMC_DAVINCI
242 bool "TI DAVINCI Multimedia Card Interface support"
243 depends on ARCH_DAVINCI
244 default y
245 help
246 This selects the TI DAVINCI Multimedia card Interface.
247 If you have an DAVINCI board with a Multimedia Card slot,
248 say Y here. If unsure, say N.
249
Masahiro Yamada7942e912017-01-10 13:32:04 +0900250config MMC_DW
251 bool "Synopsys DesignWare Memory Card Interface"
Philipp Tomsichb3027472018-11-30 22:13:25 +0100252 select BOUNCE_BUFFER
Masahiro Yamada7942e912017-01-10 13:32:04 +0900253 help
254 This selects support for the Synopsys DesignWare Mobile Storage IP
255 block, this provides host support for SD and MMC interfaces, in both
256 PIO, internal DMA mode and external DMA mode.
257
Arthur Li055e18e2020-02-20 18:19:35 -0800258config MMC_DW_CORTINA
259 bool "Cortina specific extensions for Synopsys DW Memory Card Interface"
Arthur Li055e18e2020-02-20 18:19:35 -0800260 depends on MMC_DW
Arthur Li055e18e2020-02-20 18:19:35 -0800261 help
262 This selects support for Cortina SoC specific extensions to the
263 Synopsys DesignWare Memory Card Interface driver. Select this option
264 for platforms based on Cortina CAxxxx Soc's.
265
Masahiro Yamadaf1ad7282017-01-10 13:32:05 +0900266config MMC_DW_EXYNOS
267 bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
268 depends on ARCH_EXYNOS
269 depends on MMC_DW
270 default y
271 help
272 This selects support for Samsung Exynos SoC specific extensions to the
273 Synopsys DesignWare Memory Card Interface driver. Select this option
274 for platforms based on Exynos4 and Exynos5 SoC's.
275
276config MMC_DW_K3
277 bool "K3 specific extensions for Synopsys DW Memory Card Interface"
278 depends on MMC_DW
279 help
280 This selects support for Hisilicon K3 SoC specific extensions to the
281 Synopsys DesignWare Memory Card Interface driver. Select this option
282 for platforms based on Hisilicon K3 SoC's.
283
Masahiro Yamadadc607f82017-01-10 13:32:03 +0900284config MMC_DW_ROCKCHIP
Simon Glass4ecaa6d2015-08-30 16:55:37 -0600285 bool "Rockchip SD/MMC controller support"
Tom Rinie97402e2025-01-14 19:22:09 -0600286 depends on OF_CONTROL
Masahiro Yamada7942e912017-01-10 13:32:04 +0900287 depends on MMC_DW
Simon Glass4ecaa6d2015-08-30 16:55:37 -0600288 help
289 This enables support for the Rockchip SD/MMM controller, which is
290 based on Designware IP. The device is compatible with at least
291 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
292 as removeable SD and micro-SD cards.
293
Masahiro Yamadaf1ad7282017-01-10 13:32:05 +0900294config MMC_DW_SOCFPGA
295 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
296 depends on ARCH_SOCFPGA
297 depends on MMC_DW
298 default y
299 help
300 This selects support for Altera SOCFPGA specific extensions to the
301 Synopsys DesignWare Memory Card Interface driver. Select this option
302 for platforms based on Altera SOCFPGA.
303
Eugeniy Paltsevb050c2c2019-02-25 18:35:28 +0300304config MMC_DW_SNPS
305 bool "Extensions for DW Memory Card Interface used in Synopsys ARC devboards"
306 depends on MMC_DW
Eugeniy Paltsevb050c2c2019-02-25 18:35:28 +0300307 depends on OF_CONTROL
308 depends on CLK
309 help
310 This selects support for Synopsys DesignWare Memory Card Interface driver
311 extensions used in various Synopsys ARC devboards.
312
Stefan Bosch22c12f72020-07-10 19:07:29 +0200313config NEXELL_DWMMC
314 bool "Nexell SD/MMC controller support"
315 depends on ARCH_NEXELL
316 depends on MMC_DW
Stefan Bosch22c12f72020-07-10 19:07:29 +0200317 depends on PINCTRL_NEXELL
318 default y
319
Carlo Caione20cab782017-04-12 20:30:42 +0200320config MMC_MESON_GX
321 bool "Meson GX EMMC controller support"
Tom Rinie97402e2025-01-14 19:22:09 -0600322 depends on ARCH_MESON
Carlo Caione20cab782017-04-12 20:30:42 +0200323 help
324 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
325
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900326config MMC_MXC
327 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
328 help
329 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
330 Multimedia Card Interface. If you have an i.MX or MPC512x platform
331 with a Multimedia Card slot, say Y here.
332
333 If unsure, say N.
334
Amit Singh Tomar347494c2021-11-28 17:02:24 +0530335config MMC_OWL
336 bool "Actions OWL Multimedia Card Interface support"
Tom Rinie97402e2025-01-14 19:22:09 -0600337 depends on ARCH_OWL
Amit Singh Tomar347494c2021-11-28 17:02:24 +0530338 help
339 This selects the OWL SD/MMC host controller found on board
340 based on Actions S700/S900 SoC.
341
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900342config MMC_MXS
343 bool "Freescale MXS Multimedia Card Interface support"
Adam Forda456d562018-02-06 08:34:45 -0600344 depends on MX23 || MX28 || MX6 || MX7
Philipp Tomsichb3027472018-11-30 22:13:25 +0100345 select BOUNCE_BUFFER
Adam Forda456d562018-02-06 08:34:45 -0600346 select APBH_DMA
347 select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
348 select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900349 help
350 This selects the Freescale SSP MMC controller found on MXS based
351 platforms like mx23/28.
352
353 If unsure, say N.
354
Felipe Balbiecf7dfd2017-02-20 14:24:13 +0300355config MMC_PCI
356 bool "Support for MMC controllers on PCI"
Bin Meng3d81f022021-02-15 20:01:44 +0800357 depends on MMC_SDHCI
Felipe Balbiecf7dfd2017-02-20 14:24:13 +0300358 help
359 This selects PCI-based MMC controllers.
360 If you have an MMC controller on a PCI bus, say Y here.
361
Suneel Garapati40e61332019-10-19 18:03:01 -0700362config MMC_OCTEONTX
Stefan Roesee06f5522021-03-12 09:48:25 +0100363 bool "Marvell Octeon Multimedia Card Interface support"
364 depends on (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
Tom Rinidec7ea02024-05-20 13:35:03 -0600365 select MMC_SUPPORTS_TUNING if ARCH_OCTEONTX2
Suneel Garapati40e61332019-10-19 18:03:01 -0700366 help
Stefan Roesee06f5522021-03-12 09:48:25 +0100367 This selects the Octeon Multimedia card Interface.
368 If you have an OcteonTX/TX2 or MIPS Octeon board with a
369 Multimedia Card slot, say Y here.
Suneel Garapati40e61332019-10-19 18:03:01 -0700370
Felipe Balbiecf7dfd2017-02-20 14:24:13 +0300371 If unsure, say N.
372
Harm Berntsen7b9e5af2021-03-30 10:19:41 +0200373config MVEBU_MMC
374 bool "Kirkwood MMC controller support"
Tom Rinie97402e2025-01-14 19:22:09 -0600375 depends on ARCH_KIRKWOOD
Harm Berntsen7b9e5af2021-03-30 10:19:41 +0200376 help
377 Support for MMC host controller on Kirkwood SoCs.
378 If you are on a Kirkwood architecture, say Y here.
379
380 If unsure, say N.
381
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900382config MMC_OMAP_HS
383 bool "TI OMAP High Speed Multimedia Card Interface support"
Tom Rinie97402e2025-01-14 19:22:09 -0600384 select DM_REGULATOR_PBIAS if DM_REGULATOR
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900385 help
386 This selects the TI OMAP High Speed Multimedia card Interface.
387 If you have an omap2plus board with a Multimedia Card slot,
388 say Y here.
389
390 If unsure, say N.
391
Jean-Jacques Hiblotcebf0592018-02-23 10:40:18 +0100392config MMC_OMAP_HS_ADMA
393 bool "ADMA support for OMAP HS MMC"
394 depends on MMC_OMAP_HS && !OMAP34XX
395 default y if !AM33XX
396 help
397 This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA
398 controller). If supported by the hardware, selecting this option will
399 increase performances.
400
Adam Fordef354962017-02-06 11:31:43 -0600401config MMC_OMAP36XX_PINS
402 bool "Enable MMC1 on OMAP36xx/37xx"
403 depends on OMAP34XX && MMC_OMAP_HS
404 help
405 This enables extended-drain in the MMC/SD/SDIO1I/O and
406 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
407 specific to the OMAP36xx/37xx using MMC1
408
409 If you have a controller with this interface, say Y here.
410
411 If unsure, say N.
412
Tom Riniaf816552022-12-02 16:42:16 -0500413config HSMMC2_8BIT
414 bool "Enable 8-bit interface for eMMC (interface #2)"
Tom Rini8c6b4372024-07-15 13:35:53 -0600415 depends on MMC_OMAP_HS && (OMAP54XX || DRA7XX || AM33XX || \
Tom Riniaf816552022-12-02 16:42:16 -0500416 AM43XX || ARCH_KEYSTONE)
417
Marek Vasuta8624ac2018-04-21 17:40:20 +0200418config SH_MMCIF
419 bool "SuperH/Renesas ARM SoCs on-chip MMCIF host controller support"
Marek Vasut6468c4c2024-02-27 17:05:55 +0100420 depends on ARCH_RENESAS || SH
Marek Vasuta8624ac2018-04-21 17:40:20 +0200421 help
422 Support for the on-chip MMCIF host controller on SuperH/Renesas ARM SoCs platform
423
Masahiro Yamadaa0cfcc02016-02-18 19:52:48 +0900424config MMC_UNIPHIER
Marek Vasut2883f742017-09-23 13:30:30 +0200425 bool "UniPhier SD/MMC Host Controller support"
426 depends on ARCH_UNIPHIER
Masahiro Yamadac2326532016-12-30 23:20:14 +0900427 depends on OF_CONTROL
Masahiro Yamadaa0cfcc02016-02-18 19:52:48 +0900428 help
Marek Vasut847ee0c2017-07-21 23:24:36 +0200429 This selects support for the Matsushita SD/MMC Host Controller on
Marek Vasut2883f742017-09-23 13:30:30 +0200430 SocioNext UniPhier SoCs.
431
432config RENESAS_SDHI
433 bool "Renesas R-Car SD/MMC Host Controller support"
Marek Vasut6468c4c2024-02-27 17:05:55 +0100434 depends on ARCH_RENESAS
Marek Vasut2883f742017-09-23 13:30:30 +0200435 depends on OF_CONTROL
Marek Vasut9f7baeb2020-04-04 12:45:04 +0200436 select BOUNCE_BUFFER
Marek Vasut2883f742017-09-23 13:30:30 +0200437 help
438 This selects support for the Matsushita SD/MMC Host Controller on
439 Renesas R-Car SoCs.
Masahiro Yamadaa0cfcc02016-02-18 19:52:48 +0900440
Alexander Graf044725f2018-01-23 18:05:22 +0100441config MMC_BCM2835
442 bool "BCM2835 family custom SD/MMC Host Controller support"
443 depends on ARCH_BCM283X
Alexander Graf044725f2018-01-23 18:05:22 +0100444 depends on OF_CONTROL
445 default y
446 help
447 This selects support for the custom SD host controller in the BCM2835
448 family of devices.
449
450 If you have a BCM2835 platform with SD or MMC devices, say Y here.
451
452 If unsure, say N.
453
Paul Burton8e142842018-12-16 19:25:20 -0300454config JZ47XX_MMC
455 bool "Ingenic JZ47xx SD/MMC Host Controller support"
456 depends on ARCH_JZ47XX
457 help
458 This selects support for the SD Card Controller on Ingenic JZ47xx SoCs.
459
Masahiro Yamada54f7cfc2017-01-30 19:46:50 +0900460config MMC_SANDBOX
Simon Glassf9eebac2016-05-01 13:52:42 -0600461 bool "Sandbox MMC support"
Masahiro Yamada54f7cfc2017-01-30 19:46:50 +0900462 depends on SANDBOX
Tom Rinie97402e2025-01-14 19:22:09 -0600463 depends on OF_CONTROL
Simon Glassf9eebac2016-05-01 13:52:42 -0600464 help
465 This select a dummy sandbox MMC driver. At present this does nothing
466 other than allow sandbox to be build with MMC support. This
467 improves build coverage for sandbox and makes it easier to detect
468 MMC build errors with sandbox.
469
Masahiro Yamada7db8c172016-12-07 22:10:28 +0900470config MMC_SDHCI
471 bool "Secure Digital Host Controller Interface support"
472 help
473 This selects the generic Secure Digital Host Controller Interface.
474 It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
475 and Toshiba(R). Most controllers found in laptops are of this type.
476
477 If you have a controller with this interface, say Y here.
478
479 If unsure, say N.
480
Masahiro Yamadabfd110f2016-12-07 22:10:30 +0900481config MMC_SDHCI_IO_ACCESSORS
482 bool
483 depends on MMC_SDHCI
484 help
485 This is silent Kconfig symbol that is selected by the drivers that
486 need to overwrite SDHCI IO memory accessors.
487
Masahiro Yamada124f6ce2016-12-07 22:10:29 +0900488config MMC_SDHCI_SDMA
489 bool "Support SDHCI SDMA"
490 depends on MMC_SDHCI
491 help
492 This enables support for the SDMA (Single Operation DMA) defined
493 in the SD Host Controller Standard Specification Version 1.00 .
494
Peter Geis4561ada2023-04-18 16:46:44 +0000495config SPL_MMC_SDHCI_SDMA
496 bool "Support SDHCI SDMA in SPL"
497 depends on SPL_MMC && MMC_SDHCI
498 default y if MMC_SDHCI_SDMA
499 help
500 This enables support for the SDMA (Single Operation DMA) defined
501 in the SD Host Controller Standard Specification Version 1.00 in SPL.
502
Faiz Abbas4c082a62019-04-16 23:06:58 +0530503config MMC_SDHCI_ADMA
504 bool "Support SDHCI ADMA2"
505 depends on MMC_SDHCI
Michael Walle02016c62020-09-23 12:42:51 +0200506 select MMC_SDHCI_ADMA_HELPERS
Faiz Abbas4c082a62019-04-16 23:06:58 +0530507 help
508 This enables support for the ADMA (Advanced DMA) defined
509 in the SD Host Controller Standard Specification Version 3.00
510
511config SPL_MMC_SDHCI_ADMA
512 bool "Support SDHCI ADMA2 in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400513 depends on SPL_MMC && MMC_SDHCI
Michael Walle02016c62020-09-23 12:42:51 +0200514 select MMC_SDHCI_ADMA_HELPERS
Faiz Abbas4c082a62019-04-16 23:06:58 +0530515 help
516 This enables support for the ADMA (Advanced DMA) defined
517 in the SD Host Controller Standard Specification Version 3.00 in SPL.
518
Greg Malysaeb92ef12024-03-25 22:28:08 -0400519config MMC_SDHCI_ADMA_FORCE_32BIT
520 bool "Force 32 bit mode for ADMA on 64 bit platforms"
521 help
522 This forces SDHCI ADMA to be built for 32 bit descriptors, even
523 on a 64 bit platform where they would otherwise be assumed to
524 be 64 bits. This is necessary for certain hardware platforms
525 that are 64-bit but include only 32-bit support within the selected
526 SD host controller IP.
527
528config MMC_SDHCI_ADMA_64BIT
529 bool "Use SHDCI ADMA with 64 bit descriptors"
530 depends on !MMC_SDHCI_ADMA_FORCE_32BIT
531 default y if DMA_ADDR_T_64BIT
532 help
533 This selects 64 bit descriptors for SDHCI ADMA. It is enabled by
534 default on 64 bit systems, but can be disabled if one of these
535 systems includes 32-bit ADMA.
536
Chris Packham7d5d5912022-05-29 11:13:17 +1200537config FIXED_SDHCI_ALIGNED_BUFFER
538 hex "SDRAM address for fixed buffer"
539 depends on SPL && MVEBU_SPL_BOOT_DEVICE_MMC
540 default 0x00180000
541 help
542 On the Marvell Armada 38x when the SPL runs it located in internal
543 SRAM which is the L2 cache locked to memory. When the MMC buffers
544 are located on the stack (or bss), the SDIO controller (SDHCI) can't
545 write into this L2 cache memory.
546
547 This specifies the address of a fixed buffer located in SDRAM that
548 will be used for all SDHCI transfers in the SPL.
549
Eddie Jamesc8a65812019-08-27 09:48:03 -0500550config MMC_SDHCI_ASPEED
551 bool "Aspeed SDHCI controller"
552 depends on ARCH_ASPEED
Eddie Jamesc8a65812019-08-27 09:48:03 -0500553 depends on MMC_SDHCI
Joel Stanley818a6b52022-06-23 18:35:34 +0930554 select MISC
Eddie Jamesc8a65812019-08-27 09:48:03 -0500555 help
556 Enables support for the Aspeed SDHCI 2.0 controller present on Aspeed
557 SoCs. This device is compatible with SD 3.0 and/or MMC 4.3
558 specifications. On the AST2600, the device is also compatible with
559 MMC 5.1 and eMMC 3.0.
560
Masahiro Yamada8c1a1322017-01-30 19:46:55 +0900561config MMC_SDHCI_ATMEL
562 bool "Atmel SDHCI controller support"
563 depends on ARCH_AT91
Tom Rinie97402e2025-01-14 19:22:09 -0600564 depends on ARCH_AT91
Masahiro Yamada8c1a1322017-01-30 19:46:55 +0900565 depends on MMC_SDHCI
566 help
567 This enables support for the Atmel SDHCI controller, which supports
568 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
569 Memory Card Specification V3.0, and the SDIO V3.0 specification.
570 It is compliant with the SD Host Controller Standard V3.0
571 specification.
572
Masahiro Yamada124f6ce2016-12-07 22:10:29 +0900573config MMC_SDHCI_BCM2835
574 tristate "SDHCI support for the BCM2835 SD/MMC Controller"
575 depends on ARCH_BCM283X
576 depends on MMC_SDHCI
Masahiro Yamadabfd110f2016-12-07 22:10:30 +0900577 select MMC_SDHCI_IO_ACCESSORS
Masahiro Yamada124f6ce2016-12-07 22:10:29 +0900578 help
579 This selects the BCM2835 SD/MMC controller.
580
581 If you have a BCM2835 platform with SD or MMC devices,
582 say Y here.
583
584 If unsure, say N.
585
Thomas Fitzsimmons919646d2018-06-08 17:59:45 -0400586config MMC_SDHCI_BCMSTB
587 tristate "SDHCI support for the BCMSTB SD/MMC Controller"
588 depends on MMC_SDHCI
589 help
590 This selects the Broadcom set-top box SD/MMC controller.
591
592 If you have a BCMSTB platform with SD or MMC devices,
593 say Y here.
594
595 If unsure, say N.
596
Masahiro Yamadadcbc4432016-12-30 22:41:46 +0900597config MMC_SDHCI_CADENCE
598 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
Masahiro Yamadadcbc4432016-12-30 22:41:46 +0900599 depends on MMC_SDHCI
600 depends on OF_CONTROL
601 help
602 This selects the Cadence SD/SDIO/eMMC driver.
603
604 If you have a controller with this interface, say Y here.
605
606 If unsure, say N.
607
Kongyang Liu331ee412024-03-10 01:51:55 +0800608config MMC_SDHCI_CV1800B
609 bool "SDHCI support for the CV1800B SD/SDIO/eMMC controller"
Kongyang Liu331ee412024-03-10 01:51:55 +0800610 depends on MMC_SDHCI
611 depends on OF_CONTROL
612 help
613 This selects the CV1800B SD/SDIO/eMMC driver.
614
615 If you have a controller with this interface,
616 say Y here.
617
618 If unsure, say N.
619
Faiz Abbasd8fb3092019-06-11 00:43:31 +0530620config MMC_SDHCI_AM654
621 bool "SDHCI Controller on TI's Am654 devices"
Lokesh Vutlabc9979f2018-08-27 15:57:54 +0530622 depends on ARCH_K3
623 depends on MMC_SDHCI
Tom Rinie97402e2025-01-14 19:22:09 -0600624 depends on OF_CONTROL
Faiz Abbase9aed582019-06-11 00:43:38 +0530625 depends on REGMAP
Faiz Abbas36c8c5c2021-02-04 15:10:54 +0530626 select MMC_SDHCI_IO_ACCESSORS
Lokesh Vutlabc9979f2018-08-27 15:57:54 +0530627 help
Faiz Abbasd8fb3092019-06-11 00:43:31 +0530628 Support for Secure Digital Host Controller Interface (SDHCI)
629 controllers present on TI's AM654 SOCs.
Lokesh Vutlabc9979f2018-08-27 15:57:54 +0530630
Arun Parameswaran2f4f34a2019-09-12 11:06:08 -0700631config MMC_SDHCI_IPROC
632 bool "SDHCI support for the iProc SD/MMC Controller"
633 depends on MMC_SDHCI
634 help
635 This selects the iProc SD/MMC controller.
636
637 If you have a Broadcom IPROC platform with SD or MMC devices,
Heinrich Schuchardtb8bcdeb2024-01-23 17:18:16 +0100638 say Y here.
Arun Parameswaran2f4f34a2019-09-12 11:06:08 -0700639
640 If unsure, say N.
641
Jassi Brar8188bda2021-06-04 18:44:16 +0900642config MMC_SDHCI_F_SDH30
Kunihiko Hayashi2cd5da62022-09-09 16:23:33 +0900643 bool "SDHCI support for Fujitsu Semiconductor/Socionext F_SDH30"
Jassi Brar8188bda2021-06-04 18:44:16 +0900644 depends on MMC_SDHCI
645 help
646 This selects the Secure Digital Host Controller Interface (SDHCI)
Kunihiko Hayashi2cd5da62022-09-09 16:23:33 +0900647 Needed by some Fujitsu/Socionext SoC for MMC / SD / SDIO support.
Heinrich Schuchardtb8bcdeb2024-01-23 17:18:16 +0100648 If you have a controller with this interface, say Y here.
Jassi Brar8188bda2021-06-04 18:44:16 +0900649 If unsure, say N.
650
Masahiro Yamada124f6ce2016-12-07 22:10:29 +0900651config MMC_SDHCI_KONA
652 bool "SDHCI support on Broadcom KONA platform"
653 depends on MMC_SDHCI
654 help
655 This selects the Broadcom Kona Secure Digital Host Controller
656 Interface(SDHCI) support.
657 This is used in Broadcom mobile SoCs.
658
659 If you have a controller with this interface, say Y here.
660
Masahiro Yamadaa1262eb2017-01-30 19:46:53 +0900661config MMC_SDHCI_MSM
662 bool "Qualcomm SDHCI controller"
Masahiro Yamadaa1262eb2017-01-30 19:46:53 +0900663 depends on MMC_SDHCI
664 help
665 Enables support for SDHCI 2.0 controller present on some Qualcomm
666 Snapdragon devices. This device is compatible with eMMC v4.5 and
667 SD 3.0 specifications. Both SD and eMMC devices are supported.
668 Card-detect gpios are not supported.
669
Masahiro Yamada124f6ce2016-12-07 22:10:29 +0900670config MMC_SDHCI_MV
671 bool "SDHCI support on Marvell platform"
672 depends on ARCH_MVEBU
673 depends on MMC_SDHCI
674 help
675 This selects the Secure Digital Host Controller Interface on
676 Marvell platform.
677
678 If you have a controller with this interface, say Y here.
679
680 If unsure, say N.
681
Jim Liu29cf22c2022-05-24 16:55:33 +0800682config MMC_SDHCI_NPCM
683 bool "SDHCI support on Nuvoton NPCM device"
684 depends on MMC_SDHCI
Jim Liu29cf22c2022-05-24 16:55:33 +0800685 help
686 This selects the Secure Digital Host Controller Interface (SDHCI)
687 on Nuvoton NPCM device.
688
689 If you have a controller with this interface, say Y here.
690
691 If unsure, say N.
692
Masahiro Yamadaf79df032017-01-30 19:46:54 +0900693config MMC_SDHCI_PIC32
694 bool "Microchip PIC32 on-chip SDHCI support"
Tom Rinie97402e2025-01-14 19:22:09 -0600695 depends on MACH_PIC32
Masahiro Yamadaf79df032017-01-30 19:46:54 +0900696 depends on MMC_SDHCI
697 help
698 Support for Microchip PIC32 SDHCI controller.
699
Masahiro Yamadababe0262017-01-30 19:46:52 +0900700config MMC_SDHCI_ROCKCHIP
701 bool "Arasan SDHCI controller for Rockchip support"
702 depends on ARCH_ROCKCHIP
Masahiro Yamadababe0262017-01-30 19:46:52 +0900703 depends on MMC_SDHCI
704 help
705 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
706
Masahiro Yamada124f6ce2016-12-07 22:10:29 +0900707config MMC_SDHCI_S5P
708 bool "SDHCI support on Samsung S5P SoC"
709 depends on MMC_SDHCI
710 help
711 This selects the Secure Digital Host Controller Interface (SDHCI)
712 on Samsung S5P SoCs.
713
714 If you have a controller with this interface, say Y here.
715
716 If unsure, say N.
717
Maksim Kiselev6d6a8902024-12-11 23:10:59 +0300718config MMC_SDHCI_SNPS
719 bool "Synopsys DesignWare SDHCI controller"
720 depends on MMC_SDHCI
Maksim Kiselev6d6a8902024-12-11 23:10:59 +0300721 help
722 Support for DesignWare SDHCI host controller on Alibaba TH1520 SoC.
723 This is a highly configurable and programmable, high performance
724 Mobile Storage Host Controller (MSHC) with AXI as the bus interface
725 for data transfer.
726
727 If unsure, say N.
728
Patrice Chotard2eea7d82017-02-21 13:37:09 +0100729config MMC_SDHCI_STI
730 bool "SDHCI support for STMicroelectronics SoC"
Patrice Chotardcdf6b572017-02-21 13:37:11 +0100731 depends on MMC_SDHCI && OF_CONTROL
Patrice Chotard2eea7d82017-02-21 13:37:09 +0100732 help
733 This selects the Secure Digital Host Controller Interface (SDHCI)
734 on STMicroelectronics STiH410 SoC.
735
Stefan Roese121fc562016-12-09 15:03:28 +0100736config MMC_SDHCI_XENON
737 bool "SDHCI support for the Xenon SDHCI controller"
Tom Rinie97402e2025-01-14 19:22:09 -0600738 depends on MMC_SDHCI && OF_CONTROL
Stefan Roese121fc562016-12-09 15:03:28 +0100739 help
740 Support for Xenon SDHCI host controller on Marvell Armada 3700
741 7k/8k ARM SoCs platforms
742
743 If you have a controller with this interface, say Y here.
744
745 If unsure, say N.
746
Felipe Balbib7567602017-02-20 14:24:14 +0300747config MMC_SDHCI_TANGIER
748 bool "Tangier SDHCI controller support"
Felipe Balbib7567602017-02-20 14:24:14 +0300749 depends on MMC_SDHCI
750 help
751 This selects support for SDHCI controller on Tanginer
752 SoC. Note that this controller does not sit on PCI bus and,
753 hence, cannot be enumerated by standard PCI means.
754
755 If you're using an Intel Tangier SoC (available on Intel
756 Edison board), say Y here.
757
758 If unsure, say N.
759
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900760config MMC_SDHCI_TEGRA
761 bool "SDHCI platform support for the Tegra SD/MMC Controller"
Trevor Woerner513f6402020-05-06 08:02:41 -0400762 depends on ARCH_TEGRA
Philipp Tomsichb3027472018-11-30 22:13:25 +0100763 select BOUNCE_BUFFER
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900764 default y
765 help
766 This selects the Tegra SD/MMC controller. If you have a Tegra
767 platform with SD or MMC devices, say Y here.
768
769 If unsure, say N.
770
Trent Piepho1bf56c32019-04-01 23:05:49 +0000771config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
772 bool "Disable external clock loopback"
773 depends on MMC_SDHCI_TEGRA && TEGRA124
774 help
775 Disable the external clock loopback and use the internal one on SDMMC3
776 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
777 being set to 0xfffd according to the TRM.
778
779 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
780 approach once proper kernel integration made it mainline.
781
Masahiro Yamada168c57d2017-01-30 19:46:51 +0900782config MMC_SDHCI_ZYNQ
783 bool "Arasan SDHCI controller support"
Tom Rinie97402e2025-01-14 19:22:09 -0600784 depends on OF_CONTROL
Masahiro Yamada168c57d2017-01-30 19:46:51 +0900785 depends on MMC_SDHCI
786 help
787 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
788
Vipul Kumar62548002018-02-28 15:53:28 +0530789config ZYNQ_SDHCI_MAX_FREQ
790 int "Set the maximum frequency of the controller"
791 depends on MMC_SDHCI_ZYNQ
792 help
793 Set the maximum frequency of the controller.
794
Vipul Kumardcc14e32018-02-28 15:53:29 +0530795config ZYNQ_SDHCI_MIN_FREQ
796 int "Set the minimum frequency of the controller"
797 depends on MMC_SDHCI_ZYNQ
798 default 0
799 help
800 Set the minimum frequency of the controller.
801
Siva Durga Prasad Paladugua9a3d002019-05-27 14:33:14 +0530802config ZYNQ_HISPD_BROKEN
803 bool "High speed broken for Zynq SDHCI controller"
804 depends on MMC_SDHCI_ZYNQ
805 help
806 Set if high speed mode is broken.
807
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900808config MMC_SUNXI
809 bool "Allwinner sunxi SD/MMC Host Controller support"
Samuel Holland6b0d0bc2022-04-10 00:13:34 -0500810 depends on ARCH_SUNXI
Masahiro Yamadab2c88682017-01-10 13:32:07 +0900811 default y
812 help
813 This selects support for the SD/MMC Host Controller on
814 Allwinner sunxi SoCs.
815
Maxime Ripard95e34702017-08-23 12:03:41 +0200816config MMC_SUNXI_HAS_NEW_MODE
817 bool
818 depends on MMC_SUNXI
819
Vasily Khoruzhickb198e2c2018-11-09 20:41:44 -0800820config MMC_SUNXI_HAS_MODE_SWITCH
821 bool
822 depends on MMC_SUNXI
823
Tianrui Wei8cfc7c52021-07-01 12:54:20 +0800824config MMC_PITON
825 bool "MMC support for OpenPiton SoC"
Tianrui Wei8cfc7c52021-07-01 12:54:20 +0800826 help
827 This selects support for the SD host controller on OpenPiton SoC.
828 Note that this SD controller directly exposes the contents of the
829 SD card as memory mapped, so there is no manual configuration
830 required
831
Wenyou Yang7a7a64c2017-04-13 10:29:22 +0800832config GENERIC_ATMEL_MCI
833 bool "Atmel Multimedia Card Interface support"
Tom Rinie97402e2025-01-14 19:22:09 -0600834 depends on ARCH_AT91
Wenyou Yang7a7a64c2017-04-13 10:29:22 +0800835 help
836 This enables support for Atmel High Speed Multimedia Card Interface
837 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
838 the SD Memory Card Specification V2.0, the SDIO V2.0 specification
839 and CE-ATA V1.1.
840
Patrice Chotardae19b812017-09-04 17:56:22 +0200841config STM32_SDMMC2
842 bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
Tom Rinie97402e2025-01-14 19:22:09 -0600843 depends on OF_CONTROL
Patrice Chotardae19b812017-09-04 17:56:22 +0200844 help
845 This selects support for the SD/MMC controller on STM32H7 SoCs.
846 If you have a board based on such a SoC and with a SD/MMC slot,
Heinrich Schuchardtb8bcdeb2024-01-23 17:18:16 +0100847 say Y here.
Patrice Chotardae19b812017-09-04 17:56:22 +0200848
Rick Chencbb52972017-11-14 14:47:09 +0800849config FTSDC010
850 bool "Ftsdc010 SD/MMC controller Support"
851 help
852 This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
853
Rick Chenc59a6fb2018-03-20 15:10:49 +0800854config FTSDC010_SDIO
855 bool "Support ftsdc010 sdio"
Rick Chenc59a6fb2018-03-20 15:10:49 +0800856 depends on FTSDC010
857 help
858 This can enable ftsdc010 sdio function.
859
developerdc5a9aa2018-11-15 10:08:04 +0800860config MMC_MTK
861 bool "MediaTek SD/MMC Card Interface support"
developer607faf72019-09-25 17:45:37 +0800862 depends on ARCH_MEDIATEK || ARCH_MTMIPS
developerdc5a9aa2018-11-15 10:08:04 +0800863 depends on OF_CONTROL
864 help
865 This selects the MediaTek(R) Secure digital and Multimedia card Interface.
Heinrich Schuchardtb8bcdeb2024-01-23 17:18:16 +0100866 If you have a machine with a integrated SD/MMC card reader, say Y here.
developerdc5a9aa2018-11-15 10:08:04 +0800867 This is needed if support for any SD/SDIO/MMC devices is required.
868 If unsure, say N.
869
Masahiro Yamadae8b99722016-12-07 22:10:27 +0900870endif
871
Tom Rini6fb86c12022-12-02 16:42:21 -0500872config FSL_SDHC_V2_3
873 bool
874
Mario Six41d7d972018-03-28 14:38:19 +0200875config FSL_ESDHC
876 bool "Freescale/NXP eSDHC controller support"
Tom Rini6fb86c12022-12-02 16:42:21 -0500877 select FSL_SDHC_V2_3 if ARCH_P1010 || ARCH_BSC9131 || ARCH_BSC9132 \
878 || ARCH_C29X
Mario Six41d7d972018-03-28 14:38:19 +0200879 help
Yangbo Lu982f4252019-06-21 11:42:27 +0800880 This selects support for the eSDHC (Enhanced Secure Digital Host
881 Controller) found on numerous Freescale/NXP SoCs.
882
Michael Walle081d4012020-10-12 10:07:14 +0200883config FSL_ESDHC_SUPPORT_ADMA2
884 bool "enable ADMA2 support"
885 depends on FSL_ESDHC
886 select MMC_SDHCI_ADMA_HELPERS
887 help
888 This enables support for the ADMA2 transfer mode. If supported by the
889 eSDHC it will allow 64bit DMA addresses.
890
Yangbo Luce884022020-05-19 11:06:44 +0800891config FSL_ESDHC_33V_IO_RELIABILITY_WORKAROUND
892 bool "enable eSDHC workaround for 3.3v IO reliability issue"
Tom Rinie97402e2025-01-14 19:22:09 -0600893 depends on FSL_ESDHC
Yangbo Luce884022020-05-19 11:06:44 +0800894 help
895 When eSDHC operates at 3.3v, damage can accumulate in an internal
896 level shifter at a higher than expected rate. The faster the interface
897 runs, the more damage accumulates. This issue now is found on LX2160A
898 eSDHC1 for only SD card. The hardware workaround is recommended to use
899 an on-board level shifter that is 1.8v on SoC side and 3.3v on SD card
900 side. For boards without hardware workaround, this option could be
901 enabled, ensuring 1.8v IO voltage and disabling eSDHC if no card.
902 This option assumes no hotplug, and u-boot has to make all the way to
903 to linux to use 1.8v UHS-I speed mode if has card.
904
Yangbo Lue087cd62021-06-03 10:51:17 +0800905config FSL_ESDHC_VS33_NOT_SUPPORT
906 bool "3.3V power supply not supported"
907 depends on FSL_ESDHC
908 help
909 For eSDHC, power supply is through peripheral circuit. 3.3V support is
910 common. Select this if 3.3V power supply not supported.
911
Pali Rohár3a672d62022-05-11 20:27:13 +0200912config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH
913 int
914 depends on FSL_ESDHC
915 default 1
916
Tom Rinibdd47f32022-06-16 14:04:38 -0400917config ESDHC_DETECT_QUIRK
918 bool "QIXIS-based eSDHC quirk detection"
919 depends on FSL_ESDHC && FSL_QIXIS
920
Yangbo Lu982f4252019-06-21 11:42:27 +0800921config FSL_ESDHC_IMX
922 bool "Freescale/NXP i.MX eSDHC controller support"
923 help
924 This selects support for the i.MX eSDHC (Enhanced Secure Digital Host
925 Controller) found on numerous Freescale/NXP SoCs.
Mario Six41d7d972018-03-28 14:38:19 +0200926
Tom Rinidad332b2022-07-31 21:08:25 -0400927config SYS_FSL_ESDHC_HAS_DDR_MODE
928 bool "i.MX eSDHC controller supports DDR mode"
929 depends on FSL_ESDHC_IMX
930
Adam Ford01836582019-08-14 07:23:43 -0500931config FSL_USDHC
932 bool "Freescale/NXP i.MX uSDHC controller support"
Peng Fan29b31a52022-07-26 16:40:44 +0800933 depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMX8ULP || IMX9 || IMXRT
Adam Ford01836582019-08-14 07:23:43 -0500934 select FSL_ESDHC_IMX
935 help
936 This enables the Ultra Secured Digital Host Controller enhancements
937
Tom Rinif8967f82022-12-02 16:42:22 -0500938config FSL_ESDHC_PIN_MUX
939 bool "Perform esdhc device-tree fixup"
940 depends on (FSL_ESDHC || FSL_ESDHC_IMX) && OF_LIBFDT
941
Nobuhiro Iwamatsu3ec5f862014-12-17 08:03:00 +0900942endmenu
York Sun097e3602016-12-28 08:43:42 -0800943
944config SYS_FSL_ERRATUM_ESDHC111
945 bool
946
947config SYS_FSL_ERRATUM_ESDHC13
948 bool
949
950config SYS_FSL_ERRATUM_ESDHC135
951 bool
952
953config SYS_FSL_ERRATUM_ESDHC_A001
954 bool
Michael Walle148dc612021-03-17 15:01:36 +0100955
956config SYS_FSL_ERRATUM_A011334
957 bool
Michael Walle7259dc52021-03-17 15:01:37 +0100958
959config SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
960 bool