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