xref: /linux/drivers/mmc/host/Kconfig (revision 073350da0aa2aead9df7927a1c1046ebf5cdd816)
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # MMC/SD host controller drivers
4 #
5 
6 comment "MMC/SD/SDIO Host Controller Drivers"
7 
8 config MMC_DEBUG
9 	bool "MMC host drivers debugging"
10 	depends on MMC != n
11 	help
12 	  This is an option for use by developers; most people should
13 	  say N here. This enables MMC host driver debugging. And further
14 	  added host drivers please don't invent their private macro for
15 	  debugging.
16 
17 config MMC_ARMMMCI
18 	tristate "ARM AMBA Multimedia Card Interface support"
19 	depends on ARM_AMBA
20 	help
21 	  This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
22 	  Interface (PL180 and PL181) support.  If you have an ARM(R)
23 	  platform with a Multimedia Card slot, say Y or M here.
24 
25 	  If unsure, say N.
26 
27 config MMC_QCOM_DML
28 	bool "Qualcomm Data Mover for SD Card Controller"
29 	depends on MMC_ARMMMCI && QCOM_BAM_DMA
30 	default y
31 	help
32 	  This selects the Qualcomm Data Mover lite/local on SD Card controller.
33 	  This option will enable the dma to work correctly, if you are using
34 	  Qcom SOCs and MMC, you would probably need this option to get DMA working.
35 
36 	  if unsure, say N.
37 
38 config MMC_STM32_SDMMC
39 	bool "STMicroelectronics STM32 SDMMC Controller"
40 	depends on MMC_ARMMMCI
41 	default y
42 	help
43 	  This selects the STMicroelectronics STM32 SDMMC host controller.
44 	  If you have a STM32 sdmmc host with internal DMA say Y here.
45 
46 	  If unsure, say N.
47 
48 config MMC_PXA
49 	tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
50 	depends on ARCH_PXA
51 	help
52 	  This selects the Intel(R) PXA(R) Multimedia card Interface.
53 	  If you have a PXA(R) platform with a Multimedia Card slot,
54 	  say Y or M here.
55 
56 	  If unsure, say N.
57 
58 config MMC_SDHCI
59 	tristate "Secure Digital Host Controller Interface support"
60 	depends on HAS_DMA
61 	help
62 	  This selects the generic Secure Digital Host Controller Interface.
63 	  It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
64 	  and Toshiba(R). Most controllers found in laptops are of this type.
65 
66 	  If you have a controller with this interface, say Y or M here. You
67 	  also need to enable an appropriate bus interface.
68 
69 	  If unsure, say N.
70 
71 config MMC_SDHCI_IO_ACCESSORS
72 	bool
73 	depends on MMC_SDHCI
74 	help
75 	  This is silent Kconfig symbol that is selected by the drivers that
76 	  need to overwrite SDHCI IO memory accessors.
77 
78 config MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
79 	bool
80 	depends on MMC_SDHCI
81 	select MMC_SDHCI_IO_ACCESSORS
82 	help
83 	  This option is selected by drivers running on big endian hosts
84 	  and performing I/O to a SDHCI controller through a bus that
85 	  implements a hardware byte swapper using a 32-bit datum.
86 	  This endian mapping mode is called "data invariance" and
87 	  has the effect of scrambling the addresses and formats of data
88 	  accessed in sizes other than the datum size.
89 
90 	  This is the case for the Nintendo Wii SDHCI.
91 
92 config MMC_SDHCI_PCI
93 	tristate "SDHCI support on PCI bus"
94 	depends on MMC_SDHCI && PCI
95 	select MMC_CQHCI
96 	select IOSF_MBI if X86
97 	select MMC_SDHCI_IO_ACCESSORS
98 	help
99 	  This selects the PCI Secure Digital Host Controller Interface.
100 	  Most controllers found today are PCI devices.
101 
102 	  If you have a controller with this interface, say Y or M here.
103 
104 	  If unsure, say N.
105 
106 config MMC_RICOH_MMC
107 	bool "Ricoh MMC Controller Disabler"
108 	depends on MMC_SDHCI_PCI
109 	default y
110 	help
111 	  This adds a pci quirk to disable Ricoh MMC Controller. This
112 	  proprietary controller is unnecessary because the SDHCI driver
113 	  supports MMC cards on the SD controller, but if it is not
114 	  disabled, it will steal the MMC cards away - rendering them
115 	  useless. It is safe to select this even if you don't
116 	  have a Ricoh based card reader.
117 
118 	  If unsure, say Y.
119 
120 config MMC_SDHCI_ACPI
121 	tristate "SDHCI support for ACPI enumerated SDHCI controllers"
122 	depends on MMC_SDHCI && ACPI && PCI
123 	select IOSF_MBI if X86
124 	help
125 	  This selects support for ACPI enumerated SDHCI controllers,
126 	  identified by ACPI Compatibility ID PNP0D40 or specific
127 	  ACPI Hardware IDs.
128 
129 	  If you have a controller with this interface, say Y or M here.
130 
131 	  If unsure, say N.
132 
133 config MMC_SDHCI_PLTFM
134 	tristate "SDHCI platform and OF driver helper"
135 	depends on MMC_SDHCI
136 	help
137 	  This selects the common helper functions support for Secure Digital
138 	  Host Controller Interface based platform and OF drivers.
139 
140 	  If you have a controller with this interface, say Y or M here.
141 
142 	  If unsure, say N.
143 
144 config MMC_SDHCI_OF_ARASAN
145 	tristate "SDHCI OF support for the Arasan SDHCI controllers"
146 	depends on MMC_SDHCI_PLTFM
147 	depends on OF
148 	depends on COMMON_CLK
149 	select MMC_CQHCI
150 	help
151 	  This selects the Arasan Secure Digital Host Controller Interface
152 	  (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC.
153 
154 	  If you have a controller with this interface, say Y or M here.
155 
156 	  If unsure, say N.
157 
158 config MMC_SDHCI_OF_ASPEED
159 	tristate "SDHCI OF support for the ASPEED SDHCI controller"
160 	depends on MMC_SDHCI_PLTFM
161 	depends on OF && OF_ADDRESS
162 	select MMC_SDHCI_IO_ACCESSORS
163 	help
164 	  This selects the ASPEED Secure Digital Host Controller Interface.
165 
166 	  If you have a controller with this interface, say Y or M here. You
167 	  also need to enable an appropriate bus interface.
168 
169 	  If unsure, say N.
170 
171 config MMC_SDHCI_OF_ASPEED_TEST
172 	bool "Tests for the ASPEED SDHCI driver"
173 	depends on MMC_SDHCI_OF_ASPEED && KUNIT=y
174 	help
175 	  Enable KUnit tests for the ASPEED SDHCI driver. Select this
176 	  option only if you will boot the kernel for the purpose of running
177 	  unit tests (e.g. under UML or qemu).
178 
179 	  The KUnit tests generally exercise parts of the driver that do not
180 	  directly touch the hardware, for example, the phase correction
181 	  calculations.
182 
183 	  If unsure, say N.
184 
185 config MMC_SDHCI_OF_AT91
186 	tristate "SDHCI OF support for the Atmel SDMMC controller"
187 	depends on MMC_SDHCI_PLTFM
188 	depends on OF && HAVE_CLK
189 	help
190 	  This selects the Atmel SDMMC driver
191 
192 config MMC_SDHCI_OF_ESDHC
193 	tristate "SDHCI OF support for the Freescale eSDHC controller"
194 	depends on MMC_SDHCI_PLTFM
195 	depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
196 	select MMC_SDHCI_IO_ACCESSORS
197 	select FSL_GUTS
198 	help
199 	  This selects the Freescale eSDHC controller support.
200 
201 	  If you have a controller with this interface, say Y or M here.
202 
203 	  If unsure, say N.
204 
205 config MMC_SDHCI_OF_HLWD
206 	tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
207 	depends on MMC_SDHCI_PLTFM
208 	depends on PPC
209 	select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
210 	help
211 	  This selects the Secure Digital Host Controller Interface (SDHCI)
212 	  found in the "Hollywood" chipset of the Nintendo Wii video game
213 	  console.
214 
215 	  If you have a controller with this interface, say Y or M here.
216 
217 	  If unsure, say N.
218 
219 config MMC_SDHCI_OF_DWCMSHC
220 	tristate "SDHCI OF support for the Synopsys DWC MSHC"
221 	depends on MMC_SDHCI_PLTFM
222 	depends on OF
223 	depends on COMMON_CLK
224 	help
225 	  This selects Synopsys DesignWare Cores Mobile Storage Controller
226 	  support.
227 	  If you have a controller with this interface, say Y or M here.
228 	  If unsure, say N.
229 
230 config MMC_SDHCI_OF_SPARX5
231 	tristate "SDHCI OF support for the MCHP Sparx5 SoC"
232 	depends on MMC_SDHCI_PLTFM
233 	depends on ARCH_SPARX5 || COMPILE_TEST
234 	help
235 	  This selects the Secure Digital Host Controller Interface (SDHCI)
236 	  found in the MCHP Sparx5 SoC.
237 
238 	  If you have a Sparx5 SoC with this interface, say Y or M here.
239 
240 	  If unsure, say N.
241 
242 config MMC_SDHCI_CADENCE
243 	tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller"
244 	depends on MMC_SDHCI_PLTFM
245 	depends on OF
246 	help
247 	  This selects the Cadence SD/SDIO/eMMC driver.
248 
249 	  If you have a controller with this interface, say Y or M here.
250 
251 	  If unsure, say N.
252 
253 config MMC_SDHCI_CNS3XXX
254 	tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
255 	depends on ARCH_CNS3XXX || COMPILE_TEST
256 	depends on MMC_SDHCI_PLTFM
257 	help
258 	  This selects the SDHCI support for CNS3xxx System-on-Chip devices.
259 
260 	  If you have a controller with this interface, say Y or M here.
261 
262 	  If unsure, say N.
263 
264 config MMC_SDHCI_ESDHC_MCF
265 	tristate "SDHCI support for the Freescale eSDHC ColdFire controller"
266 	depends on M5441x
267 	depends on MMC_SDHCI_PLTFM
268 	select MMC_SDHCI_IO_ACCESSORS
269 	help
270 	  This selects the Freescale eSDHC controller support for
271 	  ColdFire mcf5441x devices.
272 
273 	  If you have a controller with this interface, say Y or M here.
274 
275 	  If unsure, say N.
276 
277 config MMC_SDHCI_ESDHC_IMX
278 	tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
279 	depends on ARCH_MXC || COMPILE_TEST
280 	depends on MMC_SDHCI_PLTFM
281 	depends on OF
282 	select MMC_SDHCI_IO_ACCESSORS
283 	select MMC_CQHCI
284 	help
285 	  This selects the Freescale eSDHC/uSDHC controller support
286 	  found on i.MX25, i.MX35 i.MX5x and i.MX6x.
287 
288 	  If you have a controller with this interface, say Y or M here.
289 
290 	  If unsure, say N.
291 
292 config MMC_SDHCI_DOVE
293 	tristate "SDHCI support on Marvell's Dove SoC"
294 	depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
295 	depends on MMC_SDHCI_PLTFM
296 	select MMC_SDHCI_IO_ACCESSORS
297 	help
298 	  This selects the Secure Digital Host Controller Interface in
299 	  Marvell's Dove SoC.
300 
301 	  If you have a controller with this interface, say Y or M here.
302 
303 	  If unsure, say N.
304 
305 config MMC_SDHCI_TEGRA
306 	tristate "SDHCI platform support for the Tegra SD/MMC Controller"
307 	depends on ARCH_TEGRA || COMPILE_TEST
308 	depends on MMC_SDHCI_PLTFM
309 	select MMC_SDHCI_IO_ACCESSORS
310 	select MMC_CQHCI
311 	help
312 	  This selects the Tegra SD/MMC controller. If you have a Tegra
313 	  platform with SD or MMC devices, say Y or M here.
314 
315 	  If unsure, say N.
316 
317 config MMC_SDHCI_S3C
318 	tristate "SDHCI support on Samsung S3C/S5P/Exynos SoC"
319 	depends on MMC_SDHCI
320 	depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
321 	help
322 	  This selects the Secure Digital Host Controller Interface (SDHCI)
323 	  often referrered to as the HSMMC block in some of the Samsung S3C
324 	  (S3C2416, S3C2443, S3C6410), S5Pv210 and Exynos (Exynso4210,
325 	  Exynos4412) SoCs.
326 
327 	  If you have a controller with this interface (thereforeyou build for
328 	  such Samsung SoC), say Y or M here.
329 
330 	  If unsure, say N.
331 
332 config MMC_SDHCI_PXAV3
333 	tristate "Marvell MMP2 SD Host Controller support (PXAV3)"
334 	depends on HAVE_CLK
335 	depends on MMC_SDHCI_PLTFM
336 	depends on ARCH_BERLIN || ARCH_MMP || ARCH_MVEBU || COMPILE_TEST
337 	default CPU_MMP2
338 	help
339 	  This selects the Marvell(R) PXAV3 SD Host Controller.
340 	  If you have a MMP2 platform with SD Host Controller
341 	  and a card slot, say Y or M here.
342 
343 	  If unsure, say N.
344 
345 config MMC_SDHCI_PXAV2
346 	tristate "Marvell PXA9XX SD Host Controller support (PXAV2)"
347 	depends on HAVE_CLK
348 	depends on MMC_SDHCI_PLTFM
349 	depends on ARCH_MMP || COMPILE_TEST
350 	default CPU_PXA910
351 	help
352 	  This selects the Marvell(R) PXAV2 SD Host Controller.
353 	  If you have a PXA9XX platform with SD Host Controller
354 	  and a card slot, say Y or M here.
355 
356 	  If unsure, say N.
357 
358 config MMC_SDHCI_SPEAR
359 	tristate "SDHCI support on ST SPEAr platform"
360 	depends on MMC_SDHCI
361 	depends on PLAT_SPEAR || COMPILE_TEST
362 	depends on OF
363 	help
364 	  This selects the Secure Digital Host Controller Interface (SDHCI)
365 	  often referrered to as the HSMMC block in some of the ST SPEAR range
366 	  of SoC
367 
368 	  If you have a controller with this interface, say Y or M here.
369 
370 	  If unsure, say N.
371 
372 config MMC_SDHCI_S3C_DMA
373 	bool "DMA support on S3C SDHCI"
374 	depends on MMC_SDHCI_S3C
375 	help
376 	  Enable DMA support on the Samsung S3C SDHCI glue. The DMA
377 	  has proved to be problematic if the controller encounters
378 	  certain errors, and thus should be treated with care.
379 
380 	  YMMV.
381 
382 config MMC_SDHCI_BCM_KONA
383 	tristate "SDHCI support on Broadcom KONA platform"
384 	depends on ARCH_BCM_MOBILE || COMPILE_TEST
385 	depends on MMC_SDHCI_PLTFM
386 	help
387 	  This selects the Broadcom Kona Secure Digital Host Controller
388 	  Interface(SDHCI) support.
389 	  This is used in Broadcom mobile SoCs.
390 
391 	  If you have a controller with this interface, say Y or M here.
392 
393 config MMC_SDHCI_F_SDH30
394 	tristate "SDHCI support for Fujitsu Semiconductor F_SDH30"
395 	depends on MMC_SDHCI_PLTFM
396 	depends on OF || ACPI
397 	help
398 	  This selects the Secure Digital Host Controller Interface (SDHCI)
399 	  Needed by some Fujitsu SoC for MMC / SD / SDIO support.
400 	  If you have a controller with this interface, say Y or M here.
401 
402 	  If unsure, say N.
403 
404 config MMC_SDHCI_MILBEAUT
405 	tristate "SDHCI support for Socionext Milbeaut Serieas using F_SDH30"
406 	depends on MMC_SDHCI_PLTFM
407 	depends on OF
408 	help
409 	  This selects the Secure Digital Host Controller Interface (SDHCI)
410 	  Needed by Milbeaut SoC for MMC / SD / SDIO support.
411 	  If you have a controller with this interface, say Y or M here.
412 
413 	  If unsure, say N.
414 
415 config MMC_SDHCI_IPROC
416 	tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
417 	depends on ARCH_BCM2835 || ARCH_BCM_IPROC || ARCH_BRCMSTB || COMPILE_TEST
418 	depends on MMC_SDHCI_PLTFM
419 	depends on OF || ACPI
420 	default ARCH_BCM_IPROC
421 	select MMC_SDHCI_IO_ACCESSORS
422 	help
423 	  This selects the iProc SD/MMC controller.
424 
425 	  If you have a BCM2835 or IPROC platform with SD or MMC devices,
426 	  say Y or M here.
427 
428 	  If unsure, say N.
429 
430 config MMC_MESON_GX
431 	tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
432 	depends on ARCH_MESON|| COMPILE_TEST
433 	depends on COMMON_CLK
434 	help
435 	  This selects support for the Amlogic SD/MMC Host Controller
436 	  found on the S905/GX*/AXG family of SoCs.  This controller is
437 	  MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces.
438 
439 	  If you have a controller with this interface, say Y here.
440 
441 config MMC_MESON_MX_SDHC
442 	tristate "Amlogic Meson SDHC Host Controller support"
443 	depends on (ARM && ARCH_MESON) || COMPILE_TEST
444 	depends on COMMON_CLK
445 	depends on OF
446 	help
447 	  This selects support for the SDHC Host Controller on
448 	  Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs.
449 	  The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x
450 	  with 1, 4, and 8 bit bus widths.
451 
452 	  If you have a controller with this interface, say Y or M here.
453 	  If unsure, say N.
454 
455 config MMC_MESON_MX_SDIO
456 	tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support"
457 	depends on ARCH_MESON || COMPILE_TEST
458 	depends on COMMON_CLK
459 	depends on OF_ADDRESS
460 	help
461 	  This selects support for the SD/MMC Host Controller on
462 	  Amlogic Meson6, Meson8 and Meson8b SoCs.
463 
464 	  If you have a controller with this interface, say Y or M here.
465 	  If unsure, say N.
466 
467 config MMC_MOXART
468 	tristate "MOXART SD/MMC Host Controller support"
469 	depends on ARCH_MOXART || COMPILE_TEST
470 	help
471 	  This selects support for the MOXART SD/MMC Host Controller.
472 	  MOXA provides one multi-functional card reader which can
473 	  be found on some embedded hardware such as UC-7112-LX.
474 	  If you have a controller with this interface, say Y here.
475 
476 config MMC_SDHCI_ST
477 	tristate "SDHCI support on STMicroelectronics SoC"
478 	depends on ARCH_STI || FSP2 || COMPILE_TEST
479 	depends on MMC_SDHCI_PLTFM
480 	select MMC_SDHCI_IO_ACCESSORS
481 	help
482 	  This selects the Secure Digital Host Controller Interface in
483 	  STMicroelectronics SoCs.
484 
485 	  If you have a controller with this interface, say Y or M here.
486 	  If unsure, say N.
487 
488 config MMC_OMAP
489 	tristate "TI OMAP Multimedia Card Interface support"
490 	depends on ARCH_OMAP
491 	depends on TPS65010 || !MACH_OMAP_H2
492 	help
493 	  This selects the TI OMAP Multimedia card Interface.
494 	  If you have an OMAP board with a Multimedia Card slot,
495 	  say Y or M here.
496 
497 	  If unsure, say N.
498 
499 config MMC_OMAP_HS
500 	tristate "TI OMAP High Speed Multimedia Card Interface support"
501 	depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
502 	help
503 	  This selects the TI OMAP High Speed Multimedia card Interface.
504 	  If you have an omap2plus board with a Multimedia Card slot,
505 	  say Y or M here.
506 
507 	  If unsure, say N.
508 
509 config MMC_WBSD
510 	tristate "Winbond W83L51xD SD/MMC Card Interface support"
511 	depends on ISA_DMA_API
512 	help
513 	  This selects the Winbond(R) W83L51xD Secure digital and
514 	  Multimedia card Interface.
515 	  If you have a machine with a integrated W83L518D or W83L519D
516 	  SD/MMC card reader, say Y or M here.
517 
518 	  If unsure, say N.
519 
520 config MMC_ALCOR
521 	tristate "Alcor Micro/Alcor Link SD/MMC controller"
522 	depends on MISC_ALCOR_PCI
523 	help
524 	  Say Y here to include driver code to support SD/MMC card interface
525 	  of Alcor Micro PCI-E card reader
526 
527 config MMC_AU1X
528 	tristate "Alchemy AU1XX0 MMC Card Interface support"
529 	depends on MIPS_ALCHEMY
530 	help
531 	  This selects the AMD Alchemy(R) Multimedia card interface.
532 	  If you have a Alchemy platform with a MMC slot, say Y or M here.
533 
534 	  If unsure, say N.
535 
536 config MMC_ATMELMCI
537 	tristate "Atmel SD/MMC Driver (Multimedia Card Interface)"
538 	depends on ARCH_AT91
539 	help
540 	  This selects the Atmel Multimedia Card Interface driver.
541 	  If you have an AT91 platform with a Multimedia Card slot,
542 	  say Y or M here.
543 
544 	  If unsure, say N.
545 
546 config MMC_SDHCI_MSM
547 	tristate "Qualcomm SDHCI Controller Support"
548 	depends on ARCH_QCOM || COMPILE_TEST
549 	depends on MMC_SDHCI_PLTFM
550 	select MMC_SDHCI_IO_ACCESSORS
551 	select MMC_CQHCI
552 	select QCOM_SCM if MMC_CRYPTO
553 	help
554 	  This selects the Secure Digital Host Controller Interface (SDHCI)
555 	  support present in Qualcomm SOCs. The controller supports
556 	  SD/MMC/SDIO devices.
557 
558 	  If you have a controller with this interface, say Y or M here.
559 
560 	  If unsure, say N.
561 
562 config MMC_MXC
563 	tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
564 	depends on ARCH_MXC || PPC_MPC512x
565 	help
566 	  This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
567 	  Multimedia Card Interface. If you have an i.MX or MPC512x platform
568 	  with a Multimedia Card slot, say Y or M here.
569 
570 	  If unsure, say N.
571 
572 config MMC_MXS
573 	tristate "Freescale MXS Multimedia Card Interface support"
574 	depends on ARCH_MXS && MXS_DMA
575 	help
576 	  This selects the Freescale SSP MMC controller found on MXS based
577 	  platforms like mx23/28.
578 
579 	  If unsure, say N.
580 
581 config MMC_TIFM_SD
582 	tristate "TI Flash Media MMC/SD Interface support"
583 	depends on PCI
584 	select TIFM_CORE
585 	help
586 	  Say Y here if you want to be able to access MMC/SD cards with
587 	  the Texas Instruments(R) Flash Media card reader, found in many
588 	  laptops.
589 	  This option 'selects' (turns on, enables) 'TIFM_CORE', but you
590 	  probably also need appropriate card reader host adapter, such as
591 	  'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
592 	  (TIFM_7XX1)'.
593 
594 	  To compile this driver as a module, choose M here: the
595 	  module will be called tifm_sd.
596 
597 config MMC_MVSDIO
598 	tristate "Marvell MMC/SD/SDIO host driver"
599 	depends on PLAT_ORION || (COMPILE_TEST && ARM)
600 	depends on OF
601 	help
602 	  This selects the Marvell SDIO host driver.
603 	  SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
604 	  SoC controllers.
605 
606 	  To compile this driver as a module, choose M here: the
607 	  module will be called mvsdio.
608 
609 config MMC_DAVINCI
610 	tristate "TI DAVINCI Multimedia Card Interface support"
611 	depends on ARCH_DAVINCI || COMPILE_TEST
612 	help
613 	  This selects the TI DAVINCI Multimedia card Interface.
614 	  If you have an DAVINCI board with a Multimedia Card slot,
615 	  say Y or M here.  If unsure, say N.
616 
617 config MMC_SPI
618 	tristate "MMC/SD/SDIO over SPI"
619 	depends on SPI_MASTER
620 	select CRC7
621 	select CRC_ITU_T
622 	help
623 	  Some systems access MMC/SD/SDIO cards using a SPI controller
624 	  instead of using a "native" MMC/SD/SDIO controller.  This has a
625 	  disadvantage of being relatively high overhead, but a compensating
626 	  advantage of working on many systems without dedicated MMC/SD/SDIO
627 	  controllers.
628 
629 	  If unsure, or if your system has no SPI master driver, say N.
630 
631 config MMC_S3C
632 	tristate "Samsung S3C SD/MMC Card Interface support"
633 	depends on ARCH_S3C24XX || COMPILE_TEST
634 	depends on S3C24XX_DMAC || COMPILE_TEST
635 	help
636 	  This selects a driver for the MCI interface found in
637 	  Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
638 	  If you have a board based on one of those and a MMC/SD
639 	  slot, say Y or M here.
640 
641 	  If unsure, say N.
642 
643 config MMC_S3C_HW_SDIO_IRQ
644 	bool "Hardware support for SDIO IRQ"
645 	depends on MMC_S3C
646 	help
647 	  Enable the hardware support for SDIO interrupts instead of using
648 	  the generic polling code.
649 
650 choice
651 	prompt "Samsung S3C SD/MMC transfer code"
652 	depends on MMC_S3C
653 
654 config MMC_S3C_PIO
655 	bool "Use PIO transfers only"
656 	help
657 	  Use PIO to transfer data between memory and the hardware.
658 
659 	  PIO is slower than DMA as it requires CPU instructions to
660 	  move the data. This has been the traditional default for
661 	  the S3C MCI driver.
662 
663 config MMC_S3C_DMA
664 	bool "Use DMA transfers only"
665 	help
666 	  Use DMA to transfer data between memory and the hardware.
667 
668 	  Currently, the DMA support in this driver seems to not be
669 	  working properly and needs to be debugged before this
670 	  option is useful.
671 
672 endchoice
673 
674 config MMC_SDRICOH_CS
675 	tristate "MMC/SD driver for Ricoh Bay1Controllers"
676 	depends on PCI && PCMCIA
677 	help
678 	  Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
679 	  card whenever you insert a MMC or SD card into the card slot.
680 
681 	  To compile this driver as a module, choose M here: the
682 	  module will be called sdricoh_cs.
683 
684 config MMC_SDHCI_SPRD
685 	tristate "Spreadtrum SDIO host Controller"
686 	depends on ARCH_SPRD || COMPILE_TEST
687 	depends on MMC_SDHCI_PLTFM
688 	select MMC_SDHCI_IO_ACCESSORS
689 	select MMC_HSQ
690 	help
691 	  This selects the SDIO Host Controller in Spreadtrum
692 	  SoCs, this driver supports R11(IP version: R11P0).
693 
694 	  If you have a controller with this interface, say Y or M here.
695 
696 	  If unsure, say N.
697 
698 config MMC_TMIO_CORE
699 	tristate
700 
701 config MMC_TMIO
702 	tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
703 	depends on MFD_TMIO || MFD_ASIC3 || COMPILE_TEST
704 	select MMC_TMIO_CORE
705 	help
706 	  This provides support for the SD/MMC cell found in TC6393XB,
707 	  T7L66XB and also HTC ASIC3
708 
709 config MMC_SDHI
710 	tristate "Renesas SDHI SD/SDIO controller support"
711 	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
712 	select MMC_TMIO_CORE
713 	select RESET_CONTROLLER if ARCH_RENESAS
714 	help
715 	  This provides support for the SDHI SD/SDIO controller found in
716 	  Renesas SuperH, ARM and ARM64 based SoCs
717 
718 config MMC_SDHI_SYS_DMAC
719 	tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC"
720 	depends on MMC_SDHI
721 	default MMC_SDHI if (SUPERH || ARM)
722 	help
723 	  This provides DMA support for SDHI SD/SDIO controllers
724 	  using SYS-DMAC via DMA Engine. This supports the controllers
725 	  found in SuperH and Renesas ARM based SoCs.
726 
727 config MMC_SDHI_INTERNAL_DMAC
728 	tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering"
729 	depends on ARM64 || ARCH_R7S9210 || ARCH_R8A77470 || COMPILE_TEST
730 	depends on MMC_SDHI
731 	default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470)
732 	help
733 	  This provides DMA support for SDHI SD/SDIO controllers
734 	  using on-chip bus mastering. This supports the controllers
735 	  found in arm64 based SoCs. This controller is also found in
736 	  some RZ family SoCs.
737 
738 config MMC_UNIPHIER
739 	tristate "UniPhier SD/eMMC Host Controller support"
740 	depends on ARCH_UNIPHIER || COMPILE_TEST
741 	depends on OF
742 	select MMC_TMIO_CORE
743 	help
744 	  This provides support for the SD/eMMC controller found in
745 	  UniPhier SoCs. The eMMC variant of this controller is used
746 	  only for 32-bit SoCs.
747 
748 config MMC_CB710
749 	tristate "ENE CB710 MMC/SD Interface support"
750 	depends on PCI
751 	select CB710_CORE
752 	help
753 	  This option enables support for MMC/SD part of ENE CB710/720 Flash
754 	  memory card reader found in some laptops (ie. some versions of
755 	  HP Compaq nx9500).
756 
757 	  This driver can also be built as a module. If so, the module
758 	  will be called cb710-mmc.
759 
760 config MMC_VIA_SDMMC
761 	tristate "VIA SD/MMC Card Reader Driver"
762 	depends on PCI
763 	help
764 	  This selects the VIA SD/MMC Card Reader driver, say Y or M here.
765 	  VIA provides one multi-functional card reader which integrated into
766 	  some motherboards manufactured by VIA. This card reader supports
767 	  SD/MMC/SDHC.
768 	  If you have a controller with this interface, say Y or M here.
769 
770 	  If unsure, say N.
771 
772 config MMC_CAVIUM_OCTEON
773 	tristate "Cavium OCTEON SD/MMC Card Interface support"
774 	depends on CAVIUM_OCTEON_SOC
775 	help
776 	  This selects Cavium OCTEON SD/MMC card Interface.
777 	  If you have an OCTEON board with a Multimedia Card slot,
778 	  say Y or M here.
779 
780 	  If unsure, say N.
781 
782 config MMC_CAVIUM_THUNDERX
783 	tristate "Cavium ThunderX SD/MMC Card Interface support"
784 	depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
785 	depends on GPIO_THUNDERX
786 	depends on OF_ADDRESS
787 	help
788 	  This selects Cavium ThunderX SD/MMC Card Interface.
789 	  If you have an Cavium ARM64 board with a Multimedia Card slot
790 	  or builtin eMMC chip say Y or M here. If built as a module
791 	  the module will be called thunderx_mmc.ko.
792 
793 config MMC_DW
794 	tristate "Synopsys DesignWare Memory Card Interface"
795 	depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST
796 	help
797 	  This selects support for the Synopsys DesignWare Mobile Storage IP
798 	  block, this provides host support for SD and MMC interfaces, in both
799 	  PIO, internal DMA mode and external DMA mode.
800 
801 config MMC_DW_PLTFM
802 	tristate "Synopsys Designware MCI Support as platform device"
803 	depends on MMC_DW
804 	default y
805 	help
806 	  This selects the common helper functions support for Host Controller
807 	  Interface based platform driver. Please select this option if the IP
808 	  is present as a platform device. This is the common interface for the
809 	  Synopsys Designware IP.
810 
811 	  If you have a controller with this interface, say Y or M here.
812 
813 	  If unsure, say Y.
814 
815 config MMC_DW_BLUEFIELD
816 	tristate "BlueField specific extensions for Synopsys DW Memory Card Interface"
817 	depends on MMC_DW
818 	select MMC_DW_PLTFM
819 	help
820 	  This selects support for Mellanox BlueField SoC specific extensions to
821 	  the Synopsys DesignWare Memory Card Interface driver. Select this
822 	  option for platforms based on Mellanox BlueField SoC's.
823 
824 config MMC_DW_EXYNOS
825 	tristate "Exynos specific extensions for Synopsys DW Memory Card Interface"
826 	depends on MMC_DW
827 	select MMC_DW_PLTFM
828 	help
829 	  This selects support for Samsung Exynos SoC specific extensions to the
830 	  Synopsys DesignWare Memory Card Interface driver. Select this option
831 	  for platforms based on Exynos4 and Exynos5 SoC's.
832 
833 config MMC_DW_HI3798CV200
834 	tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface"
835 	depends on MMC_DW
836 	select MMC_DW_PLTFM
837 	help
838 	  This selects support for HiSilicon Hi3798CV200 SoC specific extensions to the
839 	  Synopsys DesignWare Memory Card Interface driver. Select this option
840 	  for platforms based on HiSilicon Hi3798CV200 SoC.
841 
842 config MMC_DW_K3
843 	tristate "K3 specific extensions for Synopsys DW Memory Card Interface"
844 	depends on MMC_DW
845 	select MMC_DW_PLTFM
846 	help
847 	  This selects support for Hisilicon K3 SoC specific extensions to the
848 	  Synopsys DesignWare Memory Card Interface driver. Select this option
849 	  for platforms based on Hisilicon K3 SoC's.
850 
851 config MMC_DW_PCI
852 	tristate "Synopsys Designware MCI support on PCI bus"
853 	depends on MMC_DW && PCI
854 	help
855 	  This selects the PCI bus for the Synopsys Designware Mobile Storage IP.
856 	  Select this option if the IP is present on PCI platform.
857 
858 	  If you have a controller with this interface, say Y or M here.
859 
860 	  If unsure, say N.
861 
862 config MMC_DW_ROCKCHIP
863 	tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface"
864 	depends on MMC_DW && ARCH_ROCKCHIP
865 	select MMC_DW_PLTFM
866 	help
867 	  This selects support for Rockchip SoC specific extensions to the
868 	  Synopsys DesignWare Memory Card Interface driver. Select this option
869 	  for platforms based on RK3066, RK3188 and RK3288 SoC's.
870 
871 config MMC_SH_MMCIF
872 	tristate "SuperH Internal MMCIF support"
873 	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
874 	help
875 	  This selects the MMC Host Interface controller (MMCIF) found in various
876 	  Renesas SoCs for SH and ARM architectures.
877 
878 
879 config MMC_JZ4740
880 	tristate "Ingenic JZ47xx SD/Multimedia Card Interface support"
881 	depends on MIPS
882 	help
883 	  This selects support for the SD/MMC controller on Ingenic
884 	  JZ4740, JZ4750, JZ4770 and JZ4780 SoCs.
885 
886 	  If you have a board based on such a SoC and with a SD/MMC slot,
887 	  say Y or M here.
888 
889 config MMC_VUB300
890 	tristate "VUB300 USB to SDIO/SD/MMC Host Controller support"
891 	depends on USB
892 	help
893 	  This selects support for Elan Digital Systems' VUB300 chip.
894 
895 	  The VUB300 is a USB-SDIO Host Controller Interface chip
896 	  that enables the host computer to use SDIO/SD/MMC cards
897 	  via a USB 2.0 or USB 1.1 host.
898 
899 	  The VUB300 chip will be found in both physically separate
900 	  USB to SDIO/SD/MMC adapters and embedded on some motherboards.
901 
902 	  The VUB300 chip supports SD and MMC memory cards in addition
903 	  to single and multifunction SDIO cards.
904 
905 	  Some SDIO cards will need a firmware file to be loaded and
906 	  sent to VUB300 chip in order to achieve better data throughput.
907 	  Download these "Offload Pseudocode" from Elan Digital Systems'
908 	  web-site http://www.elandigitalsystems.com/support/downloads.php
909 	  and put them in /lib/firmware. Note that without these additional
910 	  firmware files the VUB300 chip will still function, but not at
911 	  the best obtainable data rate.
912 
913 	  To compile this mmc host controller driver as a module,
914 	  choose M here: the module will be called vub300.
915 
916 	  If you have a computer with an embedded VUB300 chip
917 	  or if you intend connecting a USB adapter based on a
918 	  VUB300 chip say Y or M here.
919 
920 config MMC_USHC
921 	tristate "USB SD Host Controller (USHC) support"
922 	depends on USB
923 	help
924 	  This selects support for USB SD Host Controllers based on
925 	  the Cypress Astoria chip with firmware compliant with CSR's
926 	  USB SD Host Controller specification (CS-118793-SP).
927 
928 	  CSR boards with this device include: USB<>SDIO (M1985v2),
929 	  and Ultrasira.
930 
931 	  Note: These controllers only support SDIO cards and do not
932 	  support MMC or SD memory cards.
933 
934 config MMC_WMT
935 	tristate "Wondermedia SD/MMC Host Controller support"
936 	depends on ARCH_VT8500
937 	default y
938 	help
939 	  This selects support for the SD/MMC Host Controller on
940 	  Wondermedia WM8505/WM8650 based SoCs.
941 
942 	  To compile this driver as a module, choose M here: the
943 	  module will be called wmt-sdmmc.
944 
945 config MMC_USDHI6ROL0
946 	tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support"
947 	depends on HAS_DMA
948 	help
949 	  This selects support for the Renesas USDHI6ROL0 SD/SDIO
950 	  Host Controller
951 
952 config MMC_REALTEK_PCI
953 	tristate "Realtek PCI-E SD/MMC Card Interface Driver"
954 	depends on MISC_RTSX_PCI
955 	help
956 	  Say Y here to include driver code to support SD/MMC card interface
957 	  of Realtek PCI-E card reader
958 
959 config MMC_REALTEK_USB
960 	tristate "Realtek USB SD/MMC Card Interface Driver"
961 	depends on MISC_RTSX_USB
962 	help
963 	  Say Y here to include driver code to support SD/MMC card interface
964 	  of Realtek RTS5129/39 series card reader
965 
966 config MMC_SUNXI
967 	tristate "Allwinner sunxi SD/MMC Host Controller support"
968 	depends on ARCH_SUNXI || COMPILE_TEST
969 	depends on SUNXI_CCU
970 	help
971 	  This selects support for the SD/MMC Host Controller on
972 	  Allwinner sunxi SoCs.
973 
974 config MMC_CQHCI
975 	tristate "Command Queue Host Controller Interface support"
976 	depends on HAS_DMA
977 	help
978 	  This selects the Command Queue Host Controller Interface (CQHCI)
979 	  support present in host controllers of Qualcomm Technologies, Inc
980 	  amongst others.
981 	  This controller supports eMMC devices with command queue support.
982 
983 	  If you have a controller with this interface, say Y or M here.
984 
985 	  If unsure, say N.
986 
987 config MMC_HSQ
988 	tristate "MMC Host Software Queue support"
989 	help
990 	  This selects the MMC Host Software Queue support. This may increase
991 	  performance, if the host controller and its driver supports it.
992 
993 	  If you have a controller/driver supporting this interface, say Y or M
994 	  here.
995 
996 	  If unsure, say N.
997 
998 config MMC_TOSHIBA_PCI
999 	tristate "Toshiba Type A SD/MMC Card Interface Driver"
1000 	depends on PCI
1001 
1002 config MMC_BCM2835
1003 	tristate "Broadcom BCM2835 SDHOST MMC Controller support"
1004 	depends on ARCH_BCM2835 || COMPILE_TEST
1005 	help
1006 	  This selects the BCM2835 SDHOST MMC controller. If you have
1007 	  a BCM2835 platform with SD or MMC devices, say Y or M here.
1008 
1009 	  Note that the BCM2835 has two SD controllers: The Arasan
1010 	  sdhci controller (supported by MMC_SDHCI_IPROC) and a custom
1011 	  sdhost controller (supported by this driver).
1012 
1013 	  If unsure, say N.
1014 
1015 config MMC_MTK
1016 	tristate "MediaTek SD/MMC Card Interface support"
1017 	depends on HAS_DMA
1018 	depends on COMMON_CLK
1019 	select REGULATOR
1020 	select MMC_CQHCI
1021 	help
1022 	  This selects the MediaTek(R) Secure digital and Multimedia card Interface.
1023 	  If you have a machine with a integrated SD/MMC card reader, say Y or M here.
1024 	  This is needed if support for any SD/SDIO/MMC devices is required.
1025 	  If unsure, say N.
1026 
1027 config MMC_SDHCI_MICROCHIP_PIC32
1028 	tristate "Microchip PIC32MZDA SDHCI support"
1029 	depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM
1030 	help
1031 	  This selects the Secure Digital Host Controller Interface (SDHCI)
1032 	  for PIC32MZDA platform.
1033 
1034 	  If you have a controller with this interface, say Y or M here.
1035 
1036 	  If unsure, say N.
1037 
1038 config MMC_SDHCI_BRCMSTB
1039 	tristate "Broadcom SDIO/SD/MMC support"
1040 	depends on ARCH_BRCMSTB || BMIPS_GENERIC
1041 	depends on MMC_SDHCI_PLTFM
1042 	select MMC_CQHCI
1043 	default y
1044 	help
1045 	  This selects support for the SDIO/SD/MMC Host Controller on
1046 	  Broadcom STB SoCs.
1047 
1048 	  If unsure, say Y.
1049 
1050 config MMC_SDHCI_XENON
1051 	tristate "Marvell Xenon eMMC/SD/SDIO SDHCI driver"
1052 	depends on MMC_SDHCI_PLTFM
1053 	help
1054 	  This selects Marvell Xenon eMMC/SD/SDIO SDHCI.
1055 	  If you have a controller with this interface, say Y or M here.
1056 	  If unsure, say N.
1057 
1058 config MMC_SDHCI_OMAP
1059 	tristate "TI SDHCI Controller Support"
1060 	depends on MMC_SDHCI_PLTFM && OF
1061 	select THERMAL
1062 	imply TI_SOC_THERMAL
1063 	select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE
1064 	help
1065 	  This selects the Secure Digital Host Controller Interface (SDHCI)
1066 	  support present in TI's DRA7 SOCs. The controller supports
1067 	  SD/MMC/SDIO devices.
1068 
1069 	  If you have a controller with this interface, say Y or M here.
1070 
1071 	  If unsure, say N.
1072 
1073 config MMC_SDHCI_AM654
1074 	tristate "Support for the SDHCI Controller in TI's AM654 SOCs"
1075 	depends on MMC_SDHCI_PLTFM && OF && REGMAP_MMIO
1076 	select MMC_SDHCI_IO_ACCESSORS
1077 	select MMC_CQHCI
1078 	help
1079 	  This selects the Secure Digital Host Controller Interface (SDHCI)
1080 	  support present in TI's AM654 SOCs. The controller supports
1081 	  SD/MMC/SDIO devices.
1082 
1083 	  If you have a controller with this interface, say Y or M here.
1084 
1085 	  If unsure, say N.
1086 
1087 config MMC_OWL
1088 	tristate "Actions Semi Owl SD/MMC Host Controller support"
1089 	depends on HAS_DMA
1090 	depends on ARCH_ACTIONS || COMPILE_TEST
1091 	help
1092 	  This selects support for the SD/MMC Host Controller on
1093 	  Actions Semi Owl SoCs.
1094 
1095 config MMC_SDHCI_EXTERNAL_DMA
1096 	bool
1097 
1098 config MMC_LITEX
1099 	tristate "LiteX MMC Host Controller support"
1100 	depends on ((PPC_MICROWATT || LITEX) && OF && HAVE_CLK) || COMPILE_TEST
1101 	select REGULATOR
1102 	select REGULATOR_FIXED_VOLTAGE
1103 	help
1104 	  This selects support for the MMC Host Controller found in LiteX SoCs.
1105 
1106 	  To compile this driver as a module, choose M here: the
1107 	  module will be called litex_mmc.
1108 
1109 	  If unsure, say N.
1110