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