blob: 17618c3bdcc186c9bdf9af50e2fce8206b64bb89 [file] [log] [blame]
Nobuhiro Iwamatsu72d42ba2014-12-17 08:03:00 +09001menu "MMC Host controller Support"
2
Maxime Ripard7a777f62015-10-15 22:04:05 +02003config MMC
Masahiro Yamadac2726992016-12-07 22:10:26 +09004 bool "MMC/SD/SDIO card support"
5 default ARM || PPC || SANDBOX
Tom Rinif7173fc2021-04-21 15:32:27 -04006 select DM_MMC if DM
Maxime Ripard7a777f62015-10-15 22:04:05 +02007 help
Masahiro Yamadac2726992016-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 Ripard7a777f62015-10-15 22:04:05 +020013
Jean-Jacques Hiblotd6400c32018-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 Chungcaee38a2021-02-16 10:16:52 +090021config MMC_PWRSEQ
22 bool "HW reset support for eMMC"
23 depends on PWRSEQ
24 help
25 Ths select Hardware reset support aka pwrseq-emmc for eMMC
26 devices.
27
Jun Nie2f516e42018-01-02 12:25:57 +080028config MMC_BROKEN_CD
29 bool "Poll for broken card detection case"
30 help
31 If card detection feature is broken, just poll to detect.
32
Simon Glasse7ecf7c2015-06-23 15:38:48 -060033config DM_MMC
34 bool "Enable MMC controllers using Driver Model"
35 depends on DM
Tom Rinif7173fc2021-04-21 15:32:27 -040036 select BLK
Simon Glasse7ecf7c2015-06-23 15:38:48 -060037 help
Robert P. J. Day62a3b7d2016-07-15 13:44:45 -040038 This enables the MultiMediaCard (MMC) uclass which supports MMC and
Simon Glasse7ecf7c2015-06-23 15:38:48 -060039 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
40 and non-removable (e.g. eMMC chip) devices are supported. These
41 appear as block devices in U-Boot and can support filesystems such
42 as EXT4 and FAT.
43
Simon Glassc4d660d2017-07-04 13:31:19 -060044config SPL_DM_MMC
45 bool "Enable MMC controllers using Driver Model in SPL"
46 depends on SPL_DM && DM_MMC
Pali Rohár35ed1762022-05-24 10:58:42 +020047 default n if ARCH_MVEBU && !MVEBU_SPL_BOOT_DEVICE_MMC
Simon Glassc4d660d2017-07-04 13:31:19 -060048 default y
Oleksandr Suvorov9b8ebd32023-08-23 18:45:45 +030049 select SPL_BLK
Simon Glassc4d660d2017-07-04 13:31:19 -060050 help
51 This enables the MultiMediaCard (MMC) uclass which supports MMC and
52 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
53 and non-removable (e.g. eMMC chip) devices are supported. These
54 appear as block devices in U-Boot and can support filesystems such
55 as EXT4 and FAT.
56
Masahiro Yamadae298c462016-12-07 22:10:27 +090057if MMC
58
Michael Walle4d6a7732020-09-23 12:42:51 +020059config MMC_SDHCI_ADMA_HELPERS
60 bool
61
Bhargav Shah05e35d42019-07-08 04:10:48 +000062config MMC_SPI
63 bool "Support for SPI-based MMC controller"
64 depends on DM_MMC && DM_SPI
65 help
66 This selects SPI-based MMC controllers.
67 If you have an MMC controller on a SPI bus, say Y here.
68
69 If unsure, say N.
70
71config MMC_SPI_CRC_ON
72 bool "Support CRC for SPI-based MMC controller"
73 depends on MMC_SPI
74 default y
75 help
76 This enables CRC for SPI-based MMC controllers.
77
78 If unsure, say N.
79
Patrice Chotard3c0dbed2017-10-23 10:57:31 +020080config ARM_PL180_MMCI
81 bool "ARM AMBA Multimedia Card Interface and compatible support"
Patrice Chotard3c0dbed2017-10-23 10:57:31 +020082 help
83 This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
84 Interface (PL180, PL181 and compatible) support.
85 If you have an ARM(R) platform with a Multimedia Card slot,
86 say Y or M here.
87
Kishon Vijay Abraham I83dc4222017-09-21 16:30:10 +020088config MMC_QUIRKS
89 bool "Enable quirks"
90 default y
91 help
92 Some cards and hosts may sometimes behave unexpectedly (quirks).
93 This option enable workarounds to handle those quirks. Some of them
Joel Johnson26632b72020-01-11 09:08:15 -070094 are enabled by default, other may require additional flags or are
Kishon Vijay Abraham I83dc4222017-09-21 16:30:10 +020095 enabled by the host driver.
96
Tom Rini75fc79e2022-10-28 20:27:05 -040097config SYS_MMC_MAX_BLK_COUNT
98 int "Block count limit"
99 default 65535
100 help
101 The block count limit on MMC based devices. We default to 65535 due
102 to a 16bit register limit on some hardware.
103
Jean-Jacques Hiblotcf177892017-11-30 17:44:02 +0100104config MMC_HW_PARTITIONING
105 bool "Support for HW partitioning command(eMMC)"
106 default y
107 help
108 This adds a command and an API to do hardware partitioning on eMMC
109 devices.
110
Alex Kiernan5a7b11e2018-05-08 04:43:31 +0000111config SUPPORT_EMMC_RPMB
112 bool "Support eMMC replay protected memory block (RPMB)"
113 imply CMD_MMC_RPMB
114 help
115 Enable support for reading, writing and programming the
116 key for the Replay Protection Memory Block partition in eMMC.
117
Alex Kiernan623de3f2019-05-01 07:58:27 +0000118config SUPPORT_EMMC_BOOT
119 bool "Support some additional features of the eMMC boot partitions"
120 help
121 Enable support for eMMC boot partitions. This also enables
122 extensions within the mmc command.
123
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100124config MMC_IO_VOLTAGE
125 bool "Support IO voltage configuration"
126 help
127 IO voltage configuration allows selecting the voltage level of the IO
128 lines (not the level of main supply). This is required for UHS
129 support. For eMMC this not mandatory, but not enabling this option may
130 prevent the driver of using the faster modes.
131
132config SPL_MMC_IO_VOLTAGE
133 bool "Support IO voltage configuration in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400134 depends on SPL_MMC
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100135 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
141config MMC_UHS_SUPPORT
142 bool "enable UHS support"
143 depends on MMC_IO_VOLTAGE
144 help
145 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
146 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
147 frequency can go up to 208MHz (SDR104)
148
149config SPL_MMC_UHS_SUPPORT
150 bool "enable UHS support in SPL"
151 depends on SPL_MMC_IO_VOLTAGE
152 help
153 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
154 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
155 frequency can go up to 208MHz (SDR104)
156
Peng Fan44acd492019-07-10 14:43:07 +0800157config MMC_HS400_ES_SUPPORT
158 bool "enable HS400 Enhanced Strobe support"
159 help
160 The HS400 Enhanced Strobe mode is support by some eMMC. The bus
161 frequency is up to 200MHz. This mode does not tune the IO.
162
163config SPL_MMC_HS400_ES_SUPPORT
164 bool "enable HS400 Enhanced Strobe support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400165 depends on SPL_MMC
Peng Fan44acd492019-07-10 14:43:07 +0800166 help
167 The HS400 Enhanced Strobe mode is support by some eMMC. The bus
168 frequency is up to 200MHz. This mode does not tune the IO.
169
Peng Fan3dd26262018-08-10 14:07:54 +0800170config MMC_HS400_SUPPORT
171 bool "enable HS400 support"
172 select MMC_HS200_SUPPORT
173 help
174 The HS400 mode is support by some eMMC. The bus frequency is up to
175 200MHz. This mode requires tuning the IO.
176
177config SPL_MMC_HS400_SUPPORT
178 bool "enable HS400 support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400179 depends on SPL_MMC
Faiz Abbas68b3e8b2019-08-01 16:33:36 +0530180 select SPL_MMC_HS200_SUPPORT
Peng Fan3dd26262018-08-10 14:07:54 +0800181 help
182 The HS400 mode is support by some eMMC. The bus frequency is up to
183 200MHz. This mode requires tuning the IO.
184
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100185config MMC_HS200_SUPPORT
186 bool "enable HS200 support"
187 help
188 The HS200 mode is support by some eMMC. The bus frequency is up to
189 200MHz. This mode requires tuning the IO.
190
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100191config SPL_MMC_HS200_SUPPORT
192 bool "enable HS200 support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400193 depends on SPL_MMC
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100194 help
195 The HS200 mode is support by some eMMC. The bus frequency is up to
196 200MHz. This mode requires tuning the IO.
197
Jean-Jacques Hiblot35f9e192017-09-21 16:29:53 +0200198config MMC_VERBOSE
199 bool "Output more information about the MMC"
200 default y
201 help
202 Enable the output of more information about the card such as the
203 operating mode.
204
Jaehoon Chung72b5a032018-01-26 19:25:31 +0900205config MMC_TRACE
206 bool "MMC debugging"
Jaehoon Chung72b5a032018-01-26 19:25:31 +0900207 help
208 This is an option for use by developer. Enable MMC core debugging.
209
210 If you need to see the MMC core message, say Y.
211
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900212config MMC_DAVINCI
213 bool "TI DAVINCI Multimedia Card Interface support"
214 depends on ARCH_DAVINCI
215 default y
216 help
217 This selects the TI DAVINCI Multimedia card Interface.
218 If you have an DAVINCI board with a Multimedia Card slot,
219 say Y here. If unsure, say N.
220
Masahiro Yamada55ed3b42017-01-10 13:32:04 +0900221config MMC_DW
222 bool "Synopsys DesignWare Memory Card Interface"
Philipp Tomsich2acc24f2018-11-30 22:13:25 +0100223 select BOUNCE_BUFFER
Masahiro Yamada55ed3b42017-01-10 13:32:04 +0900224 help
225 This selects support for the Synopsys DesignWare Mobile Storage IP
226 block, this provides host support for SD and MMC interfaces, in both
227 PIO, internal DMA mode and external DMA mode.
228
Arthur Lid55e4e72020-02-20 18:19:35 -0800229config MMC_DW_CORTINA
230 bool "Cortina specific extensions for Synopsys DW Memory Card Interface"
231 depends on DM_MMC
232 depends on MMC_DW
233 depends on BLK
Arthur Lid55e4e72020-02-20 18:19:35 -0800234 help
235 This selects support for Cortina SoC specific extensions to the
236 Synopsys DesignWare Memory Card Interface driver. Select this option
237 for platforms based on Cortina CAxxxx Soc's.
238
Masahiro Yamadaae4c81e2017-01-10 13:32:05 +0900239config MMC_DW_EXYNOS
240 bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
241 depends on ARCH_EXYNOS
242 depends on MMC_DW
243 default y
244 help
245 This selects support for Samsung Exynos SoC specific extensions to the
246 Synopsys DesignWare Memory Card Interface driver. Select this option
247 for platforms based on Exynos4 and Exynos5 SoC's.
248
249config MMC_DW_K3
250 bool "K3 specific extensions for Synopsys DW Memory Card Interface"
251 depends on MMC_DW
252 help
253 This selects support for Hisilicon K3 SoC specific extensions to the
254 Synopsys DesignWare Memory Card Interface driver. Select this option
255 for platforms based on Hisilicon K3 SoC's.
256
Masahiro Yamadafed44082017-01-10 13:32:03 +0900257config MMC_DW_ROCKCHIP
Simon Glassa8cb4fb2015-08-30 16:55:37 -0600258 bool "Rockchip SD/MMC controller support"
259 depends on DM_MMC && OF_CONTROL
Masahiro Yamada55ed3b42017-01-10 13:32:04 +0900260 depends on MMC_DW
Simon Glassa8cb4fb2015-08-30 16:55:37 -0600261 help
262 This enables support for the Rockchip SD/MMM controller, which is
263 based on Designware IP. The device is compatible with at least
264 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
265 as removeable SD and micro-SD cards.
266
Masahiro Yamadaae4c81e2017-01-10 13:32:05 +0900267config MMC_DW_SOCFPGA
268 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
269 depends on ARCH_SOCFPGA
270 depends on MMC_DW
271 default y
272 help
273 This selects support for Altera SOCFPGA specific extensions to the
274 Synopsys DesignWare Memory Card Interface driver. Select this option
275 for platforms based on Altera SOCFPGA.
276
Eugeniy Paltsev15736e22019-02-25 18:35:28 +0300277config MMC_DW_SNPS
278 bool "Extensions for DW Memory Card Interface used in Synopsys ARC devboards"
279 depends on MMC_DW
280 depends on DM_MMC
281 depends on OF_CONTROL
282 depends on CLK
283 help
284 This selects support for Synopsys DesignWare Memory Card Interface driver
285 extensions used in various Synopsys ARC devboards.
286
Stefan Bosch84083182020-07-10 19:07:29 +0200287config NEXELL_DWMMC
288 bool "Nexell SD/MMC controller support"
289 depends on ARCH_NEXELL
290 depends on MMC_DW
291 depends on DM_MMC
292 depends on PINCTRL_NEXELL
293 default y
294
Carlo Caione93738622017-04-12 20:30:42 +0200295config MMC_MESON_GX
296 bool "Meson GX EMMC controller support"
Simon Glasse7881d82017-07-29 11:35:31 -0600297 depends on DM_MMC && BLK && ARCH_MESON
Carlo Caione93738622017-04-12 20:30:42 +0200298 help
299 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
300
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900301config MMC_MXC
302 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
303 help
304 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
305 Multimedia Card Interface. If you have an i.MX or MPC512x platform
306 with a Multimedia Card slot, say Y here.
307
308 If unsure, say N.
309
Amit Singh Tomar57a91c32021-11-28 17:02:24 +0530310config MMC_OWL
311 bool "Actions OWL Multimedia Card Interface support"
312 depends on ARCH_OWL && DM_MMC && BLK
313 help
314 This selects the OWL SD/MMC host controller found on board
315 based on Actions S700/S900 SoC.
316
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900317config MMC_MXS
318 bool "Freescale MXS Multimedia Card Interface support"
Adam Ford99bec1a2018-02-06 08:34:45 -0600319 depends on MX23 || MX28 || MX6 || MX7
Philipp Tomsich2acc24f2018-11-30 22:13:25 +0100320 select BOUNCE_BUFFER
Adam Ford99bec1a2018-02-06 08:34:45 -0600321 select APBH_DMA
322 select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
323 select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900324 help
325 This selects the Freescale SSP MMC controller found on MXS based
326 platforms like mx23/28.
327
328 If unsure, say N.
329
Felipe Balbib706b1c2017-02-20 14:24:13 +0300330config MMC_PCI
331 bool "Support for MMC controllers on PCI"
Bin Meng511dcc32021-02-15 20:01:44 +0800332 depends on MMC_SDHCI
Felipe Balbib706b1c2017-02-20 14:24:13 +0300333 help
334 This selects PCI-based MMC controllers.
335 If you have an MMC controller on a PCI bus, say Y here.
336
Suneel Garapati70859892019-10-19 18:03:01 -0700337config MMC_OCTEONTX
Stefan Roesef9bb0ba2021-03-12 09:48:25 +0100338 bool "Marvell Octeon Multimedia Card Interface support"
339 depends on (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
Suneel Garapati70859892019-10-19 18:03:01 -0700340 depends on DM_MMC
341 help
Stefan Roesef9bb0ba2021-03-12 09:48:25 +0100342 This selects the Octeon Multimedia card Interface.
343 If you have an OcteonTX/TX2 or MIPS Octeon board with a
344 Multimedia Card slot, say Y here.
Suneel Garapati70859892019-10-19 18:03:01 -0700345
Felipe Balbib706b1c2017-02-20 14:24:13 +0300346 If unsure, say N.
347
Harm Berntsenc689ae02021-03-30 10:19:41 +0200348config MVEBU_MMC
349 bool "Kirkwood MMC controller support"
350 depends on DM_MMC && BLK && ARCH_KIRKWOOD
351 help
352 Support for MMC host controller on Kirkwood SoCs.
353 If you are on a Kirkwood architecture, say Y here.
354
355 If unsure, say N.
356
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900357config MMC_OMAP_HS
358 bool "TI OMAP High Speed Multimedia Card Interface support"
Simon Glasse7881d82017-07-29 11:35:31 -0600359 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
Jean-Jacques Hiblot8ff77632017-09-21 17:03:10 +0200360 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900361 help
362 This selects the TI OMAP High Speed Multimedia card Interface.
363 If you have an omap2plus board with a Multimedia Card slot,
364 say Y here.
365
366 If unsure, say N.
367
Jean-Jacques Hiblot27a4b3b2018-02-23 10:40:18 +0100368config MMC_OMAP_HS_ADMA
369 bool "ADMA support for OMAP HS MMC"
370 depends on MMC_OMAP_HS && !OMAP34XX
371 default y if !AM33XX
372 help
373 This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA
374 controller). If supported by the hardware, selecting this option will
375 increase performances.
376
Adam Ford6aca17c2017-02-06 11:31:43 -0600377config MMC_OMAP36XX_PINS
378 bool "Enable MMC1 on OMAP36xx/37xx"
379 depends on OMAP34XX && MMC_OMAP_HS
380 help
381 This enables extended-drain in the MMC/SD/SDIO1I/O and
382 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
383 specific to the OMAP36xx/37xx using MMC1
384
385 If you have a controller with this interface, say Y here.
386
387 If unsure, say N.
388
Tom Rini2440b5b2022-12-02 16:42:16 -0500389config HSMMC2_8BIT
390 bool "Enable 8-bit interface for eMMC (interface #2)"
391 depends on MMC_OMAP_HS && (OMAP44XX || OMAP54XX || DRA7XX || AM33XX || \
392 AM43XX || ARCH_KEYSTONE)
393
Marek Vasutf3dca4a2018-04-21 17:40:20 +0200394config SH_MMCIF
395 bool "SuperH/Renesas ARM SoCs on-chip MMCIF host controller support"
396 depends on ARCH_RMOBILE || SH
397 help
398 Support for the on-chip MMCIF host controller on SuperH/Renesas ARM SoCs platform
399
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900400config MMC_UNIPHIER
Marek Vasut7dfddc02017-09-23 13:30:30 +0200401 bool "UniPhier SD/MMC Host Controller support"
402 depends on ARCH_UNIPHIER
Simon Glasse7881d82017-07-29 11:35:31 -0600403 depends on BLK && DM_MMC
Masahiro Yamada9c720c82016-12-30 23:20:14 +0900404 depends on OF_CONTROL
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900405 help
Marek Vasutb24633d2017-07-21 23:24:36 +0200406 This selects support for the Matsushita SD/MMC Host Controller on
Marek Vasut7dfddc02017-09-23 13:30:30 +0200407 SocioNext UniPhier SoCs.
408
409config RENESAS_SDHI
410 bool "Renesas R-Car SD/MMC Host Controller support"
411 depends on ARCH_RMOBILE
412 depends on BLK && DM_MMC
413 depends on OF_CONTROL
Marek Vasutd2661d82020-04-04 12:45:04 +0200414 select BOUNCE_BUFFER
Marek Vasut7dfddc02017-09-23 13:30:30 +0200415 help
416 This selects support for the Matsushita SD/MMC Host Controller on
417 Renesas R-Car SoCs.
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900418
Alexander Grafc8a73a22018-01-23 18:05:22 +0100419config MMC_BCM2835
420 bool "BCM2835 family custom SD/MMC Host Controller support"
421 depends on ARCH_BCM283X
422 depends on BLK && DM_MMC
423 depends on OF_CONTROL
424 default y
425 help
426 This selects support for the custom SD host controller in the BCM2835
427 family of devices.
428
429 If you have a BCM2835 platform with SD or MMC devices, say Y here.
430
431 If unsure, say N.
432
Paul Burtond7727132018-12-16 19:25:20 -0300433config JZ47XX_MMC
434 bool "Ingenic JZ47xx SD/MMC Host Controller support"
435 depends on ARCH_JZ47XX
436 help
437 This selects support for the SD Card Controller on Ingenic JZ47xx SoCs.
438
Masahiro Yamadaa5995a52017-01-30 19:46:50 +0900439config MMC_SANDBOX
Simon Glassf376a3c2016-05-01 13:52:42 -0600440 bool "Sandbox MMC support"
Masahiro Yamadaa5995a52017-01-30 19:46:50 +0900441 depends on SANDBOX
Simon Glasse7881d82017-07-29 11:35:31 -0600442 depends on BLK && DM_MMC && OF_CONTROL
Simon Glassf376a3c2016-05-01 13:52:42 -0600443 help
444 This select a dummy sandbox MMC driver. At present this does nothing
445 other than allow sandbox to be build with MMC support. This
446 improves build coverage for sandbox and makes it easier to detect
447 MMC build errors with sandbox.
448
Masahiro Yamadae1ce61f2016-12-07 22:10:28 +0900449config MMC_SDHCI
450 bool "Secure Digital Host Controller Interface support"
451 help
452 This selects the generic Secure Digital Host Controller Interface.
453 It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
454 and Toshiba(R). Most controllers found in laptops are of this type.
455
456 If you have a controller with this interface, say Y here.
457
458 If unsure, say N.
459
Masahiro Yamada3d3a74c2016-12-07 22:10:30 +0900460config MMC_SDHCI_IO_ACCESSORS
461 bool
462 depends on MMC_SDHCI
463 help
464 This is silent Kconfig symbol that is selected by the drivers that
465 need to overwrite SDHCI IO memory accessors.
466
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900467config MMC_SDHCI_SDMA
468 bool "Support SDHCI SDMA"
469 depends on MMC_SDHCI
470 help
471 This enables support for the SDMA (Single Operation DMA) defined
472 in the SD Host Controller Standard Specification Version 1.00 .
473
Peter Geis3cd664d2023-04-18 16:46:44 +0000474config SPL_MMC_SDHCI_SDMA
475 bool "Support SDHCI SDMA in SPL"
476 depends on SPL_MMC && MMC_SDHCI
477 default y if MMC_SDHCI_SDMA
478 help
479 This enables support for the SDMA (Single Operation DMA) defined
480 in the SD Host Controller Standard Specification Version 1.00 in SPL.
481
Faiz Abbas37cb6262019-04-16 23:06:58 +0530482config MMC_SDHCI_ADMA
483 bool "Support SDHCI ADMA2"
484 depends on MMC_SDHCI
Michael Walle4d6a7732020-09-23 12:42:51 +0200485 select MMC_SDHCI_ADMA_HELPERS
Faiz Abbas37cb6262019-04-16 23:06:58 +0530486 help
487 This enables support for the ADMA (Advanced DMA) defined
488 in the SD Host Controller Standard Specification Version 3.00
489
490config SPL_MMC_SDHCI_ADMA
491 bool "Support SDHCI ADMA2 in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400492 depends on SPL_MMC && MMC_SDHCI
Michael Walle4d6a7732020-09-23 12:42:51 +0200493 select MMC_SDHCI_ADMA_HELPERS
Faiz Abbas37cb6262019-04-16 23:06:58 +0530494 help
495 This enables support for the ADMA (Advanced DMA) defined
496 in the SD Host Controller Standard Specification Version 3.00 in SPL.
497
Chris Packhamb19512f2022-05-29 11:13:17 +1200498config FIXED_SDHCI_ALIGNED_BUFFER
499 hex "SDRAM address for fixed buffer"
500 depends on SPL && MVEBU_SPL_BOOT_DEVICE_MMC
501 default 0x00180000
502 help
503 On the Marvell Armada 38x when the SPL runs it located in internal
504 SRAM which is the L2 cache locked to memory. When the MMC buffers
505 are located on the stack (or bss), the SDIO controller (SDHCI) can't
506 write into this L2 cache memory.
507
508 This specifies the address of a fixed buffer located in SDRAM that
509 will be used for all SDHCI transfers in the SPL.
510
Eddie James7764ee22019-08-27 09:48:03 -0500511config MMC_SDHCI_ASPEED
512 bool "Aspeed SDHCI controller"
513 depends on ARCH_ASPEED
514 depends on DM_MMC
515 depends on MMC_SDHCI
Joel Stanley66900bc2022-06-23 18:35:34 +0930516 select MISC
Eddie James7764ee22019-08-27 09:48:03 -0500517 help
518 Enables support for the Aspeed SDHCI 2.0 controller present on Aspeed
519 SoCs. This device is compatible with SD 3.0 and/or MMC 4.3
520 specifications. On the AST2600, the device is also compatible with
521 MMC 5.1 and eMMC 3.0.
522
Masahiro Yamadadd3b64e2017-01-30 19:46:55 +0900523config MMC_SDHCI_ATMEL
524 bool "Atmel SDHCI controller support"
525 depends on ARCH_AT91
Simon Glasse7881d82017-07-29 11:35:31 -0600526 depends on DM_MMC && BLK && ARCH_AT91
Masahiro Yamadadd3b64e2017-01-30 19:46:55 +0900527 depends on MMC_SDHCI
528 help
529 This enables support for the Atmel SDHCI controller, which supports
530 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
531 Memory Card Specification V3.0, and the SDIO V3.0 specification.
532 It is compliant with the SD Host Controller Standard V3.0
533 specification.
534
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900535config MMC_SDHCI_BCM2835
536 tristate "SDHCI support for the BCM2835 SD/MMC Controller"
537 depends on ARCH_BCM283X
538 depends on MMC_SDHCI
Masahiro Yamada3d3a74c2016-12-07 22:10:30 +0900539 select MMC_SDHCI_IO_ACCESSORS
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900540 help
541 This selects the BCM2835 SD/MMC controller.
542
543 If you have a BCM2835 platform with SD or MMC devices,
544 say Y here.
545
546 If unsure, say N.
547
Thomas Fitzsimmons894c3ad2018-06-08 17:59:45 -0400548config MMC_SDHCI_BCMSTB
549 tristate "SDHCI support for the BCMSTB SD/MMC Controller"
550 depends on MMC_SDHCI
551 help
552 This selects the Broadcom set-top box SD/MMC controller.
553
554 If you have a BCMSTB platform with SD or MMC devices,
555 say Y here.
556
557 If unsure, say N.
558
Masahiro Yamadae5e7a7c2016-12-30 22:41:46 +0900559config MMC_SDHCI_CADENCE
560 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
Simon Glasse7881d82017-07-29 11:35:31 -0600561 depends on BLK && DM_MMC
Masahiro Yamadae5e7a7c2016-12-30 22:41:46 +0900562 depends on MMC_SDHCI
563 depends on OF_CONTROL
564 help
565 This selects the Cadence SD/SDIO/eMMC driver.
566
567 If you have a controller with this interface, say Y here.
568
569 If unsure, say N.
570
Faiz Abbas3a1a0df2019-06-11 00:43:31 +0530571config MMC_SDHCI_AM654
572 bool "SDHCI Controller on TI's Am654 devices"
Lokesh Vutlaaaa449f2018-08-27 15:57:54 +0530573 depends on ARCH_K3
574 depends on MMC_SDHCI
575 depends on DM_MMC && OF_CONTROL && BLK
Faiz Abbasce142ff2019-06-11 00:43:38 +0530576 depends on REGMAP
Faiz Abbas27a87c82021-02-04 15:10:54 +0530577 select MMC_SDHCI_IO_ACCESSORS
Lokesh Vutlaaaa449f2018-08-27 15:57:54 +0530578 help
Faiz Abbas3a1a0df2019-06-11 00:43:31 +0530579 Support for Secure Digital Host Controller Interface (SDHCI)
580 controllers present on TI's AM654 SOCs.
Lokesh Vutlaaaa449f2018-08-27 15:57:54 +0530581
Arun Parameswaran36645f42019-09-12 11:06:08 -0700582config MMC_SDHCI_IPROC
583 bool "SDHCI support for the iProc SD/MMC Controller"
584 depends on MMC_SDHCI
585 help
586 This selects the iProc SD/MMC controller.
587
588 If you have a Broadcom IPROC platform with SD or MMC devices,
589 say Y or M here.
590
591 If unsure, say N.
592
Jassi Brardadd43c2021-06-04 18:44:16 +0900593config MMC_SDHCI_F_SDH30
Kunihiko Hayashi12fc8ef2022-09-09 16:23:33 +0900594 bool "SDHCI support for Fujitsu Semiconductor/Socionext F_SDH30"
Jassi Brardadd43c2021-06-04 18:44:16 +0900595 depends on BLK && DM_MMC
596 depends on MMC_SDHCI
597 help
598 This selects the Secure Digital Host Controller Interface (SDHCI)
Kunihiko Hayashi12fc8ef2022-09-09 16:23:33 +0900599 Needed by some Fujitsu/Socionext SoC for MMC / SD / SDIO support.
Jassi Brardadd43c2021-06-04 18:44:16 +0900600 If you have a controller with this interface, say Y or M here.
601 If unsure, say N.
602
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900603config MMC_SDHCI_KONA
604 bool "SDHCI support on Broadcom KONA platform"
605 depends on MMC_SDHCI
606 help
607 This selects the Broadcom Kona Secure Digital Host Controller
608 Interface(SDHCI) support.
609 This is used in Broadcom mobile SoCs.
610
611 If you have a controller with this interface, say Y here.
612
Masahiro Yamada360c67d2017-01-30 19:46:53 +0900613config MMC_SDHCI_MSM
614 bool "Qualcomm SDHCI controller"
Simon Glasse7881d82017-07-29 11:35:31 -0600615 depends on BLK && DM_MMC
Masahiro Yamada360c67d2017-01-30 19:46:53 +0900616 depends on MMC_SDHCI
617 help
618 Enables support for SDHCI 2.0 controller present on some Qualcomm
619 Snapdragon devices. This device is compatible with eMMC v4.5 and
620 SD 3.0 specifications. Both SD and eMMC devices are supported.
621 Card-detect gpios are not supported.
622
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900623config MMC_SDHCI_MV
624 bool "SDHCI support on Marvell platform"
625 depends on ARCH_MVEBU
626 depends on MMC_SDHCI
Stefan Roese8af21b02023-02-10 13:23:52 +0100627 depends on DM_MMC
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900628 help
629 This selects the Secure Digital Host Controller Interface on
630 Marvell platform.
631
632 If you have a controller with this interface, say Y here.
633
634 If unsure, say N.
635
Jim Liu3363a732022-05-24 16:55:33 +0800636config MMC_SDHCI_NPCM
637 bool "SDHCI support on Nuvoton NPCM device"
638 depends on MMC_SDHCI
639 depends on DM_MMC
640 help
641 This selects the Secure Digital Host Controller Interface (SDHCI)
642 on Nuvoton NPCM device.
643
644 If you have a controller with this interface, say Y here.
645
646 If unsure, say N.
647
Masahiro Yamada1b858772017-01-30 19:46:54 +0900648config MMC_SDHCI_PIC32
649 bool "Microchip PIC32 on-chip SDHCI support"
650 depends on DM_MMC && MACH_PIC32
651 depends on MMC_SDHCI
652 help
653 Support for Microchip PIC32 SDHCI controller.
654
Masahiro Yamadafacc8052017-01-30 19:46:52 +0900655config MMC_SDHCI_ROCKCHIP
656 bool "Arasan SDHCI controller for Rockchip support"
657 depends on ARCH_ROCKCHIP
Simon Glasse7881d82017-07-29 11:35:31 -0600658 depends on DM_MMC && BLK
Masahiro Yamadafacc8052017-01-30 19:46:52 +0900659 depends on MMC_SDHCI
660 help
661 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
662
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900663config MMC_SDHCI_S5P
664 bool "SDHCI support on Samsung S5P SoC"
665 depends on MMC_SDHCI
666 help
667 This selects the Secure Digital Host Controller Interface (SDHCI)
668 on Samsung S5P SoCs.
669
670 If you have a controller with this interface, say Y here.
671
672 If unsure, say N.
673
Patrice Chotardeee20f82017-02-21 13:37:09 +0100674config MMC_SDHCI_STI
675 bool "SDHCI support for STMicroelectronics SoC"
Patrice Chotard51cb23d2017-02-21 13:37:11 +0100676 depends on MMC_SDHCI && OF_CONTROL
Patrice Chotardeee20f82017-02-21 13:37:09 +0100677 help
678 This selects the Secure Digital Host Controller Interface (SDHCI)
679 on STMicroelectronics STiH410 SoC.
680
Stefan Roeseb6acb5f2016-12-09 15:03:28 +0100681config MMC_SDHCI_XENON
682 bool "SDHCI support for the Xenon SDHCI controller"
683 depends on MMC_SDHCI && DM_MMC && OF_CONTROL
684 help
685 Support for Xenon SDHCI host controller on Marvell Armada 3700
686 7k/8k ARM SoCs platforms
687
688 If you have a controller with this interface, say Y here.
689
690 If unsure, say N.
691
Felipe Balbi83b32482017-02-20 14:24:14 +0300692config MMC_SDHCI_TANGIER
693 bool "Tangier SDHCI controller support"
694 depends on DM_MMC && BLK
695 depends on MMC_SDHCI
696 help
697 This selects support for SDHCI controller on Tanginer
698 SoC. Note that this controller does not sit on PCI bus and,
699 hence, cannot be enumerated by standard PCI means.
700
701 If you're using an Intel Tangier SoC (available on Intel
702 Edison board), say Y here.
703
704 If unsure, say N.
705
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900706config MMC_SDHCI_TEGRA
707 bool "SDHCI platform support for the Tegra SD/MMC Controller"
Trevor Woerner18138ab2020-05-06 08:02:41 -0400708 depends on ARCH_TEGRA
Philipp Tomsich2acc24f2018-11-30 22:13:25 +0100709 select BOUNCE_BUFFER
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900710 default y
711 help
712 This selects the Tegra SD/MMC controller. If you have a Tegra
713 platform with SD or MMC devices, say Y here.
714
715 If unsure, say N.
716
Trent Piephob78d97e2019-04-01 23:05:49 +0000717config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
718 bool "Disable external clock loopback"
719 depends on MMC_SDHCI_TEGRA && TEGRA124
720 help
721 Disable the external clock loopback and use the internal one on SDMMC3
722 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
723 being set to 0xfffd according to the TRM.
724
725 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
726 approach once proper kernel integration made it mainline.
727
Masahiro Yamada08aa0332017-01-30 19:46:51 +0900728config MMC_SDHCI_ZYNQ
729 bool "Arasan SDHCI controller support"
Simon Glasse7881d82017-07-29 11:35:31 -0600730 depends on DM_MMC && OF_CONTROL && BLK
Masahiro Yamada08aa0332017-01-30 19:46:51 +0900731 depends on MMC_SDHCI
732 help
733 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
734
Vipul Kumar5dc5a532018-02-28 15:53:28 +0530735config ZYNQ_SDHCI_MAX_FREQ
736 int "Set the maximum frequency of the controller"
737 depends on MMC_SDHCI_ZYNQ
738 help
739 Set the maximum frequency of the controller.
740
Vipul Kumar3ccc2072018-02-28 15:53:29 +0530741config ZYNQ_SDHCI_MIN_FREQ
742 int "Set the minimum frequency of the controller"
743 depends on MMC_SDHCI_ZYNQ
744 default 0
745 help
746 Set the minimum frequency of the controller.
747
Siva Durga Prasad Paladugud882f082019-05-27 14:33:14 +0530748config ZYNQ_HISPD_BROKEN
749 bool "High speed broken for Zynq SDHCI controller"
750 depends on MMC_SDHCI_ZYNQ
751 help
752 Set if high speed mode is broken.
753
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900754config MMC_SUNXI
755 bool "Allwinner sunxi SD/MMC Host Controller support"
Samuel Holland818e1632022-04-10 00:13:34 -0500756 depends on ARCH_SUNXI
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900757 default y
758 help
759 This selects support for the SD/MMC Host Controller on
760 Allwinner sunxi SoCs.
761
Maxime Ripardde9b1772017-08-23 12:03:41 +0200762config MMC_SUNXI_HAS_NEW_MODE
763 bool
764 depends on MMC_SUNXI
765
Vasily Khoruzhick2a8882e2018-11-09 20:41:44 -0800766config MMC_SUNXI_HAS_MODE_SWITCH
767 bool
768 depends on MMC_SUNXI
769
Tianrui Weid6b156e2021-07-01 12:54:20 +0800770config MMC_PITON
771 bool "MMC support for OpenPiton SoC"
772 depends on DM_MMC && BLK
773 help
774 This selects support for the SD host controller on OpenPiton SoC.
775 Note that this SD controller directly exposes the contents of the
776 SD card as memory mapped, so there is no manual configuration
777 required
778
Wenyou Yangc86c0152017-04-13 10:29:22 +0800779config GENERIC_ATMEL_MCI
780 bool "Atmel Multimedia Card Interface support"
Simon Glasse7881d82017-07-29 11:35:31 -0600781 depends on DM_MMC && BLK && ARCH_AT91
Wenyou Yangc86c0152017-04-13 10:29:22 +0800782 help
783 This enables support for Atmel High Speed Multimedia Card Interface
784 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
785 the SD Memory Card Specification V2.0, the SDIO V2.0 specification
786 and CE-ATA V1.1.
787
Patrice Chotardb312c592017-09-04 17:56:22 +0200788config STM32_SDMMC2
789 bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
Patrice Chotard53c656a2017-10-03 15:54:58 +0200790 depends on DM_MMC && BLK && OF_CONTROL
Patrice Chotardb312c592017-09-04 17:56:22 +0200791 help
792 This selects support for the SD/MMC controller on STM32H7 SoCs.
793 If you have a board based on such a SoC and with a SD/MMC slot,
794 say Y or M here.
795
Rick Chen9f678ab2017-11-14 14:47:09 +0800796config FTSDC010
797 bool "Ftsdc010 SD/MMC controller Support"
798 help
799 This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
800
Rick Chen095c9f32018-03-20 15:10:49 +0800801config FTSDC010_SDIO
802 bool "Support ftsdc010 sdio"
Rick Chen095c9f32018-03-20 15:10:49 +0800803 depends on FTSDC010
804 help
805 This can enable ftsdc010 sdio function.
806
Weijie Gaod24b6932018-11-15 10:08:04 +0800807config MMC_MTK
808 bool "MediaTek SD/MMC Card Interface support"
Weijie Gao3c92a952019-09-25 17:45:37 +0800809 depends on ARCH_MEDIATEK || ARCH_MTMIPS
Weijie Gaod24b6932018-11-15 10:08:04 +0800810 depends on BLK && DM_MMC
811 depends on OF_CONTROL
812 help
813 This selects the MediaTek(R) Secure digital and Multimedia card Interface.
814 If you have a machine with a integrated SD/MMC card reader, say Y or M here.
815 This is needed if support for any SD/SDIO/MMC devices is required.
816 If unsure, say N.
817
Masahiro Yamadae298c462016-12-07 22:10:27 +0900818endif
819
Tom Rini3a581af2022-12-02 16:42:21 -0500820config FSL_SDHC_V2_3
821 bool
822
Mario Six07dea2e2018-03-28 14:38:19 +0200823config FSL_ESDHC
824 bool "Freescale/NXP eSDHC controller support"
Tom Rini3a581af2022-12-02 16:42:21 -0500825 select FSL_SDHC_V2_3 if ARCH_P1010 || ARCH_BSC9131 || ARCH_BSC9132 \
826 || ARCH_C29X
Mario Six07dea2e2018-03-28 14:38:19 +0200827 help
Yangbo Lufa33d202019-06-21 11:42:27 +0800828 This selects support for the eSDHC (Enhanced Secure Digital Host
829 Controller) found on numerous Freescale/NXP SoCs.
830
Michael Walle361a4222020-10-12 10:07:14 +0200831config FSL_ESDHC_SUPPORT_ADMA2
832 bool "enable ADMA2 support"
833 depends on FSL_ESDHC
834 select MMC_SDHCI_ADMA_HELPERS
835 help
836 This enables support for the ADMA2 transfer mode. If supported by the
837 eSDHC it will allow 64bit DMA addresses.
838
Yangbo Luc927d652020-05-19 11:06:44 +0800839config FSL_ESDHC_33V_IO_RELIABILITY_WORKAROUND
840 bool "enable eSDHC workaround for 3.3v IO reliability issue"
841 depends on FSL_ESDHC && DM_MMC
Yangbo Luc927d652020-05-19 11:06:44 +0800842 help
843 When eSDHC operates at 3.3v, damage can accumulate in an internal
844 level shifter at a higher than expected rate. The faster the interface
845 runs, the more damage accumulates. This issue now is found on LX2160A
846 eSDHC1 for only SD card. The hardware workaround is recommended to use
847 an on-board level shifter that is 1.8v on SoC side and 3.3v on SD card
848 side. For boards without hardware workaround, this option could be
849 enabled, ensuring 1.8v IO voltage and disabling eSDHC if no card.
850 This option assumes no hotplug, and u-boot has to make all the way to
851 to linux to use 1.8v UHS-I speed mode if has card.
852
Yangbo Luae7020b2021-06-03 10:51:17 +0800853config FSL_ESDHC_VS33_NOT_SUPPORT
854 bool "3.3V power supply not supported"
855 depends on FSL_ESDHC
856 help
857 For eSDHC, power supply is through peripheral circuit. 3.3V support is
858 common. Select this if 3.3V power supply not supported.
859
Pali Rohár8f3f8ba2022-05-11 20:27:13 +0200860config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH
861 int
862 depends on FSL_ESDHC
863 default 1
864
Tom Rini7e7d04a2022-06-16 14:04:38 -0400865config ESDHC_DETECT_QUIRK
866 bool "QIXIS-based eSDHC quirk detection"
867 depends on FSL_ESDHC && FSL_QIXIS
868
Yangbo Lufa33d202019-06-21 11:42:27 +0800869config FSL_ESDHC_IMX
870 bool "Freescale/NXP i.MX eSDHC controller support"
871 help
872 This selects support for the i.MX eSDHC (Enhanced Secure Digital Host
873 Controller) found on numerous Freescale/NXP SoCs.
Mario Six07dea2e2018-03-28 14:38:19 +0200874
Tom Rini7ae1e6a2022-07-31 21:08:25 -0400875config SYS_FSL_ESDHC_HAS_DDR_MODE
876 bool "i.MX eSDHC controller supports DDR mode"
877 depends on FSL_ESDHC_IMX
878
Adam Ford3f70bef2019-08-14 07:23:43 -0500879config FSL_USDHC
880 bool "Freescale/NXP i.MX uSDHC controller support"
Peng Fanc8671d22022-07-26 16:40:44 +0800881 depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMX8ULP || IMX9 || IMXRT
Adam Ford3f70bef2019-08-14 07:23:43 -0500882 select FSL_ESDHC_IMX
883 help
884 This enables the Ultra Secured Digital Host Controller enhancements
885
Tom Rini5388aa22022-12-02 16:42:22 -0500886config FSL_ESDHC_PIN_MUX
887 bool "Perform esdhc device-tree fixup"
888 depends on (FSL_ESDHC || FSL_ESDHC_IMX) && OF_LIBFDT
889
Nobuhiro Iwamatsu72d42ba2014-12-17 08:03:00 +0900890endmenu
York Sunc01e4a12016-12-28 08:43:42 -0800891
892config SYS_FSL_ERRATUM_ESDHC111
893 bool
894
895config SYS_FSL_ERRATUM_ESDHC13
896 bool
897
898config SYS_FSL_ERRATUM_ESDHC135
899 bool
900
901config SYS_FSL_ERRATUM_ESDHC_A001
902 bool
Michael Wallebd7b8502021-03-17 15:01:36 +0100903
904config SYS_FSL_ERRATUM_A011334
905 bool
Michael Walled3b745f2021-03-17 15:01:37 +0100906
907config SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
908 bool