xref: /openbmc/linux/drivers/mmc/host/Kconfig (revision baa7eb025ab14f3cba2e35c0a8648f9c9f01d24f)
1#
2# MMC/SD host controller drivers
3#
4
5comment "MMC/SD/SDIO Host Controller Drivers"
6
7config MMC_ARMMMCI
8	tristate "ARM AMBA Multimedia Card Interface support"
9	depends on ARM_AMBA
10	help
11	  This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
12	  Interface (PL180 and PL181) support.  If you have an ARM(R)
13	  platform with a Multimedia Card slot, say Y or M here.
14
15	  If unsure, say N.
16
17config MMC_PXA
18	tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
19	depends on ARCH_PXA
20	help
21	  This selects the Intel(R) PXA(R) Multimedia card Interface.
22	  If you have a PXA(R) platform with a Multimedia Card slot,
23	  say Y or M here.
24
25	  If unsure, say N.
26
27config MMC_SDHCI
28	tristate "Secure Digital Host Controller Interface support"
29	depends on HAS_DMA
30	help
31	  This selects the generic Secure Digital Host Controller Interface.
32	  It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
33	  and Toshiba(R). Most controllers found in laptops are of this type.
34
35	  If you have a controller with this interface, say Y or M here. You
36	  also need to enable an appropriate bus interface.
37
38	  If unsure, say N.
39
40config MMC_SDHCI_IO_ACCESSORS
41	bool
42	depends on MMC_SDHCI
43	help
44	  This is silent Kconfig symbol that is selected by the drivers that
45	  need to overwrite SDHCI IO memory accessors.
46
47config MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
48	bool
49	select MMC_SDHCI_IO_ACCESSORS
50	help
51	  This option is selected by drivers running on big endian hosts
52	  and performing I/O to a SDHCI controller through a bus that
53	  implements a hardware byte swapper using a 32-bit datum.
54	  This endian mapping mode is called "data invariance" and
55	  has the effect of scrambling the addresses and formats of data
56	  accessed in sizes other than the datum size.
57
58	  This is the case for the Freescale eSDHC and Nintendo Wii SDHCI.
59
60config MMC_SDHCI_PCI
61	tristate "SDHCI support on PCI bus"
62	depends on MMC_SDHCI && PCI
63	help
64	  This selects the PCI Secure Digital Host Controller Interface.
65	  Most controllers found today are PCI devices.
66
67	  If you have a controller with this interface, say Y or M here.
68
69	  If unsure, say N.
70
71config MMC_RICOH_MMC
72	bool "Ricoh MMC Controller Disabler  (EXPERIMENTAL)"
73	depends on MMC_SDHCI_PCI
74	help
75	  This adds a pci quirk to disable Ricoh MMC Controller. This
76	  proprietary controller is unnecessary because the SDHCI driver
77	  supports MMC cards on the SD controller, but if it is not
78	  disabled, it will steal the MMC cards away - rendering them
79	  useless. It is safe to select this even if you don't
80	  have a Ricoh based card reader.
81
82	  If unsure, say Y.
83
84config MMC_SDHCI_OF
85	tristate "SDHCI support on OpenFirmware platforms"
86	depends on MMC_SDHCI && PPC_OF
87	help
88	  This selects the OF support for Secure Digital Host Controller
89	  Interfaces.
90
91	  If unsure, say N.
92
93config MMC_SDHCI_OF_ESDHC
94	bool "SDHCI OF support for the Freescale eSDHC controller"
95	depends on MMC_SDHCI_OF
96	select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
97	help
98	  This selects the Freescale eSDHC controller support.
99
100	  If unsure, say N.
101
102config MMC_SDHCI_OF_HLWD
103	bool "SDHCI OF support for the Nintendo Wii SDHCI controllers"
104	depends on MMC_SDHCI_OF
105	select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
106	help
107	  This selects the Secure Digital Host Controller Interface (SDHCI)
108	  found in the "Hollywood" chipset of the Nintendo Wii video game
109	  console.
110
111	  If unsure, say N.
112
113config MMC_SDHCI_PLTFM
114	tristate "SDHCI support on the platform specific bus"
115	depends on MMC_SDHCI
116	help
117	  This selects the platform specific bus support for Secure Digital Host
118	  Controller Interface.
119
120	  If you have a controller with this interface, say Y or M here.
121
122	  If unsure, say N.
123
124config MMC_SDHCI_CNS3XXX
125	bool "SDHCI support on the Cavium Networks CNS3xxx SoC"
126	depends on ARCH_CNS3XXX
127	depends on MMC_SDHCI_PLTFM
128	help
129	  This selects the SDHCI support for CNS3xxx System-on-Chip devices.
130
131	  If unsure, say N.
132
133config MMC_SDHCI_ESDHC_IMX
134	bool "SDHCI platform support for the Freescale eSDHC i.MX controller"
135	depends on MMC_SDHCI_PLTFM && (ARCH_MX25 || ARCH_MX35 || ARCH_MX5)
136	select MMC_SDHCI_IO_ACCESSORS
137	help
138	  This selects the Freescale eSDHC controller support on the platform
139	  bus, found on platforms like mx35/51.
140
141	  If unsure, say N.
142
143config MMC_SDHCI_S3C
144	tristate "SDHCI support on Samsung S3C SoC"
145	depends on MMC_SDHCI && PLAT_SAMSUNG
146	help
147	  This selects the Secure Digital Host Controller Interface (SDHCI)
148	  often referrered to as the HSMMC block in some of the Samsung S3C
149	  range of SoC.
150
151	  Note, due to the problems with DMA, the DMA support is only
152	  available with CONFIG_EXPERIMENTAL is selected.
153
154	  If you have a controller with this interface, say Y or M here.
155
156	  If unsure, say N.
157
158config MMC_SDHCI_PXA
159	tristate "Marvell PXA168/PXA910/MMP2 SD Host Controller support"
160	depends on ARCH_PXA || ARCH_MMP
161	select MMC_SDHCI
162	select MMC_SDHCI_IO_ACCESSORS
163	help
164	  This selects the Marvell(R) PXA168/PXA910/MMP2 SD Host Controller.
165	  If you have a PXA168/PXA910/MMP2 platform with SD Host Controller
166	  and a card slot, say Y or M here.
167
168	  If unsure, say N.
169
170config MMC_SDHCI_SPEAR
171	tristate "SDHCI support on ST SPEAr platform"
172	depends on MMC_SDHCI && PLAT_SPEAR
173	help
174	  This selects the Secure Digital Host Controller Interface (SDHCI)
175	  often referrered to as the HSMMC block in some of the ST SPEAR range
176	  of SoC
177
178	  If you have a controller with this interface, say Y or M here.
179
180	  If unsure, say N.
181
182config MMC_SDHCI_S3C_DMA
183	bool "DMA support on S3C SDHCI"
184	depends on MMC_SDHCI_S3C && EXPERIMENTAL
185	help
186	  Enable DMA support on the Samsung S3C SDHCI glue. The DMA
187	  has proved to be problematic if the controller encounters
188	  certain errors, and thus should be treated with care.
189
190	  YMMV.
191
192config MMC_OMAP
193	tristate "TI OMAP Multimedia Card Interface support"
194	depends on ARCH_OMAP
195	select TPS65010 if MACH_OMAP_H2
196	help
197	  This selects the TI OMAP Multimedia card Interface.
198	  If you have an OMAP board with a Multimedia Card slot,
199	  say Y or M here.
200
201	  If unsure, say N.
202
203config MMC_OMAP_HS
204	tristate "TI OMAP High Speed Multimedia Card Interface support"
205	depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
206	help
207	  This selects the TI OMAP High Speed Multimedia card Interface.
208	  If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
209	  Multimedia Card slot, say Y or M here.
210
211	  If unsure, say N.
212
213config MMC_WBSD
214	tristate "Winbond W83L51xD SD/MMC Card Interface support"
215	depends on ISA_DMA_API
216	help
217	  This selects the Winbond(R) W83L51xD Secure digital and
218          Multimedia card Interface.
219	  If you have a machine with a integrated W83L518D or W83L519D
220	  SD/MMC card reader, say Y or M here.
221
222	  If unsure, say N.
223
224config MMC_AU1X
225	tristate "Alchemy AU1XX0 MMC Card Interface support"
226	depends on SOC_AU1200
227	help
228	  This selects the AMD Alchemy(R) Multimedia card interface.
229	  If you have a Alchemy platform with a MMC slot, say Y or M here.
230
231	  If unsure, say N.
232
233choice
234	prompt "Atmel SD/MMC Driver"
235	depends on AVR32 || ARCH_AT91
236	default MMC_ATMELMCI if AVR32
237	help
238	  Choose which driver to use for the Atmel MCI Silicon
239
240config MMC_AT91
241	tristate "AT91 SD/MMC Card Interface support"
242	depends on ARCH_AT91
243	help
244	  This selects the AT91 MCI controller.
245
246	  If unsure, say N.
247
248config MMC_ATMELMCI
249	tristate "Atmel Multimedia Card Interface support"
250	depends on AVR32 || ARCH_AT91
251	help
252	  This selects the Atmel Multimedia Card Interface driver. If
253	  you have an AT32 (AVR32) or AT91 platform with a Multimedia
254	  Card slot, say Y or M here.
255
256	  If unsure, say N.
257
258endchoice
259
260config MMC_ATMELMCI_DMA
261	bool "Atmel MCI DMA support (EXPERIMENTAL)"
262	depends on MMC_ATMELMCI && (AVR32 || ARCH_AT91SAM9G45) && DMA_ENGINE && EXPERIMENTAL
263	help
264	  Say Y here to have the Atmel MCI driver use a DMA engine to
265	  do data transfers and thus increase the throughput and
266	  reduce the CPU utilization. Note that this is highly
267	  experimental and may cause the driver to lock up.
268
269	  If unsure, say N.
270
271config MMC_IMX
272	tristate "Motorola i.MX Multimedia Card Interface support"
273	depends on ARCH_MX1
274	help
275	  This selects the Motorola i.MX Multimedia card Interface.
276	  If you have a i.MX platform with a Multimedia Card slot,
277	  say Y or M here.
278
279	  If unsure, say N.
280
281config MMC_MSM
282	tristate "Qualcomm SDCC Controller Support"
283	depends on MMC && ARCH_MSM
284	help
285	  This provides support for the SD/MMC cell found in the
286	  MSM and QSD SOCs from Qualcomm. The controller also has
287	  support for SDIO devices.
288
289config MMC_MXC
290	tristate "Freescale i.MX2/3 Multimedia Card Interface support"
291	depends on ARCH_MXC
292	help
293	  This selects the Freescale i.MX2/3 Multimedia card Interface.
294	  If you have a i.MX platform with a Multimedia Card slot,
295	  say Y or M here.
296
297	  If unsure, say N.
298
299config MMC_TIFM_SD
300	tristate "TI Flash Media MMC/SD Interface support  (EXPERIMENTAL)"
301	depends on EXPERIMENTAL && PCI
302	select TIFM_CORE
303	help
304	  Say Y here if you want to be able to access MMC/SD cards with
305	  the Texas Instruments(R) Flash Media card reader, found in many
306	  laptops.
307	  This option 'selects' (turns on, enables) 'TIFM_CORE', but you
308	  probably also need appropriate card reader host adapter, such as
309	  'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
310	  (TIFM_7XX1)'.
311
312          To compile this driver as a module, choose M here: the
313	  module will be called tifm_sd.
314
315config MMC_MVSDIO
316	tristate "Marvell MMC/SD/SDIO host driver"
317	depends on PLAT_ORION
318	---help---
319	  This selects the Marvell SDIO host driver.
320	  SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
321	  SoC controllers.
322
323	  To compile this driver as a module, choose M here: the
324	  module will be called mvsdio.
325
326config MMC_DAVINCI
327        tristate "TI DAVINCI Multimedia Card Interface support"
328        depends on ARCH_DAVINCI
329        help
330          This selects the TI DAVINCI Multimedia card Interface.
331          If you have an DAVINCI board with a Multimedia Card slot,
332          say Y or M here.  If unsure, say N.
333
334config MMC_SPI
335	tristate "MMC/SD/SDIO over SPI"
336	depends on SPI_MASTER && !HIGHMEM && HAS_DMA
337	select CRC7
338	select CRC_ITU_T
339	help
340	  Some systems access MMC/SD/SDIO cards using a SPI controller
341	  instead of using a "native" MMC/SD/SDIO controller.  This has a
342	  disadvantage of being relatively high overhead, but a compensating
343	  advantage of working on many systems without dedicated MMC/SD/SDIO
344	  controllers.
345
346	  If unsure, or if your system has no SPI master driver, say N.
347
348config MMC_S3C
349	tristate "Samsung S3C SD/MMC Card Interface support"
350	depends on ARCH_S3C2410
351	help
352	  This selects a driver for the MCI interface found in
353          Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
354	  If you have a board based on one of those and a MMC/SD
355	  slot, say Y or M here.
356
357	  If unsure, say N.
358
359config MMC_S3C_HW_SDIO_IRQ
360       bool "Hardware support for SDIO IRQ"
361       depends on MMC_S3C
362       help
363         Enable the hardware support for SDIO interrupts instead of using
364	 the generic polling code.
365
366choice
367	prompt "Samsung S3C SD/MMC transfer code"
368	depends on MMC_S3C
369
370config MMC_S3C_PIO
371	bool "Use PIO transfers only"
372	help
373	  Use PIO to transfer data between memory and the hardware.
374
375	  PIO is slower than DMA as it requires CPU instructions to
376	  move the data. This has been the traditional default for
377	  the S3C MCI driver.
378
379config MMC_S3C_DMA
380	bool "Use DMA transfers only (EXPERIMENTAL)"
381	depends on EXPERIMENTAL
382	help
383	  Use DMA to transfer data between memory and the hardare.
384
385	  Currently, the DMA support in this driver seems to not be
386	  working properly and needs to be debugged before this
387	  option is useful.
388
389config MMC_S3C_PIODMA
390	bool "Support for both PIO and DMA (EXPERIMENTAL)"
391	help
392	  Compile both the PIO and DMA transfer routines into the
393	  driver and let the platform select at run-time which one
394	  is best.
395
396	  See notes for the DMA option.
397
398endchoice
399
400config MMC_SDRICOH_CS
401	tristate "MMC/SD driver for Ricoh Bay1Controllers (EXPERIMENTAL)"
402	depends on EXPERIMENTAL && PCI && PCMCIA
403	help
404	  Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
405	  card whenever you insert a MMC or SD card into the card slot.
406
407	  To compile this driver as a module, choose M here: the
408	  module will be called sdricoh_cs.
409
410config MMC_TMIO
411	tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
412	depends on MFD_TMIO || MFD_ASIC3 || MFD_SH_MOBILE_SDHI
413	help
414	  This provides support for the SD/MMC cell found in TC6393XB,
415	  T7L66XB and also HTC ASIC3
416
417config MMC_CB710
418	tristate "ENE CB710 MMC/SD Interface support"
419	depends on PCI
420	select MISC_DEVICES
421	select CB710_CORE
422	help
423	  This option enables support for MMC/SD part of ENE CB710/720 Flash
424	  memory card reader found in some laptops (ie. some versions of
425	  HP Compaq nx9500).
426
427	  This driver can also be built as a module. If so, the module
428	  will be called cb710-mmc.
429
430config MMC_VIA_SDMMC
431	tristate "VIA SD/MMC Card Reader Driver"
432	depends on PCI
433	help
434	  This selects the VIA SD/MMC Card Reader driver, say Y or M here.
435	  VIA provides one multi-functional card reader which integrated into
436	  some motherboards manufactured by VIA. This card reader supports
437	  SD/MMC/SDHC.
438	  If you have a controller with this interface, say Y or M here.
439
440	  If unsure, say N.
441
442config SDH_BFIN
443	tristate "Blackfin Secure Digital Host support"
444	depends on (BF54x && !BF544) || (BF51x && !BF512)
445	help
446	  If you say yes here you will get support for the Blackfin on-chip
447	  Secure Digital Host interface.  This includes support for MMC and
448	  SD cards.
449
450	  To compile this driver as a module, choose M here: the
451	  module will be called bfin_sdh.
452
453	  If unsure, say N.
454
455config SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND
456	bool "Blackfin EZkit Missing SDH_CMD Pull Up Resistor Workaround"
457	depends on SDH_BFIN
458	help
459	  If you say yes here SD-Cards may work on the EZkit.
460
461config MMC_SH_MMCIF
462	tristate "SuperH Internal MMCIF support"
463	depends on MMC_BLOCK && (SUPERH || ARCH_SHMOBILE)
464	help
465	  This selects the MMC Host Interface controler (MMCIF).
466
467	  This driver supports MMCIF in sh7724/sh7757/sh7372.
468
469config MMC_JZ4740
470	tristate "JZ4740 SD/Multimedia Card Interface support"
471	depends on MACH_JZ4740
472	help
473	  This selects support for the SD/MMC controller on Ingenic JZ4740
474	  SoCs.
475	  If you have a board based on such a SoC and with a SD/MMC slot,
476	  say Y or M here.
477
478config MMC_USHC
479	tristate "USB SD Host Controller (USHC) support"
480	depends on USB
481	help
482	  This selects support for USB SD Host Controllers based on
483	  the Cypress Astoria chip with firmware compliant with CSR's
484	  USB SD Host Controller specification (CS-118793-SP).
485
486	  CSR boards with this device include: USB<>SDIO (M1985v2),
487	  and Ultrasira.
488
489	  Note: These controllers only support SDIO cards and do not
490	  support MMC or SD memory cards.
491