blob: 62ce0af7d3c3bde24b6b89d2e663ce2b200efb4f [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
Maxime Ripard7a777f62015-10-15 22:04:05 +02006 help
Masahiro Yamadac2726992016-12-07 22:10:26 +09007 This selects MultiMediaCard, Secure Digital and Secure
8 Digital I/O support.
9
10 If you want MMC/SD/SDIO support, you should say Y here and
11 also to your specific host controller driver.
Maxime Ripard7a777f62015-10-15 22:04:05 +020012
Simon Glasse7ecf7c2015-06-23 15:38:48 -060013config DM_MMC
14 bool "Enable MMC controllers using Driver Model"
15 depends on DM
16 help
Robert P. J. Day62a3b7d2016-07-15 13:44:45 -040017 This enables the MultiMediaCard (MMC) uclass which supports MMC and
Simon Glasse7ecf7c2015-06-23 15:38:48 -060018 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
19 and non-removable (e.g. eMMC chip) devices are supported. These
20 appear as block devices in U-Boot and can support filesystems such
21 as EXT4 and FAT.
22
Simon Glassc4d660d2017-07-04 13:31:19 -060023config SPL_DM_MMC
24 bool "Enable MMC controllers using Driver Model in SPL"
25 depends on SPL_DM && DM_MMC
26 default y
27 help
28 This enables the MultiMediaCard (MMC) uclass which supports MMC and
29 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
30 and non-removable (e.g. eMMC chip) devices are supported. These
31 appear as block devices in U-Boot and can support filesystems such
32 as EXT4 and FAT.
33
Masahiro Yamadae298c462016-12-07 22:10:27 +090034if MMC
35
Patrice Chotard3c0dbed2017-10-23 10:57:31 +020036config ARM_PL180_MMCI
37 bool "ARM AMBA Multimedia Card Interface and compatible support"
38 depends on DM_MMC && OF_CONTROL
39 help
40 This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
41 Interface (PL180, PL181 and compatible) support.
42 If you have an ARM(R) platform with a Multimedia Card slot,
43 say Y or M here.
44
Marek Vasutb5b838f2016-12-01 02:06:33 +010045config SPL_MMC_TINY
46 bool "Tiny MMC framework in SPL"
47 help
48 Enable MMC framework tinification support. This option is useful if
49 if your SPL is extremely size constrained. Heed the warning, enable
50 this option if and only if you know exactly what you are doing, if
51 you are reading this help text, you most likely have no idea :-)
52
53 The MMC framework is reduced to bare minimum to be useful. No malloc
54 support is needed for the MMC framework operation with this option
55 enabled. The framework supports exactly one MMC device and exactly
56 one MMC driver. The MMC driver can be adjusted to avoid any malloc
57 operations too, which can remove the need for malloc support in SPL
58 and thus further reduce footprint.
59
Masahiro Yamada1d2c0502017-01-10 13:32:07 +090060config MMC_DAVINCI
61 bool "TI DAVINCI Multimedia Card Interface support"
62 depends on ARCH_DAVINCI
63 default y
64 help
65 This selects the TI DAVINCI Multimedia card Interface.
66 If you have an DAVINCI board with a Multimedia Card slot,
67 say Y here. If unsure, say N.
68
Masahiro Yamada55ed3b42017-01-10 13:32:04 +090069config MMC_DW
70 bool "Synopsys DesignWare Memory Card Interface"
71 help
72 This selects support for the Synopsys DesignWare Mobile Storage IP
73 block, this provides host support for SD and MMC interfaces, in both
74 PIO, internal DMA mode and external DMA mode.
75
Masahiro Yamadaae4c81e2017-01-10 13:32:05 +090076config MMC_DW_EXYNOS
77 bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
78 depends on ARCH_EXYNOS
79 depends on MMC_DW
80 default y
81 help
82 This selects support for Samsung Exynos SoC specific extensions to the
83 Synopsys DesignWare Memory Card Interface driver. Select this option
84 for platforms based on Exynos4 and Exynos5 SoC's.
85
86config MMC_DW_K3
87 bool "K3 specific extensions for Synopsys DW Memory Card Interface"
88 depends on MMC_DW
89 help
90 This selects support for Hisilicon K3 SoC specific extensions to the
91 Synopsys DesignWare Memory Card Interface driver. Select this option
92 for platforms based on Hisilicon K3 SoC's.
93
Masahiro Yamadafed44082017-01-10 13:32:03 +090094config MMC_DW_ROCKCHIP
Simon Glassa8cb4fb2015-08-30 16:55:37 -060095 bool "Rockchip SD/MMC controller support"
96 depends on DM_MMC && OF_CONTROL
Masahiro Yamada55ed3b42017-01-10 13:32:04 +090097 depends on MMC_DW
Simon Glassa8cb4fb2015-08-30 16:55:37 -060098 help
99 This enables support for the Rockchip SD/MMM controller, which is
100 based on Designware IP. The device is compatible with at least
101 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
102 as removeable SD and micro-SD cards.
103
Masahiro Yamadaae4c81e2017-01-10 13:32:05 +0900104config MMC_DW_SOCFPGA
105 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
106 depends on ARCH_SOCFPGA
107 depends on MMC_DW
108 default y
109 help
110 This selects support for Altera SOCFPGA specific extensions to the
111 Synopsys DesignWare Memory Card Interface driver. Select this option
112 for platforms based on Altera SOCFPGA.
113
Carlo Caione93738622017-04-12 20:30:42 +0200114config MMC_MESON_GX
115 bool "Meson GX EMMC controller support"
Simon Glasse7881d82017-07-29 11:35:31 -0600116 depends on DM_MMC && BLK && ARCH_MESON
Carlo Caione93738622017-04-12 20:30:42 +0200117 help
118 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
119
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900120config MMC_MXC
121 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
122 help
123 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
124 Multimedia Card Interface. If you have an i.MX or MPC512x platform
125 with a Multimedia Card slot, say Y here.
126
127 If unsure, say N.
128
129config MMC_MXS
130 bool "Freescale MXS Multimedia Card Interface support"
131 help
132 This selects the Freescale SSP MMC controller found on MXS based
133 platforms like mx23/28.
134
135 If unsure, say N.
136
Felipe Balbib706b1c2017-02-20 14:24:13 +0300137config MMC_PCI
138 bool "Support for MMC controllers on PCI"
139 help
140 This selects PCI-based MMC controllers.
141 If you have an MMC controller on a PCI bus, say Y here.
142
143 If unsure, say N.
144
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900145config MMC_OMAP_HS
146 bool "TI OMAP High Speed Multimedia Card Interface support"
Simon Glasse7881d82017-07-29 11:35:31 -0600147 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
Jean-Jacques Hiblot8ff77632017-09-21 17:03:10 +0200148 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900149 help
150 This selects the TI OMAP High Speed Multimedia card Interface.
151 If you have an omap2plus board with a Multimedia Card slot,
152 say Y here.
153
154 If unsure, say N.
155
Adam Ford6aca17c2017-02-06 11:31:43 -0600156config MMC_OMAP36XX_PINS
157 bool "Enable MMC1 on OMAP36xx/37xx"
158 depends on OMAP34XX && MMC_OMAP_HS
159 help
160 This enables extended-drain in the MMC/SD/SDIO1I/O and
161 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
162 specific to the OMAP36xx/37xx using MMC1
163
164 If you have a controller with this interface, say Y here.
165
166 If unsure, say N.
167
Nobuhiro Iwamatsu72d42ba2014-12-17 08:03:00 +0900168config SH_SDHI
169 bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
Marek Vasut0f531182017-05-13 15:51:14 +0200170 depends on ARCH_RMOBILE
Nobuhiro Iwamatsu72d42ba2014-12-17 08:03:00 +0900171 help
172 Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
173
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900174config MMC_UNIPHIER
Marek Vasutb24633d2017-07-21 23:24:36 +0200175 bool "UniPhier/RCar SD/MMC Host Controller support"
176 depends on ARCH_UNIPHIER || ARCH_RMOBILE
Simon Glasse7881d82017-07-29 11:35:31 -0600177 depends on BLK && DM_MMC
Masahiro Yamada9c720c82016-12-30 23:20:14 +0900178 depends on OF_CONTROL
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900179 help
Marek Vasutb24633d2017-07-21 23:24:36 +0200180 This selects support for the Matsushita SD/MMC Host Controller on
181 SocioNext UniPhier and Renesas RCar SoCs.
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900182
Masahiro Yamadaa5995a52017-01-30 19:46:50 +0900183config MMC_SANDBOX
Simon Glassf376a3c2016-05-01 13:52:42 -0600184 bool "Sandbox MMC support"
Masahiro Yamadaa5995a52017-01-30 19:46:50 +0900185 depends on SANDBOX
Simon Glasse7881d82017-07-29 11:35:31 -0600186 depends on BLK && DM_MMC && OF_CONTROL
Simon Glassf376a3c2016-05-01 13:52:42 -0600187 help
188 This select a dummy sandbox MMC driver. At present this does nothing
189 other than allow sandbox to be build with MMC support. This
190 improves build coverage for sandbox and makes it easier to detect
191 MMC build errors with sandbox.
192
Masahiro Yamadae1ce61f2016-12-07 22:10:28 +0900193config MMC_SDHCI
194 bool "Secure Digital Host Controller Interface support"
195 help
196 This selects the generic Secure Digital Host Controller Interface.
197 It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
198 and Toshiba(R). Most controllers found in laptops are of this type.
199
200 If you have a controller with this interface, say Y here.
201
202 If unsure, say N.
203
Masahiro Yamada3d3a74c2016-12-07 22:10:30 +0900204config MMC_SDHCI_IO_ACCESSORS
205 bool
206 depends on MMC_SDHCI
207 help
208 This is silent Kconfig symbol that is selected by the drivers that
209 need to overwrite SDHCI IO memory accessors.
210
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900211config MMC_SDHCI_SDMA
212 bool "Support SDHCI SDMA"
213 depends on MMC_SDHCI
214 help
215 This enables support for the SDMA (Single Operation DMA) defined
216 in the SD Host Controller Standard Specification Version 1.00 .
217
Masahiro Yamadadd3b64e2017-01-30 19:46:55 +0900218config MMC_SDHCI_ATMEL
219 bool "Atmel SDHCI controller support"
220 depends on ARCH_AT91
Simon Glasse7881d82017-07-29 11:35:31 -0600221 depends on DM_MMC && BLK && ARCH_AT91
Masahiro Yamadadd3b64e2017-01-30 19:46:55 +0900222 depends on MMC_SDHCI
223 help
224 This enables support for the Atmel SDHCI controller, which supports
225 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
226 Memory Card Specification V3.0, and the SDIO V3.0 specification.
227 It is compliant with the SD Host Controller Standard V3.0
228 specification.
229
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900230config MMC_SDHCI_BCM2835
231 tristate "SDHCI support for the BCM2835 SD/MMC Controller"
232 depends on ARCH_BCM283X
233 depends on MMC_SDHCI
Masahiro Yamada3d3a74c2016-12-07 22:10:30 +0900234 select MMC_SDHCI_IO_ACCESSORS
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900235 help
236 This selects the BCM2835 SD/MMC controller.
237
238 If you have a BCM2835 platform with SD or MMC devices,
239 say Y here.
240
241 If unsure, say N.
242
Masahiro Yamadae5e7a7c2016-12-30 22:41:46 +0900243config MMC_SDHCI_CADENCE
244 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
Simon Glasse7881d82017-07-29 11:35:31 -0600245 depends on BLK && DM_MMC
Masahiro Yamadae5e7a7c2016-12-30 22:41:46 +0900246 depends on MMC_SDHCI
247 depends on OF_CONTROL
248 help
249 This selects the Cadence SD/SDIO/eMMC driver.
250
251 If you have a controller with this interface, say Y here.
252
253 If unsure, say N.
254
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900255config MMC_SDHCI_KONA
256 bool "SDHCI support on Broadcom KONA platform"
257 depends on MMC_SDHCI
258 help
259 This selects the Broadcom Kona Secure Digital Host Controller
260 Interface(SDHCI) support.
261 This is used in Broadcom mobile SoCs.
262
263 If you have a controller with this interface, say Y here.
264
Masahiro Yamada360c67d2017-01-30 19:46:53 +0900265config MMC_SDHCI_MSM
266 bool "Qualcomm SDHCI controller"
Simon Glasse7881d82017-07-29 11:35:31 -0600267 depends on BLK && DM_MMC
Masahiro Yamada360c67d2017-01-30 19:46:53 +0900268 depends on MMC_SDHCI
269 help
270 Enables support for SDHCI 2.0 controller present on some Qualcomm
271 Snapdragon devices. This device is compatible with eMMC v4.5 and
272 SD 3.0 specifications. Both SD and eMMC devices are supported.
273 Card-detect gpios are not supported.
274
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900275config MMC_SDHCI_MV
276 bool "SDHCI support on Marvell platform"
277 depends on ARCH_MVEBU
278 depends on MMC_SDHCI
279 help
280 This selects the Secure Digital Host Controller Interface on
281 Marvell platform.
282
283 If you have a controller with this interface, say Y here.
284
285 If unsure, say N.
286
Masahiro Yamada1b858772017-01-30 19:46:54 +0900287config MMC_SDHCI_PIC32
288 bool "Microchip PIC32 on-chip SDHCI support"
289 depends on DM_MMC && MACH_PIC32
290 depends on MMC_SDHCI
291 help
292 Support for Microchip PIC32 SDHCI controller.
293
Masahiro Yamadafacc8052017-01-30 19:46:52 +0900294config MMC_SDHCI_ROCKCHIP
295 bool "Arasan SDHCI controller for Rockchip support"
296 depends on ARCH_ROCKCHIP
Simon Glasse7881d82017-07-29 11:35:31 -0600297 depends on DM_MMC && BLK
Masahiro Yamadafacc8052017-01-30 19:46:52 +0900298 depends on MMC_SDHCI
299 help
300 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
301
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900302config MMC_SDHCI_S5P
303 bool "SDHCI support on Samsung S5P SoC"
304 depends on MMC_SDHCI
305 help
306 This selects the Secure Digital Host Controller Interface (SDHCI)
307 on Samsung S5P SoCs.
308
309 If you have a controller with this interface, say Y here.
310
311 If unsure, say N.
312
313config MMC_SDHCI_SPEAR
314 bool "SDHCI support on ST SPEAr platform"
315 depends on MMC_SDHCI
316 help
317 This selects the Secure Digital Host Controller Interface (SDHCI)
318 often referrered to as the HSMMC block in some of the ST SPEAR range
319 of SoC
320
321 If you have a controller with this interface, say Y here.
322
323 If unsure, say N.
324
Patrice Chotardeee20f82017-02-21 13:37:09 +0100325config MMC_SDHCI_STI
326 bool "SDHCI support for STMicroelectronics SoC"
Patrice Chotard51cb23d2017-02-21 13:37:11 +0100327 depends on MMC_SDHCI && OF_CONTROL
Patrice Chotardeee20f82017-02-21 13:37:09 +0100328 help
329 This selects the Secure Digital Host Controller Interface (SDHCI)
330 on STMicroelectronics STiH410 SoC.
331
Stefan Roeseb6acb5f2016-12-09 15:03:28 +0100332config MMC_SDHCI_XENON
333 bool "SDHCI support for the Xenon SDHCI controller"
334 depends on MMC_SDHCI && DM_MMC && OF_CONTROL
335 help
336 Support for Xenon SDHCI host controller on Marvell Armada 3700
337 7k/8k ARM SoCs platforms
338
339 If you have a controller with this interface, say Y here.
340
341 If unsure, say N.
342
Felipe Balbi83b32482017-02-20 14:24:14 +0300343config MMC_SDHCI_TANGIER
344 bool "Tangier SDHCI controller support"
345 depends on DM_MMC && BLK
346 depends on MMC_SDHCI
347 help
348 This selects support for SDHCI controller on Tanginer
349 SoC. Note that this controller does not sit on PCI bus and,
350 hence, cannot be enumerated by standard PCI means.
351
352 If you're using an Intel Tangier SoC (available on Intel
353 Edison board), say Y here.
354
355 If unsure, say N.
356
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900357config MMC_SDHCI_TEGRA
358 bool "SDHCI platform support for the Tegra SD/MMC Controller"
359 depends on TEGRA
360 default y
361 help
362 This selects the Tegra SD/MMC controller. If you have a Tegra
363 platform with SD or MMC devices, say Y here.
364
365 If unsure, say N.
366
Masahiro Yamada08aa0332017-01-30 19:46:51 +0900367config MMC_SDHCI_ZYNQ
368 bool "Arasan SDHCI controller support"
369 depends on ARCH_ZYNQ || ARCH_ZYNQMP
Simon Glasse7881d82017-07-29 11:35:31 -0600370 depends on DM_MMC && OF_CONTROL && BLK
Masahiro Yamada08aa0332017-01-30 19:46:51 +0900371 depends on MMC_SDHCI
372 help
373 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
374
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900375config MMC_SUNXI
376 bool "Allwinner sunxi SD/MMC Host Controller support"
Masahiro Yamada0ad178c2017-01-12 12:16:15 +0900377 depends on ARCH_SUNXI && !UART0_PORT_F
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900378 default y
379 help
380 This selects support for the SD/MMC Host Controller on
381 Allwinner sunxi SoCs.
382
Maxime Ripardde9b1772017-08-23 12:03:41 +0200383config MMC_SUNXI_HAS_NEW_MODE
384 bool
385 depends on MMC_SUNXI
386
Wenyou Yangc86c0152017-04-13 10:29:22 +0800387config GENERIC_ATMEL_MCI
388 bool "Atmel Multimedia Card Interface support"
Simon Glasse7881d82017-07-29 11:35:31 -0600389 depends on DM_MMC && BLK && ARCH_AT91
Wenyou Yangc86c0152017-04-13 10:29:22 +0800390 help
391 This enables support for Atmel High Speed Multimedia Card Interface
392 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
393 the SD Memory Card Specification V2.0, the SDIO V2.0 specification
394 and CE-ATA V1.1.
395
Patrice Chotardb312c592017-09-04 17:56:22 +0200396config STM32_SDMMC2
397 bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
Patrice Chotard53c656a2017-10-03 15:54:58 +0200398 depends on DM_MMC && BLK && OF_CONTROL
Patrice Chotardb312c592017-09-04 17:56:22 +0200399 help
400 This selects support for the SD/MMC controller on STM32H7 SoCs.
401 If you have a board based on such a SoC and with a SD/MMC slot,
402 say Y or M here.
403
Masahiro Yamadae298c462016-12-07 22:10:27 +0900404endif
405
Marcel Ziswiler4119b702017-03-25 01:18:22 +0100406config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
407 bool "Disable external clock loopback"
408 depends on MMC_SDHCI_TEGRA && TEGRA124
409 help
410 Disable the external clock loopback and use the internal one on SDMMC3
411 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
412 being set to 0xfffd according to the TRM.
413
414 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
415 approach once proper kernel integration made it mainline.
416
Nobuhiro Iwamatsu72d42ba2014-12-17 08:03:00 +0900417endmenu
York Sunc01e4a12016-12-28 08:43:42 -0800418
419config SYS_FSL_ERRATUM_ESDHC111
420 bool
421
422config SYS_FSL_ERRATUM_ESDHC13
423 bool
424
425config SYS_FSL_ERRATUM_ESDHC135
426 bool
427
428config SYS_FSL_ERRATUM_ESDHC_A001
429 bool