Merge tag 'vfio-v6.3-rc1' of https://github.com/awilliam/linux-vfio
[linux-2.6-microblaze.git] / drivers / mmc / host / Kconfig
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_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
26 config 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
36 config 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
47 config 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
57 config MMC_PXA
58         tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
59         depends on ARCH_PXA
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
67 config 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
80 config 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
87 config 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
101 config MMC_SDHCI_PCI
102         tristate "SDHCI support on PCI bus"
103         depends on MMC_SDHCI && PCI
104         select MMC_CQHCI
105         select IOSF_MBI if X86
106         select MMC_SDHCI_IO_ACCESSORS
107         help
108           This selects the PCI Secure Digital Host Controller Interface.
109           Most controllers found today are PCI devices.
110
111           If you have a controller with this interface, say Y or M here.
112
113           If unsure, say N.
114
115 config MMC_RICOH_MMC
116         bool "Ricoh MMC Controller Disabler"
117         depends on MMC_SDHCI_PCI
118         default y
119         help
120           This adds a pci quirk to disable Ricoh MMC Controller. This
121           proprietary controller is unnecessary because the SDHCI driver
122           supports MMC cards on the SD controller, but if it is not
123           disabled, it will steal the MMC cards away - rendering them
124           useless. It is safe to select this even if you don't
125           have a Ricoh based card reader.
126
127           If unsure, say Y.
128
129 config MMC_SDHCI_ACPI
130         tristate "SDHCI support for ACPI enumerated SDHCI controllers"
131         depends on MMC_SDHCI && ACPI && PCI
132         select IOSF_MBI if X86
133         help
134           This selects support for ACPI enumerated SDHCI controllers,
135           identified by ACPI Compatibility ID PNP0D40 or specific
136           ACPI Hardware IDs.
137
138           If you have a controller with this interface, say Y or M here.
139
140           If unsure, say N.
141
142 config MMC_SDHCI_PLTFM
143         tristate "SDHCI platform and OF driver helper"
144         depends on MMC_SDHCI
145         help
146           This selects the common helper functions support for Secure Digital
147           Host Controller Interface based platform and OF drivers.
148
149           If you have a controller with this interface, say Y or M here.
150
151           If unsure, say N.
152
153 config MMC_SDHCI_OF_ARASAN
154         tristate "SDHCI OF support for the Arasan SDHCI controllers"
155         depends on MMC_SDHCI_PLTFM
156         depends on OF
157         depends on COMMON_CLK
158         select MMC_CQHCI
159         help
160           This selects the Arasan Secure Digital Host Controller Interface
161           (SDHCI). This hardware is found e.g. in Xilinx' Zynq SoC.
162
163           If you have a controller with this interface, say Y or M here.
164
165           If unsure, say N.
166
167 config MMC_SDHCI_OF_ASPEED
168         tristate "SDHCI OF support for the ASPEED SDHCI controller"
169         depends on ARCH_ASPEED || COMPILE_TEST
170         depends on MMC_SDHCI_PLTFM
171         depends on OF && OF_ADDRESS
172         select MMC_SDHCI_IO_ACCESSORS
173         help
174           This selects the ASPEED Secure Digital Host Controller Interface.
175
176           If you have a controller with this interface, say Y or M here. You
177           also need to enable an appropriate bus interface.
178
179           If unsure, say N.
180
181 config MMC_SDHCI_OF_ASPEED_TEST
182         bool "Tests for the ASPEED SDHCI driver" if !KUNIT_ALL_TESTS
183         depends on MMC_SDHCI_OF_ASPEED && KUNIT
184         depends on (MMC_SDHCI_OF_ASPEED=m || KUNIT=y)
185         default KUNIT_ALL_TESTS
186         help
187           Enable KUnit tests for the ASPEED SDHCI driver. Select this
188           option only if you will boot the kernel for the purpose of running
189           unit tests (e.g. under UML or qemu).
190
191           The KUnit tests generally exercise parts of the driver that do not
192           directly touch the hardware, for example, the phase correction
193           calculations.
194
195           If unsure, say N.
196
197 config MMC_SDHCI_OF_AT91
198         tristate "SDHCI OF support for the Atmel SDMMC controller"
199         depends on MMC_SDHCI_PLTFM
200         depends on OF && HAVE_CLK
201         help
202           This selects the Atmel SDMMC driver
203
204 config MMC_SDHCI_OF_ESDHC
205         tristate "SDHCI OF support for the Freescale eSDHC controller"
206         depends on MMC_SDHCI_PLTFM
207         depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
208         select MMC_SDHCI_IO_ACCESSORS
209         select FSL_GUTS
210         help
211           This selects the Freescale eSDHC controller support.
212
213           If you have a controller with this interface, say Y or M here.
214
215           If unsure, say N.
216
217 config MMC_SDHCI_OF_HLWD
218         tristate "SDHCI OF support for the Nintendo Wii SDHCI controllers"
219         depends on MMC_SDHCI_PLTFM
220         depends on PPC
221         select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
222         help
223           This selects the Secure Digital Host Controller Interface (SDHCI)
224           found in the "Hollywood" chipset of the Nintendo Wii video game
225           console.
226
227           If you have a controller with this interface, say Y or M here.
228
229           If unsure, say N.
230
231 config MMC_SDHCI_OF_DWCMSHC
232         tristate "SDHCI OF support for the Synopsys DWC MSHC"
233         depends on MMC_SDHCI_PLTFM
234         depends on OF
235         depends on COMMON_CLK
236         help
237           This selects Synopsys DesignWare Cores Mobile Storage Controller
238           support.
239           If you have a controller with this interface, say Y or M here.
240           If unsure, say N.
241
242 config MMC_SDHCI_OF_SPARX5
243         tristate "SDHCI OF support for the MCHP Sparx5 SoC"
244         depends on MMC_SDHCI_PLTFM
245         depends on ARCH_SPARX5 || COMPILE_TEST
246         help
247           This selects the Secure Digital Host Controller Interface (SDHCI)
248           found in the MCHP Sparx5 SoC.
249
250           If you have a Sparx5 SoC with this interface, say Y or M here.
251
252           If unsure, say N.
253
254 config MMC_SDHCI_CADENCE
255         tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller"
256         depends on MMC_SDHCI_PLTFM
257         depends on OF
258         help
259           This selects the Cadence SD/SDIO/eMMC driver.
260
261           If you have a controller with this interface, say Y or M here.
262
263           If unsure, say N.
264
265 config MMC_SDHCI_ESDHC_MCF
266         tristate "SDHCI support for the Freescale eSDHC ColdFire controller"
267         depends on M5441x
268         depends on MMC_SDHCI_PLTFM
269         select MMC_SDHCI_IO_ACCESSORS
270         help
271           This selects the Freescale eSDHC controller support for
272           ColdFire mcf5441x devices.
273
274           If you have a controller with this interface, say Y or M here.
275
276           If unsure, say N.
277
278 config MMC_SDHCI_ESDHC_IMX
279         tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
280         depends on ARCH_MXC || COMPILE_TEST
281         depends on MMC_SDHCI_PLTFM
282         depends on OF
283         select MMC_SDHCI_IO_ACCESSORS
284         select MMC_CQHCI
285         help
286           This selects the Freescale eSDHC/uSDHC controller support
287           found on i.MX25, i.MX35 i.MX5x and i.MX6x.
288
289           If you have a controller with this interface, say Y or M here.
290
291           If unsure, say N.
292
293 config MMC_SDHCI_DOVE
294         tristate "SDHCI support on Marvell's Dove SoC"
295         depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
296         depends on MMC_SDHCI_PLTFM
297         select MMC_SDHCI_IO_ACCESSORS
298         help
299           This selects the Secure Digital Host Controller Interface in
300           Marvell's Dove SoC.
301
302           If you have a controller with this interface, say Y or M here.
303
304           If unsure, say N.
305
306 config MMC_SDHCI_TEGRA
307         tristate "SDHCI platform support for the Tegra SD/MMC Controller"
308         depends on ARCH_TEGRA || COMPILE_TEST
309         depends on MMC_SDHCI_PLTFM
310         select MMC_SDHCI_IO_ACCESSORS
311         select MMC_CQHCI
312         help
313           This selects the Tegra SD/MMC controller. If you have a Tegra
314           platform with SD or MMC devices, say Y or M here.
315
316           If unsure, say N.
317
318 config MMC_SDHCI_S3C
319         tristate "SDHCI support on Samsung S3C/S5P/Exynos SoC"
320         depends on MMC_SDHCI
321         depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
322         help
323           This selects the Secure Digital Host Controller Interface (SDHCI)
324           often referrered to as the HSMMC block in some of the Samsung
325           S3C6410, S5Pv210 and Exynos (Exynso4210, 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         help
492           This selects the TI OMAP Multimedia card Interface.
493           If you have an OMAP board with a Multimedia Card slot,
494           say Y or M here.
495
496           If unsure, say N.
497
498 config MMC_OMAP_HS
499         tristate "TI OMAP High Speed Multimedia Card Interface support"
500         depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
501         help
502           This selects the TI OMAP High Speed Multimedia card Interface.
503           If you have an omap2plus board with a Multimedia Card slot,
504           say Y or M here.
505
506           If unsure, say N.
507
508 config MMC_WBSD
509         tristate "Winbond W83L51xD SD/MMC Card Interface support"
510         depends on ISA_DMA_API
511         help
512           This selects the Winbond(R) W83L51xD Secure digital and
513           Multimedia card Interface.
514           If you have a machine with a integrated W83L518D or W83L519D
515           SD/MMC card reader, say Y or M here.
516
517           If unsure, say N.
518
519 config MMC_ALCOR
520         tristate "Alcor Micro/Alcor Link SD/MMC controller"
521         depends on MISC_ALCOR_PCI
522         help
523           Say Y here to include driver code to support SD/MMC card interface
524           of Alcor Micro PCI-E card reader
525
526 config MMC_AU1X
527         tristate "Alchemy AU1XX0 MMC Card Interface support"
528         depends on MIPS_ALCHEMY
529         help
530           This selects the AMD Alchemy(R) Multimedia card interface.
531           If you have a Alchemy platform with a MMC slot, say Y or M here.
532
533           If unsure, say N.
534
535 config MMC_ATMELMCI
536         tristate "Atmel SD/MMC Driver (Multimedia Card Interface)"
537         depends on ARCH_AT91
538         help
539           This selects the Atmel Multimedia Card Interface driver.
540           If you have an AT91 platform with a Multimedia Card slot,
541           say Y or M here.
542
543           If unsure, say N.
544
545 config MMC_SDHCI_MSM
546         tristate "Qualcomm SDHCI Controller Support"
547         depends on ARCH_QCOM || COMPILE_TEST
548         depends on MMC_SDHCI_PLTFM
549         select MMC_SDHCI_IO_ACCESSORS
550         select MMC_CQHCI
551         select QCOM_SCM if MMC_CRYPTO
552         help
553           This selects the Secure Digital Host Controller Interface (SDHCI)
554           support present in Qualcomm SOCs. The controller supports
555           SD/MMC/SDIO devices.
556
557           If you have a controller with this interface, say Y or M here.
558
559           If unsure, say N.
560
561 config MMC_MXC
562         tristate "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
563         depends on ARCH_MXC || PPC_MPC512x
564         help
565           This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
566           Multimedia Card Interface. If you have an i.MX or MPC512x platform
567           with a Multimedia Card slot, say Y or M here.
568
569           If unsure, say N.
570
571 config MMC_MXS
572         tristate "Freescale MXS Multimedia Card Interface support"
573         depends on ARCH_MXS && MXS_DMA
574         help
575           This selects the Freescale SSP MMC controller found on MXS based
576           platforms like mx23/28.
577
578           If unsure, say N.
579
580 config MMC_TIFM_SD
581         tristate "TI Flash Media MMC/SD Interface support"
582         depends on PCI
583         select TIFM_CORE
584         help
585           Say Y here if you want to be able to access MMC/SD cards with
586           the Texas Instruments(R) Flash Media card reader, found in many
587           laptops.
588           This option 'selects' (turns on, enables) 'TIFM_CORE', but you
589           probably also need appropriate card reader host adapter, such as
590           'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
591           (TIFM_7XX1)'.
592
593           To compile this driver as a module, choose M here: the
594           module will be called tifm_sd.
595
596 config MMC_MVSDIO
597         tristate "Marvell MMC/SD/SDIO host driver"
598         depends on PLAT_ORION || (COMPILE_TEST && ARM)
599         depends on OF
600         help
601           This selects the Marvell SDIO host driver.
602           SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
603           SoC controllers.
604
605           To compile this driver as a module, choose M here: the
606           module will be called mvsdio.
607
608 config MMC_DAVINCI
609         tristate "TI DAVINCI Multimedia Card Interface support"
610         depends on ARCH_DAVINCI || COMPILE_TEST
611         help
612           This selects the TI DAVINCI Multimedia card Interface.
613           If you have an DAVINCI board with a Multimedia Card slot,
614           say Y or M here.  If unsure, say N.
615
616 config MMC_SPI
617         tristate "MMC/SD/SDIO over SPI"
618         depends on SPI_MASTER
619         select CRC7
620         select CRC_ITU_T
621         help
622           Some systems access MMC/SD/SDIO cards using a SPI controller
623           instead of using a "native" MMC/SD/SDIO controller.  This has a
624           disadvantage of being relatively high overhead, but a compensating
625           advantage of working on many systems without dedicated MMC/SD/SDIO
626           controllers.
627
628           If unsure, or if your system has no SPI master driver, say N.
629
630 config MMC_SDRICOH_CS
631         tristate "MMC/SD driver for Ricoh Bay1Controllers"
632         depends on PCI && PCMCIA
633         help
634           Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
635           card whenever you insert a MMC or SD card into the card slot.
636
637           To compile this driver as a module, choose M here: the
638           module will be called sdricoh_cs.
639
640 config MMC_SDHCI_SPRD
641         tristate "Spreadtrum SDIO host Controller"
642         depends on ARCH_SPRD || COMPILE_TEST
643         depends on MMC_SDHCI_PLTFM
644         select MMC_SDHCI_IO_ACCESSORS
645         select MMC_HSQ
646         help
647           This selects the SDIO Host Controller in Spreadtrum
648           SoCs, this driver supports R11(IP version: R11P0).
649
650           If you have a controller with this interface, say Y or M here.
651
652           If unsure, say N.
653
654 config MMC_TMIO_CORE
655         tristate
656
657 config MMC_SDHI
658         tristate "Renesas SDHI SD/SDIO controller support"
659         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
660         select MMC_TMIO_CORE
661         select RESET_CONTROLLER if ARCH_RENESAS
662         help
663           This provides support for the SDHI SD/SDIO controller found in
664           Renesas SuperH, ARM and ARM64 based SoCs
665
666 config MMC_SDHI_SYS_DMAC
667         tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC"
668         depends on MMC_SDHI
669         default MMC_SDHI if (SUPERH || ARM)
670         help
671           This provides DMA support for SDHI SD/SDIO controllers
672           using SYS-DMAC via DMA Engine. This supports the controllers
673           found in SuperH and Renesas ARM based SoCs.
674
675 config MMC_SDHI_INTERNAL_DMAC
676         tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering"
677         depends on ARM64 || ARCH_R7S9210 || ARCH_R8A77470 || COMPILE_TEST
678         depends on MMC_SDHI
679         default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470)
680         help
681           This provides DMA support for SDHI SD/SDIO controllers
682           using on-chip bus mastering. This supports the controllers
683           found in arm64 based SoCs. This controller is also found in
684           some RZ family SoCs.
685
686 config MMC_UNIPHIER
687         tristate "UniPhier SD/eMMC Host Controller support"
688         depends on ARCH_UNIPHIER || COMPILE_TEST
689         depends on OF
690         select MMC_TMIO_CORE
691         help
692           This provides support for the SD/eMMC controller found in
693           UniPhier SoCs. The eMMC variant of this controller is used
694           only for 32-bit SoCs.
695
696 config MMC_CB710
697         tristate "ENE CB710 MMC/SD Interface support"
698         depends on PCI
699         select CB710_CORE
700         help
701           This option enables support for MMC/SD part of ENE CB710/720 Flash
702           memory card reader found in some laptops (ie. some versions of
703           HP Compaq nx9500).
704
705           This driver can also be built as a module. If so, the module
706           will be called cb710-mmc.
707
708 config MMC_VIA_SDMMC
709         tristate "VIA SD/MMC Card Reader Driver"
710         depends on PCI
711         help
712           This selects the VIA SD/MMC Card Reader driver, say Y or M here.
713           VIA provides one multi-functional card reader which integrated into
714           some motherboards manufactured by VIA. This card reader supports
715           SD/MMC/SDHC.
716           If you have a controller with this interface, say Y or M here.
717
718           If unsure, say N.
719
720 config MMC_CAVIUM_OCTEON
721         tristate "Cavium OCTEON SD/MMC Card Interface support"
722         depends on CAVIUM_OCTEON_SOC
723         help
724           This selects Cavium OCTEON SD/MMC card Interface.
725           If you have an OCTEON board with a Multimedia Card slot,
726           say Y or M here.
727
728           If unsure, say N.
729
730 config MMC_CAVIUM_THUNDERX
731         tristate "Cavium ThunderX SD/MMC Card Interface support"
732         depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
733         depends on GPIO_THUNDERX
734         depends on OF_ADDRESS
735         help
736           This selects Cavium ThunderX SD/MMC Card Interface.
737           If you have an Cavium ARM64 board with a Multimedia Card slot
738           or builtin eMMC chip say Y or M here. If built as a module
739           the module will be called thunderx_mmc.ko.
740
741 config MMC_DW
742         tristate "Synopsys DesignWare Memory Card Interface"
743         depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST
744         help
745           This selects support for the Synopsys DesignWare Mobile Storage IP
746           block, this provides host support for SD and MMC interfaces, in both
747           PIO, internal DMA mode and external DMA mode.
748
749 config MMC_DW_PLTFM
750         tristate "Synopsys Designware MCI Support as platform device"
751         depends on MMC_DW
752         default y
753         help
754           This selects the common helper functions support for Host Controller
755           Interface based platform driver. Please select this option if the IP
756           is present as a platform device. This is the common interface for the
757           Synopsys Designware IP.
758
759           If you have a controller with this interface, say Y or M here.
760
761           If unsure, say Y.
762
763 config MMC_DW_BLUEFIELD
764         tristate "BlueField specific extensions for Synopsys DW Memory Card Interface"
765         depends on MMC_DW
766         select MMC_DW_PLTFM
767         help
768           This selects support for Mellanox BlueField SoC specific extensions to
769           the Synopsys DesignWare Memory Card Interface driver. Select this
770           option for platforms based on Mellanox BlueField SoC's.
771
772 config MMC_DW_EXYNOS
773         tristate "Exynos specific extensions for Synopsys DW Memory Card Interface"
774         depends on MMC_DW
775         select MMC_DW_PLTFM
776         help
777           This selects support for Samsung Exynos SoC specific extensions to the
778           Synopsys DesignWare Memory Card Interface driver. Select this option
779           for platforms based on Exynos4 and Exynos5 SoC's.
780
781 config MMC_DW_HI3798CV200
782         tristate "Hi3798CV200 specific extensions for Synopsys DW Memory Card Interface"
783         depends on MMC_DW
784         select MMC_DW_PLTFM
785         help
786           This selects support for HiSilicon Hi3798CV200 SoC specific extensions to the
787           Synopsys DesignWare Memory Card Interface driver. Select this option
788           for platforms based on HiSilicon Hi3798CV200 SoC.
789
790 config MMC_DW_K3
791         tristate "K3 specific extensions for Synopsys DW Memory Card Interface"
792         depends on MMC_DW
793         select MMC_DW_PLTFM
794         help
795           This selects support for Hisilicon K3 SoC specific extensions to the
796           Synopsys DesignWare Memory Card Interface driver. Select this option
797           for platforms based on Hisilicon K3 SoC's.
798
799 config MMC_DW_PCI
800         tristate "Synopsys Designware MCI support on PCI bus"
801         depends on MMC_DW && PCI
802         help
803           This selects the PCI bus for the Synopsys Designware Mobile Storage IP.
804           Select this option if the IP is present on PCI platform.
805
806           If you have a controller with this interface, say Y or M here.
807
808           If unsure, say N.
809
810 config MMC_DW_ROCKCHIP
811         tristate "Rockchip specific extensions for Synopsys DW Memory Card Interface"
812         depends on MMC_DW && ARCH_ROCKCHIP
813         select MMC_DW_PLTFM
814         help
815           This selects support for Rockchip SoC specific extensions to the
816           Synopsys DesignWare Memory Card Interface driver. Select this option
817           for platforms based on RK3066, RK3188 and RK3288 SoC's.
818
819 config MMC_SH_MMCIF
820         tristate "SuperH Internal MMCIF support"
821         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
822         help
823           This selects the MMC Host Interface controller (MMCIF) found in various
824           Renesas SoCs for SH and ARM architectures.
825
826
827 config MMC_JZ4740
828         tristate "Ingenic JZ47xx SD/Multimedia Card Interface support"
829         depends on MIPS
830         help
831           This selects support for the SD/MMC controller on Ingenic
832           JZ4740, JZ4750, JZ4770 and JZ4780 SoCs.
833
834           If you have a board based on such a SoC and with a SD/MMC slot,
835           say Y or M here.
836
837 config MMC_VUB300
838         tristate "VUB300 USB to SDIO/SD/MMC Host Controller support"
839         depends on USB
840         help
841           This selects support for Elan Digital Systems' VUB300 chip.
842
843           The VUB300 is a USB-SDIO Host Controller Interface chip
844           that enables the host computer to use SDIO/SD/MMC cards
845           via a USB 2.0 or USB 1.1 host.
846
847           The VUB300 chip will be found in both physically separate
848           USB to SDIO/SD/MMC adapters and embedded on some motherboards.
849
850           The VUB300 chip supports SD and MMC memory cards in addition
851           to single and multifunction SDIO cards.
852
853           Some SDIO cards will need a firmware file to be loaded and
854           sent to VUB300 chip in order to achieve better data throughput.
855           Download these "Offload Pseudocode" from Elan Digital Systems'
856           web-site http://www.elandigitalsystems.com/support/downloads.php
857           and put them in /lib/firmware. Note that without these additional
858           firmware files the VUB300 chip will still function, but not at
859           the best obtainable data rate.
860
861           To compile this mmc host controller driver as a module,
862           choose M here: the module will be called vub300.
863
864           If you have a computer with an embedded VUB300 chip
865           or if you intend connecting a USB adapter based on a
866           VUB300 chip say Y or M here.
867
868 config MMC_USHC
869         tristate "USB SD Host Controller (USHC) support"
870         depends on USB
871         help
872           This selects support for USB SD Host Controllers based on
873           the Cypress Astoria chip with firmware compliant with CSR's
874           USB SD Host Controller specification (CS-118793-SP).
875
876           CSR boards with this device include: USB<>SDIO (M1985v2),
877           and Ultrasira.
878
879           Note: These controllers only support SDIO cards and do not
880           support MMC or SD memory cards.
881
882 config MMC_WMT
883         tristate "Wondermedia SD/MMC Host Controller support"
884         depends on ARCH_VT8500
885         default y
886         help
887           This selects support for the SD/MMC Host Controller on
888           Wondermedia WM8505/WM8650 based SoCs.
889
890           To compile this driver as a module, choose M here: the
891           module will be called wmt-sdmmc.
892
893 config MMC_USDHI6ROL0
894         tristate "Renesas USDHI6ROL0 SD/SDIO Host Controller support"
895         depends on HAS_DMA
896         help
897           This selects support for the Renesas USDHI6ROL0 SD/SDIO
898           Host Controller
899
900 config MMC_REALTEK_PCI
901         tristate "Realtek PCI-E SD/MMC Card Interface Driver"
902         depends on MISC_RTSX_PCI
903         help
904           Say Y here to include driver code to support SD/MMC card interface
905           of Realtek PCI-E card reader
906
907 config MMC_REALTEK_USB
908         tristate "Realtek USB SD/MMC Card Interface Driver"
909         depends on MISC_RTSX_USB
910         help
911           Say Y here to include driver code to support SD/MMC card interface
912           of Realtek RTS5129/39 series card reader
913
914 config MMC_SUNXI
915         tristate "Allwinner sunxi SD/MMC Host Controller support"
916         depends on ARCH_SUNXI || COMPILE_TEST
917         depends on SUNXI_CCU
918         help
919           This selects support for the SD/MMC Host Controller on
920           Allwinner sunxi SoCs.
921
922 config MMC_CQHCI
923         tristate "Command Queue Host Controller Interface support"
924         depends on HAS_DMA
925         help
926           This selects the Command Queue Host Controller Interface (CQHCI)
927           support present in host controllers of Qualcomm Technologies, Inc
928           amongst others.
929           This controller supports eMMC devices with command queue support.
930
931           If you have a controller with this interface, say Y or M here.
932
933           If unsure, say N.
934
935 config MMC_HSQ
936         tristate "MMC Host Software Queue support"
937         help
938           This selects the MMC Host Software Queue support. This may increase
939           performance, if the host controller and its driver supports it.
940
941           If you have a controller/driver supporting this interface, say Y or M
942           here.
943
944           If unsure, say N.
945
946 config MMC_TOSHIBA_PCI
947         tristate "Toshiba Type A SD/MMC Card Interface Driver"
948         depends on PCI
949
950 config MMC_BCM2835
951         tristate "Broadcom BCM2835 SDHOST MMC Controller support"
952         depends on ARCH_BCM2835 || COMPILE_TEST
953         help
954           This selects the BCM2835 SDHOST MMC controller. If you have
955           a BCM2835 platform with SD or MMC devices, say Y or M here.
956
957           Note that the BCM2835 has two SD controllers: The Arasan
958           sdhci controller (supported by MMC_SDHCI_IPROC) and a custom
959           sdhost controller (supported by this driver).
960
961           If unsure, say N.
962
963 config MMC_MTK
964         tristate "MediaTek SD/MMC Card Interface support"
965         depends on HAS_DMA
966         depends on COMMON_CLK
967         select REGULATOR
968         select MMC_CQHCI
969         help
970           This selects the MediaTek(R) Secure digital and Multimedia card Interface.
971           If you have a machine with a integrated SD/MMC card reader, say Y or M here.
972           This is needed if support for any SD/SDIO/MMC devices is required.
973           If unsure, say N.
974
975 config MMC_SDHCI_MICROCHIP_PIC32
976         tristate "Microchip PIC32MZDA SDHCI support"
977         depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM
978         help
979           This selects the Secure Digital Host Controller Interface (SDHCI)
980           for PIC32MZDA platform.
981
982           If you have a controller with this interface, say Y or M here.
983
984           If unsure, say N.
985
986 config MMC_SDHCI_BRCMSTB
987         tristate "Broadcom SDIO/SD/MMC support"
988         depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
989         depends on MMC_SDHCI_PLTFM
990         select MMC_CQHCI
991         default ARCH_BRCMSTB || BMIPS_GENERIC
992         help
993           This selects support for the SDIO/SD/MMC Host Controller on
994           Broadcom STB SoCs.
995
996           If unsure, say Y.
997
998 config MMC_SDHCI_XENON
999         tristate "Marvell Xenon eMMC/SD/SDIO SDHCI driver"
1000         depends on MMC_SDHCI_PLTFM
1001         help
1002           This selects Marvell Xenon eMMC/SD/SDIO SDHCI.
1003           If you have a controller with this interface, say Y or M here.
1004           If unsure, say N.
1005
1006 config MMC_SDHCI_OMAP
1007         tristate "TI SDHCI Controller Support"
1008         depends on MMC_SDHCI_PLTFM && OF
1009         select THERMAL
1010         imply TI_SOC_THERMAL
1011         select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE
1012         help
1013           This selects the Secure Digital Host Controller Interface (SDHCI)
1014           support present in TI's DRA7 SOCs. The controller supports
1015           SD/MMC/SDIO devices.
1016
1017           If you have a controller with this interface, say Y or M here.
1018
1019           If unsure, say N.
1020
1021 config MMC_SDHCI_AM654
1022         tristate "Support for the SDHCI Controller in TI's AM654 SOCs"
1023         depends on MMC_SDHCI_PLTFM && OF
1024         select MMC_SDHCI_IO_ACCESSORS
1025         select MMC_CQHCI
1026         select REGMAP_MMIO
1027         help
1028           This selects the Secure Digital Host Controller Interface (SDHCI)
1029           support present in TI's AM654 SOCs. The controller supports
1030           SD/MMC/SDIO devices.
1031
1032           If you have a controller with this interface, say Y or M here.
1033
1034           If unsure, say N.
1035
1036 config MMC_OWL
1037         tristate "Actions Semi Owl SD/MMC Host Controller support"
1038         depends on HAS_DMA
1039         depends on ARCH_ACTIONS || COMPILE_TEST
1040         help
1041           This selects support for the SD/MMC Host Controller on
1042           Actions Semi Owl SoCs.
1043
1044 config MMC_SDHCI_EXTERNAL_DMA
1045         bool
1046
1047 config MMC_LITEX
1048         tristate "LiteX MMC Host Controller support"
1049         depends on ((PPC_MICROWATT || LITEX) && OF && HAVE_CLK) || COMPILE_TEST
1050         select REGULATOR
1051         select REGULATOR_FIXED_VOLTAGE
1052         help
1053           This selects support for the MMC Host Controller found in LiteX SoCs.
1054
1055           To compile this driver as a module, choose M here: the
1056           module will be called litex_mmc.
1057
1058           If unsure, say N.