sdhci-spear: ST SPEAr based SDHCI controller glue
[safe/jmp/linux-2.6] / drivers / mmc / host / Kconfig
index 68fb052..e171e77 100644 (file)
@@ -2,7 +2,7 @@
 # MMC/SD host controller drivers
 #
 
-comment "MMC/SD Host Controller Drivers"
+comment "MMC/SD/SDIO Host Controller Drivers"
 
 config MMC_ARMMMCI
        tristate "ARM AMBA Multimedia Card Interface support"
@@ -25,16 +25,139 @@ config MMC_PXA
          If unsure, say N.
 
 config MMC_SDHCI
-       tristate "Secure Digital Host Controller Interface support  (EXPERIMENTAL)"
-       depends on PCI && EXPERIMENTAL
+       tristate "Secure Digital Host Controller Interface support"
+       depends on HAS_DMA
        help
-         This select the generic Secure Digital Host Controller Interface.
+         This selects the generic Secure Digital Host Controller Interface.
          It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
          and Toshiba(R). Most controllers found in laptops are of this type.
+
+         If you have a controller with this interface, say Y or M here. You
+         also need to enable an appropriate bus interface.
+
+         If unsure, say N.
+
+config MMC_SDHCI_IO_ACCESSORS
+       bool
+       depends on MMC_SDHCI
+       help
+         This is silent Kconfig symbol that is selected by the drivers that
+         need to overwrite SDHCI IO memory accessors.
+
+config MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
+       bool
+       select MMC_SDHCI_IO_ACCESSORS
+       help
+         This option is selected by drivers running on big endian hosts
+         and performing I/O to a SDHCI controller through a bus that
+         implements a hardware byte swapper using a 32-bit datum.
+         This endian mapping mode is called "data invariance" and
+         has the effect of scrambling the addresses and formats of data
+         accessed in sizes other than the datum size.
+
+         This is the case for the Freescale eSDHC and Nintendo Wii SDHCI.
+
+config MMC_SDHCI_PCI
+       tristate "SDHCI support on PCI bus"
+       depends on MMC_SDHCI && PCI
+       help
+         This selects the PCI Secure Digital Host Controller Interface.
+         Most controllers found today are PCI devices.
+
+         If you have a controller with this interface, say Y or M here.
+
+         If unsure, say N.
+
+config MMC_RICOH_MMC
+       bool "Ricoh MMC Controller Disabler  (EXPERIMENTAL)"
+       depends on MMC_SDHCI_PCI
+       help
+         This adds a pci quirk to disable Ricoh MMC Controller. This
+         proprietary controller is unnecessary because the SDHCI driver
+         supports MMC cards on the SD controller, but if it is not
+         disabled, it will steal the MMC cards away - rendering them
+         useless. It is safe to select this even if you don't
+         have a Ricoh based card reader.
+
+         If unsure, say Y.
+
+config MMC_SDHCI_OF
+       tristate "SDHCI support on OpenFirmware platforms"
+       depends on MMC_SDHCI && PPC_OF
+       help
+         This selects the OF support for Secure Digital Host Controller
+         Interfaces.
+
+         If unsure, say N.
+
+config MMC_SDHCI_OF_ESDHC
+       bool "SDHCI OF support for the Freescale eSDHC controller"
+       depends on MMC_SDHCI_OF
+       select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
+       help
+         This selects the Freescale eSDHC controller support.
+
+         If unsure, say N.
+
+config MMC_SDHCI_OF_HLWD
+       bool "SDHCI OF support for the Nintendo Wii SDHCI controllers"
+       depends on MMC_SDHCI_OF
+       select MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
+       help
+         This selects the Secure Digital Host Controller Interface (SDHCI)
+         found in the "Hollywood" chipset of the Nintendo Wii video game
+         console.
+
+         If unsure, say N.
+
+config MMC_SDHCI_PLTFM
+       tristate "SDHCI support on the platform specific bus"
+       depends on MMC_SDHCI
+       help
+         This selects the platform specific bus support for Secure Digital Host
+         Controller Interface.
+
+         If you have a controller with this interface, say Y or M here.
+
+         If unsure, say N.
+
+config MMC_SDHCI_S3C
+       tristate "SDHCI support on Samsung S3C SoC"
+       depends on MMC_SDHCI && (PLAT_S3C24XX || PLAT_S3C64XX)
+       help
+         This selects the Secure Digital Host Controller Interface (SDHCI)
+         often referrered to as the HSMMC block in some of the Samsung S3C
+         range of SoC.
+
+         Note, due to the problems with DMA, the DMA support is only
+         available with CONFIG_EXPERIMENTAL is selected.
+
+         If you have a controller with this interface, say Y or M here.
+
+         If unsure, say N.
+
+config MMC_SDHCI_SPEAR
+       tristate "SDHCI support on ST SPEAr platform"
+       depends on MMC_SDHCI && PLAT_SPEAR
+       help
+         This selects the Secure Digital Host Controller Interface (SDHCI)
+         often referrered to as the HSMMC block in some of the ST SPEAR range
+         of SoC
+
          If you have a controller with this interface, say Y or M here.
 
          If unsure, say N.
 
+config MMC_SDHCI_S3C_DMA
+       bool "DMA support on S3C SDHCI"
+       depends on MMC_SDHCI_S3C && EXPERIMENTAL
+       help
+         Enable DMA support on the Samsung S3C SDHCI glue. The DMA
+         has proved to be problematic if the controller encounters
+         certain errors, and thus should be treated with care.
+
+         YMMV.
+
 config MMC_OMAP
        tristate "TI OMAP Multimedia Card Interface support"
        depends on ARCH_OMAP
@@ -46,6 +169,16 @@ config MMC_OMAP
 
          If unsure, say N.
 
+config MMC_OMAP_HS
+       tristate "TI OMAP High Speed Multimedia Card Interface support"
+       depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
+       help
+         This selects the TI OMAP High Speed Multimedia card Interface.
+         If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
+         Multimedia Card slot, say Y or M here.
+
+         If unsure, say N.
+
 config MMC_WBSD
        tristate "Winbond W83L51xD SD/MMC Card Interface support"
        depends on ISA_DMA_API
@@ -66,6 +199,13 @@ config MMC_AU1X
 
          If unsure, say N.
 
+choice
+       prompt "Atmel SD/MMC Driver"
+       depends on AVR32 || ARCH_AT91
+       default MMC_ATMELMCI if AVR32
+       help
+         Choose which driver to use for the Atmel MCI Silicon
+
 config MMC_AT91
        tristate "AT91 SD/MMC Card Interface support"
        depends on ARCH_AT91
@@ -74,9 +214,32 @@ config MMC_AT91
 
          If unsure, say N.
 
+config MMC_ATMELMCI
+       tristate "Atmel Multimedia Card Interface support"
+       depends on AVR32 || ARCH_AT91
+       help
+         This selects the Atmel Multimedia Card Interface driver. If
+         you have an AT32 (AVR32) or AT91 platform with a Multimedia
+         Card slot, say Y or M here.
+
+         If unsure, say N.
+
+endchoice
+
+config MMC_ATMELMCI_DMA
+       bool "Atmel MCI DMA support (EXPERIMENTAL)"
+       depends on MMC_ATMELMCI && AVR32 && DMA_ENGINE && EXPERIMENTAL
+       help
+         Say Y here to have the Atmel MCI driver use a DMA engine to
+         do data transfers and thus increase the throughput and
+         reduce the CPU utilization. Note that this is highly
+         experimental and may cause the driver to lock up.
+
+         If unsure, say N.
+
 config MMC_IMX
        tristate "Motorola i.MX Multimedia Card Interface support"
-       depends on ARCH_IMX
+       depends on ARCH_MX1
        help
          This selects the Motorola i.MX Multimedia card Interface.
          If you have a i.MX platform with a Multimedia Card slot,
@@ -84,6 +247,23 @@ config MMC_IMX
 
          If unsure, say N.
 
+config MMC_MSM7X00A
+       tristate "Qualcomm MSM 7X00A SDCC Controller Support"
+       depends on MMC && ARCH_MSM
+       help
+         This provides support for the SD/MMC cell found in the
+          MSM 7X00A controllers from Qualcomm.
+
+config MMC_MXC
+       tristate "Freescale i.MX2/3 Multimedia Card Interface support"
+       depends on ARCH_MXC
+       help
+         This selects the Freescale i.MX2/3 Multimedia card Interface.
+         If you have a i.MX platform with a Multimedia Card slot,
+         say Y or M here.
+
+         If unsure, say N.
+
 config MMC_TIFM_SD
        tristate "TI Flash Media MMC/SD Interface support  (EXPERIMENTAL)"
        depends on EXPERIMENTAL && PCI
@@ -100,16 +280,155 @@ config MMC_TIFM_SD
           To compile this driver as a module, choose M here: the
          module will be called tifm_sd.
 
+config MMC_MVSDIO
+       tristate "Marvell MMC/SD/SDIO host driver"
+       depends on PLAT_ORION
+       ---help---
+         This selects the Marvell SDIO host driver.
+         SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
+         SoC controllers.
+
+         To compile this driver as a module, choose M here: the
+         module will be called mvsdio.
+
+config MMC_DAVINCI
+        tristate "TI DAVINCI Multimedia Card Interface support"
+        depends on ARCH_DAVINCI
+        help
+          This selects the TI DAVINCI Multimedia card Interface.
+          If you have an DAVINCI board with a Multimedia Card slot,
+          say Y or M here.  If unsure, say N.
+
 config MMC_SPI
-       tristate "MMC/SD over SPI (EXPERIMENTAL)"
-       depends on MMC && SPI_MASTER && !HIGHMEM && EXPERIMENTAL
+       tristate "MMC/SD/SDIO over SPI"
+       depends on SPI_MASTER && !HIGHMEM && HAS_DMA
        select CRC7
        select CRC_ITU_T
        help
-         Some systems accss MMC/SD cards using a SPI controller instead of
-         using a "native" MMC/SD controller.  This has a disadvantage of
-         being relatively high overhead, but a compensating advantage of
-         working on many systems without dedicated MMC/SD controllers.
+         Some systems access MMC/SD/SDIO cards using a SPI controller
+         instead of using a "native" MMC/SD/SDIO controller.  This has a
+         disadvantage of being relatively high overhead, but a compensating
+         advantage of working on many systems without dedicated MMC/SD/SDIO
+         controllers.
 
          If unsure, or if your system has no SPI master driver, say N.
 
+config MMC_S3C
+       tristate "Samsung S3C SD/MMC Card Interface support"
+       depends on ARCH_S3C2410
+       help
+         This selects a driver for the MCI interface found in
+          Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
+         If you have a board based on one of those and a MMC/SD
+         slot, say Y or M here.
+
+         If unsure, say N.
+
+config MMC_S3C_HW_SDIO_IRQ
+       bool "Hardware support for SDIO IRQ"
+       depends on MMC_S3C
+       help
+         Enable the hardware support for SDIO interrupts instead of using
+        the generic polling code.
+
+choice
+       prompt "Samsung S3C SD/MMC transfer code"
+       depends on MMC_S3C
+
+config MMC_S3C_PIO
+       bool "Use PIO transfers only"
+       help
+         Use PIO to transfer data between memory and the hardware.
+
+         PIO is slower than DMA as it requires CPU instructions to
+         move the data. This has been the traditional default for
+         the S3C MCI driver.
+
+config MMC_S3C_DMA
+       bool "Use DMA transfers only (EXPERIMENTAL)"
+       depends on EXPERIMENTAL
+       help
+         Use DMA to transfer data between memory and the hardare.
+
+         Currently, the DMA support in this driver seems to not be
+         working properly and needs to be debugged before this
+         option is useful.
+
+config MMC_S3C_PIODMA
+       bool "Support for both PIO and DMA (EXPERIMENTAL)"
+       help
+         Compile both the PIO and DMA transfer routines into the
+         driver and let the platform select at run-time which one
+         is best.
+
+         See notes for the DMA option.
+
+endchoice
+
+config MMC_SDRICOH_CS
+       tristate "MMC/SD driver for Ricoh Bay1Controllers (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && PCI && PCMCIA
+       help
+         Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA
+         card whenever you insert a MMC or SD card into the card slot.
+
+         To compile this driver as a module, choose M here: the
+         module will be called sdricoh_cs.
+
+config MMC_TMIO
+       tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
+       depends on MFD_TMIO || MFD_ASIC3 || MFD_SH_MOBILE_SDHI
+       help
+         This provides support for the SD/MMC cell found in TC6393XB,
+         T7L66XB and also HTC ASIC3
+
+config MMC_CB710
+       tristate "ENE CB710 MMC/SD Interface support"
+       depends on PCI
+       select CB710_CORE
+       help
+         This option enables support for MMC/SD part of ENE CB710/720 Flash
+         memory card reader found in some laptops (ie. some versions of
+         HP Compaq nx9500).
+
+         This driver can also be built as a module. If so, the module
+         will be called cb710-mmc.
+
+config MMC_VIA_SDMMC
+       tristate "VIA SD/MMC Card Reader Driver"
+       depends on PCI
+       help
+         This selects the VIA SD/MMC Card Reader driver, say Y or M here.
+         VIA provides one multi-functional card reader which integrated into
+         some motherboards manufactured by VIA. This card reader supports
+         SD/MMC/SDHC.
+         If you have a controller with this interface, say Y or M here.
+
+         If unsure, say N.
+
+config SDH_BFIN
+       tristate "Blackfin Secure Digital Host support"
+       depends on (BF54x && !BF544) || (BF51x && !BF512)
+       help
+         If you say yes here you will get support for the Blackfin on-chip
+         Secure Digital Host interface.  This includes support for MMC and
+         SD cards.
+
+         To compile this driver as a module, choose M here: the
+         module will be called bfin_sdh.
+
+         If unsure, say N.
+
+config SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND
+       bool "Blackfin EZkit Missing SDH_CMD Pull Up Resistor Workaround"
+       depends on SDH_BFIN
+       help
+         If you say yes here SD-Cards may work on the EZkit.
+
+config MMC_SH_MMCIF
+       tristate "SuperH Internal MMCIF support"
+       depends on MMC_BLOCK && (SUPERH || ARCH_SHMOBILE)
+       help
+         This selects the MMC Host Interface controler (MMCIF).
+
+         This driver supports MMCIF in sh7724/sh7757/sh7372.