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 && 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	depends on PPC_OF
97	select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
98	help
99	  This selects the Freescale eSDHC controller support.
100
101	  If unsure, say N.
102
103config MMC_SDHCI_OF_HLWD
104	bool "SDHCI OF support for the Nintendo Wii SDHCI controllers"
105	depends on MMC_SDHCI_OF
106	depends on PPC_OF
107	select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
108	help
109	  This selects the Secure Digital Host Controller Interface (SDHCI)
110	  found in the "Hollywood" chipset of the Nintendo Wii video game
111	  console.
112
113	  If unsure, say N.
114
115config MMC_SDHCI_PLTFM
116	tristate "SDHCI support on the platform specific bus"
117	depends on MMC_SDHCI
118	help
119	  This selects the platform specific bus support for Secure Digital Host
120	  Controller Interface.
121
122	  If you have a controller with this interface, say Y or M here.
123
124	  If unsure, say N.
125
126config MMC_SDHCI_CNS3XXX
127	bool "SDHCI support on the Cavium Networks CNS3xxx SoC"
128	depends on ARCH_CNS3XXX
129	depends on MMC_SDHCI_PLTFM
130	help
131	  This selects the SDHCI support for CNS3xxx System-on-Chip devices.
132
133	  If unsure, say N.
134
135config MMC_SDHCI_ESDHC_IMX
136	bool "SDHCI platform support for the Freescale eSDHC i.MX controller"
137	depends on MMC_SDHCI_PLTFM && (ARCH_MX25 || ARCH_MX35 || ARCH_MX5)
138	select MMC_SDHCI_IO_ACCESSORS
139	help
140	  This selects the Freescale eSDHC controller support on the platform
141	  bus, found on platforms like mx35/51.
142
143	  If unsure, say N.
144
145config MMC_SDHCI_DOVE
146	bool "SDHCI support on Marvell's Dove SoC"
147	depends on ARCH_DOVE
148	depends on MMC_SDHCI_PLTFM
149	select MMC_SDHCI_IO_ACCESSORS
150	help
151	  This selects the Secure Digital Host Controller Interface in
152	  Marvell's Dove SoC.
153
154	  If unsure, say N.
155
156config MMC_SDHCI_TEGRA
157	tristate "SDHCI platform support for the Tegra SD/MMC Controller"
158	depends on MMC_SDHCI_PLTFM && ARCH_TEGRA
159	select MMC_SDHCI_IO_ACCESSORS
160	help
161	  This selects the Tegra SD/MMC controller. If you have a Tegra
162	  platform with SD or MMC devices, say Y or M here.
163
164	  If unsure, say N.
165
166config MMC_SDHCI_S3C
167	tristate "SDHCI support on Samsung S3C SoC"
168	depends on MMC_SDHCI && PLAT_SAMSUNG
169	help
170	  This selects the Secure Digital Host Controller Interface (SDHCI)
171	  often referrered to as the HSMMC block in some of the Samsung S3C
172	  range of SoC.
173
174	  Note, due to the problems with DMA, the DMA support is only
175	  available with CONFIG_EXPERIMENTAL is selected.
176
177	  If you have a controller with this interface, say Y or M here.
178
179	  If unsure, say N.
180
181config MMC_SDHCI_PXA
182	tristate "Marvell PXA168/PXA910/MMP2 SD Host Controller support"
183	depends on ARCH_PXA || ARCH_MMP
184	select MMC_SDHCI
185	select MMC_SDHCI_IO_ACCESSORS
186	help
187	  This selects the Marvell(R) PXA168/PXA910/MMP2 SD Host Controller.
188	  If you have a PXA168/PXA910/MMP2 platform with SD Host Controller
189	  and a card slot, say Y or M here.
190
191	  If unsure, say N.
192
193config MMC_SDHCI_SPEAR
194	tristate "SDHCI support on ST SPEAr platform"
195	depends on MMC_SDHCI && PLAT_SPEAR
196	help
197	  This selects the Secure Digital Host Controller Interface (SDHCI)
198	  often referrered to as the HSMMC block in some of the ST SPEAR range
199	  of SoC
200
201	  If you have a controller with this interface, say Y or M here.
202
203	  If unsure, say N.
204
205config MMC_SDHCI_S3C_DMA
206	bool "DMA support on S3C SDHCI"
207	depends on MMC_SDHCI_S3C && EXPERIMENTAL
208	help
209	  Enable DMA support on the Samsung S3C SDHCI glue. The DMA
210	  has proved to be problematic if the controller encounters
211	  certain errors, and thus should be treated with care.
212
213	  YMMV.
214
215config MMC_OMAP
216	tristate "TI OMAP Multimedia Card Interface support"
217	depends on ARCH_OMAP
218	select TPS65010 if MACH_OMAP_H2
219	help
220	  This selects the TI OMAP Multimedia card Interface.
221	  If you have an OMAP board with a Multimedia Card slot,
222	  say Y or M here.
223
224	  If unsure, say N.
225
226config MMC_OMAP_HS
227	tristate "TI OMAP High Speed Multimedia Card Interface support"
228	depends on SOC_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
229	help
230	  This selects the TI OMAP High Speed Multimedia card Interface.
231	  If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
232	  Multimedia Card slot, say Y or M here.
233
234	  If unsure, say N.
235
236config MMC_WBSD
237	tristate "Winbond W83L51xD SD/MMC Card Interface support"
238	depends on ISA_DMA_API
239	help
240	  This selects the Winbond(R) W83L51xD Secure digital and
241          Multimedia card Interface.
242	  If you have a machine with a integrated W83L518D or W83L519D
243	  SD/MMC card reader, say Y or M here.
244
245	  If unsure, say N.
246
247config MMC_AU1X
248	tristate "Alchemy AU1XX0 MMC Card Interface support"
249	depends on SOC_AU1200
250	help
251	  This selects the AMD Alchemy(R) Multimedia card interface.
252	  If you have a Alchemy platform with a MMC slot, say Y or M here.
253
254	  If unsure, say N.
255
256choice
257	prompt "Atmel SD/MMC Driver"
258	depends on AVR32 || ARCH_AT91
259	default MMC_ATMELMCI if AVR32
260	help
261	  Choose which driver to use for the Atmel MCI Silicon
262
263config MMC_AT91
264	tristate "AT91 SD/MMC Card Interface support"
265	depends on ARCH_AT91
266	help
267	  This selects the AT91 MCI controller.
268
269	  If unsure, say N.
270
271config MMC_ATMELMCI
272	tristate "Atmel Multimedia Card Interface support"
273	depends on AVR32 || ARCH_AT91
274	help
275	  This selects the Atmel Multimedia Card Interface driver. If
276	  you have an AT32 (AVR32) or AT91 platform with a Multimedia
277	  Card slot, say Y or M here.
278
279	  If unsure, say N.
280
281endchoice
282
283config MMC_ATMELMCI_DMA
284	bool "Atmel MCI DMA support (EXPERIMENTAL)"
285	depends on MMC_ATMELMCI && (AVR32 || ARCH_AT91SAM9G45) && DMA_ENGINE && EXPERIMENTAL
286	help
287	  Say Y here to have the Atmel MCI driver use a DMA engine to
288	  do data transfers and thus increase the throughput and
289	  reduce the CPU utilization. Note that this is highly
290	  experimental and may cause the driver to lock up.
291
292	  If unsure, say N.
293
294config MMC_IMX
295	tristate "Motorola i.MX Multimedia Card Interface support"
296	depends on ARCH_MX1
297	help
298	  This selects the Motorola i.MX Multimedia card Interface.
299	  If you have a i.MX platform with a Multimedia Card slot,
300	  say Y or M here.
301
302	  If unsure, say N.
303
304config MMC_MSM
305	tristate "Qualcomm SDCC Controller Support"
306	depends on MMC && ARCH_MSM
307	help
308	  This provides support for the SD/MMC cell found in the
309	  MSM and QSD SOCs from Qualcomm. The controller also has
310	  support for SDIO devices.
311
312config MMC_MXC
313	tristate "Freescale i.MX2/3 Multimedia Card Interface support"
314	depends on MACH_MX21 || MACH_MX27 || ARCH_MX31
315	help
316	  This selects the Freescale i.MX2/3 Multimedia card Interface.
317	  If you have a i.MX platform with a Multimedia Card slot,
318	  say Y or M here.
319
320	  If unsure, say N.
321
322config MMC_MXS
323	tristate "Freescale MXS Multimedia Card Interface support"
324	depends on ARCH_MXS && MXS_DMA
325	help
326	  This selects the Freescale SSP MMC controller found on MXS based
327	  platforms like mx23/28.
328
329	  If unsure, say N.
330
331config MMC_TIFM_SD
332	tristate "TI Flash Media MMC/SD Interface support  (EXPERIMENTAL)"
333	depends on EXPERIMENTAL && PCI
334	select TIFM_CORE
335	help
336	  Say Y here if you want to be able to access MMC/SD cards with
337	  the Texas Instruments(R) Flash Media card reader, found in many
338	  laptops.
339	  This option 'selects' (turns on, enables) 'TIFM_CORE', but you
340	  probably also need appropriate card reader host adapter, such as
341	  'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
342	  (TIFM_7XX1)'.
343
344          To compile this driver as a module, choose M here: the
345	  module will be called tifm_sd.
346
347config MMC_MVSDIO
348	tristate "Marvell MMC/SD/SDIO host driver"
349	depends on PLAT_ORION
350	---help---
351	  This selects the Marvell SDIO host driver.
352	  SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
353	  SoC controllers.
354
355	  To compile this driver as a module, choose M here: the
356	  module will be called mvsdio.
357
358config MMC_DAVINCI
359        tristate "TI DAVINCI Multimedia Card Interface support"
360        depends on ARCH_DAVINCI
361        help
362          This selects the TI DAVINCI Multimedia card Interface.
363          If you have an DAVINCI board with a Multimedia Card slot,
364          say Y or M here.  If unsure, say N.
365
366config MMC_SPI
367	tristate "MMC/SD/SDIO over SPI"
368	depends on SPI_MASTER && !HIGHMEM && HAS_DMA
369	select CRC7
370	select CRC_ITU_T
371	help
372	  Some systems access MMC/SD/SDIO cards using a SPI controller
373	  instead of using a "native" MMC/SD/SDIO controller.  This has a
374	  disadvantage of being relatively high overhead, but a compensating
375	  advantage of working on many systems without dedicated MMC/SD/SDIO
376	  controllers.
377
378	  If unsure, or if your system has no SPI master driver, say N.
379
380config MMC_S3C
381	tristate "Samsung S3C SD/MMC Card Interface support"
382	depends on ARCH_S3C2410
383	help
384	  This selects a driver for the MCI interface found in
385          Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
386	  If you have a board based on one of those and a MMC/SD
387	  slot, say Y or M here.
388
389	  If unsure, say N.
390
391config MMC_S3C_HW_SDIO_IRQ
392       bool "Hardware support for SDIO IRQ"
393       depends on MMC_S3C
394       help
395         Enable the hardware support for SDIO interrupts instead of using
396	 the generic polling code.
397
398choice
399	prompt "Samsung S3C SD/MMC transfer code"
400	depends on MMC_S3C
401
402config MMC_S3C_PIO
403	bool "Use PIO transfers only"
404	help
405	  Use PIO to transfer data between memory and the hardware.
406
407	  PIO is slower than DMA as it requires CPU instructions to
408	  move the data. This has been the traditional default for
409	  the S3C MCI driver.
410
411config MMC_S3C_DMA
412	bool "Use DMA transfers only (EXPERIMENTAL)"
413	depends on EXPERIMENTAL
414	help
415	  Use DMA to transfer data between memory and the hardare.
416
417	  Currently, the DMA support in this driver seems to not be
418	  working properly and needs to be debugged before this
419	  option is useful.
420
421config MMC_S3C_PIODMA
422	bool "Support for both PIO and DMA (EXPERIMENTAL)"
423	help
424	  Compile both the PIO and DMA transfer routines into the
425	  driver and let the platform select at run-time which one
426	  is best.
427
428	  See notes for the DMA option.
429
430endchoice
431
432config MMC_SDRICOH_CS
433	tristate "MMC/SD driver for Ricoh Bay1Controllers (EXPERIMENTAL)"
434	depends on EXPERIMENTAL && PCI && PCMCIA
435	help
436	  Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
437	  card whenever you insert a MMC or SD card into the card slot.
438
439	  To compile this driver as a module, choose M here: the
440	  module will be called sdricoh_cs.
441
442config MMC_TMIO_CORE
443	tristate
444
445config MMC_TMIO
446	tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
447	depends on MFD_TMIO || MFD_ASIC3
448	select MMC_TMIO_CORE
449	help
450	  This provides support for the SD/MMC cell found in TC6393XB,
451	  T7L66XB and also HTC ASIC3
452
453config MMC_SDHI
454	tristate "SH-Mobile SDHI SD/SDIO controller support"
455	depends on SUPERH || ARCH_SHMOBILE
456	select MMC_TMIO_CORE
457	help
458	  This provides support for the SDHI SD/SDIO controller found in
459	  SuperH and ARM SH-Mobile SoCs
460
461config MMC_CB710
462	tristate "ENE CB710 MMC/SD Interface support"
463	depends on PCI
464	select MISC_DEVICES
465	select CB710_CORE
466	help
467	  This option enables support for MMC/SD part of ENE CB710/720 Flash
468	  memory card reader found in some laptops (ie. some versions of
469	  HP Compaq nx9500).
470
471	  This driver can also be built as a module. If so, the module
472	  will be called cb710-mmc.
473
474config MMC_VIA_SDMMC
475	tristate "VIA SD/MMC Card Reader Driver"
476	depends on PCI
477	help
478	  This selects the VIA SD/MMC Card Reader driver, say Y or M here.
479	  VIA provides one multi-functional card reader which integrated into
480	  some motherboards manufactured by VIA. This card reader supports
481	  SD/MMC/SDHC.
482	  If you have a controller with this interface, say Y or M here.
483
484	  If unsure, say N.
485
486config SDH_BFIN
487	tristate "Blackfin Secure Digital Host support"
488	depends on (BF54x && !BF544) || (BF51x && !BF512)
489	help
490	  If you say yes here you will get support for the Blackfin on-chip
491	  Secure Digital Host interface.  This includes support for MMC and
492	  SD cards.
493
494	  To compile this driver as a module, choose M here: the
495	  module will be called bfin_sdh.
496
497	  If unsure, say N.
498
499config SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND
500	bool "Blackfin EZkit Missing SDH_CMD Pull Up Resistor Workaround"
501	depends on SDH_BFIN
502	help
503	  If you say yes here SD-Cards may work on the EZkit.
504
505config MMC_DW
506	tristate "Synopsys DesignWare Memory Card Interface"
507	depends on ARM
508	help
509	  This selects support for the Synopsys DesignWare Mobile Storage IP
510	  block, this provides host support for SD and MMC interfaces, in both
511	  PIO and external DMA modes.
512
513config MMC_DW_IDMAC
514	bool "Internal DMAC interface"
515	depends on MMC_DW
516	help
517	  This selects support for the internal DMAC block within the Synopsys
518	  Designware Mobile Storage IP block. This disables the external DMA
519	  interface.
520
521config MMC_SH_MMCIF
522	tristate "SuperH Internal MMCIF support"
523	depends on MMC_BLOCK && (SUPERH || ARCH_SHMOBILE)
524	help
525	  This selects the MMC Host Interface controller (MMCIF).
526
527	  This driver supports MMCIF in sh7724/sh7757/sh7372.
528
529config MMC_JZ4740
530	tristate "JZ4740 SD/Multimedia Card Interface support"
531	depends on MACH_JZ4740
532	help
533	  This selects support for the SD/MMC controller on Ingenic JZ4740
534	  SoCs.
535	  If you have a board based on such a SoC and with a SD/MMC slot,
536	  say Y or M here.
537
538config MMC_USHC
539	tristate "USB SD Host Controller (USHC) support"
540	depends on USB
541	help
542	  This selects support for USB SD Host Controllers based on
543	  the Cypress Astoria chip with firmware compliant with CSR's
544	  USB SD Host Controller specification (CS-118793-SP).
545
546	  CSR boards with this device include: USB<>SDIO (M1985v2),
547	  and Ultrasira.
548
549	  Note: These controllers only support SDIO cards and do not
550	  support MMC or SD memory cards.
551