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