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