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