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