7d2be0749a
This is a driver for the MMC controller on the AP7000 chips from Atmel. It should in theory work on AT91 systems too with some tweaking, but since the DMA interface is quite different, it's not entirely clear if it's worth merging this with the at91_mci driver. This driver has been around for a while in BSPs and kernel sources provided by Atmel, but this particular version uses the generic DMA Engine framework (with the slave extensions) instead of an avr32-only DMA controller framework. This driver can also use PIO transfers when no DMA channels are available, and for transfers where using DMA may be difficult or impractical for some reason (e.g. the DMA setup overhead is usually not worth it for very short transfers, and badly aligned buffers or lengths are difficult to handle.) Currently, the driver only support PIO transfers. DMA support has been split out to a separate patch to hopefully make it easier to review. The driver has been tested using mmc-block and ext3fs on several SD, SDHC and MMC+ cards. Reads and writes work fine, with read transfer rates up to 3.5 MiB/s on fast cards with debugging disabled. The driver has also been tested using the mmc_test module on the same cards. All tests except 7, 9, 15 and 17 succeed. The first two are unsupported by all the cards I have, so I don't know if the driver handles this correctly. The last two fail because the hardware flags a Data CRC Error instead of a Data Timeout error. I'm not sure how to deal with that. Documentation for this controller can be found in many data sheets from Atmel, including the AT32AP7000 data sheet which can be found here: http://www.atmel.com/dyn/products/datasheets.asp?family_id=682 Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
166 lines
4.9 KiB
Text
166 lines
4.9 KiB
Text
#
|
|
# MMC/SD host controller drivers
|
|
#
|
|
|
|
comment "MMC/SD Host Controller Drivers"
|
|
|
|
config MMC_ARMMMCI
|
|
tristate "ARM AMBA Multimedia Card Interface support"
|
|
depends on ARM_AMBA
|
|
help
|
|
This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
|
|
Interface (PL180 and PL181) support. If you have an ARM(R)
|
|
platform with a Multimedia Card slot, say Y or M here.
|
|
|
|
If unsure, say N.
|
|
|
|
config MMC_PXA
|
|
tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
|
|
depends on ARCH_PXA
|
|
help
|
|
This selects the Intel(R) PXA(R) Multimedia card Interface.
|
|
If you have a PXA(R) platform with a Multimedia Card slot,
|
|
say Y or M here.
|
|
|
|
If unsure, say N.
|
|
|
|
config MMC_SDHCI
|
|
tristate "Secure Digital Host Controller Interface support"
|
|
depends on HAS_DMA
|
|
help
|
|
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_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
|
|
tristate "Ricoh MMC Controller Disabler (EXPERIMENTAL)"
|
|
depends on MMC_SDHCI_PCI
|
|
help
|
|
This selects the disabler for the 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 driver even if you don't
|
|
have a Ricoh based card reader.
|
|
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called ricoh_mmc.
|
|
|
|
If unsure, say Y.
|
|
|
|
config MMC_OMAP
|
|
tristate "TI OMAP Multimedia Card Interface support"
|
|
depends on ARCH_OMAP
|
|
select TPS65010 if MACH_OMAP_H2
|
|
help
|
|
This selects the TI OMAP Multimedia card Interface.
|
|
If you have an OMAP 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
|
|
help
|
|
This selects the Winbond(R) W83L51xD Secure digital and
|
|
Multimedia card Interface.
|
|
If you have a machine with a integrated W83L518D or W83L519D
|
|
SD/MMC card reader, say Y or M here.
|
|
|
|
If unsure, say N.
|
|
|
|
config MMC_AU1X
|
|
tristate "Alchemy AU1XX0 MMC Card Interface support"
|
|
depends on SOC_AU1200
|
|
help
|
|
This selects the AMD Alchemy(R) Multimedia card interface.
|
|
If you have a Alchemy platform with a MMC slot, say Y or M here.
|
|
|
|
If unsure, say N.
|
|
|
|
config MMC_AT91
|
|
tristate "AT91 SD/MMC Card Interface support"
|
|
depends on ARCH_AT91
|
|
help
|
|
This selects the AT91 MCI controller.
|
|
|
|
If unsure, say N.
|
|
|
|
config MMC_ATMELMCI
|
|
tristate "Atmel Multimedia Card Interface support"
|
|
depends on AVR32
|
|
help
|
|
This selects the Atmel Multimedia Card Interface driver. If
|
|
you have an AT32 (AVR32) platform with a Multimedia Card
|
|
slot, say Y or M here.
|
|
|
|
If unsure, say N.
|
|
|
|
config MMC_IMX
|
|
tristate "Motorola i.MX Multimedia Card Interface support"
|
|
depends on ARCH_IMX
|
|
help
|
|
This selects the Motorola i.MX 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
|
|
select TIFM_CORE
|
|
help
|
|
Say Y here if you want to be able to access MMC/SD cards with
|
|
the Texas Instruments(R) Flash Media card reader, found in many
|
|
laptops.
|
|
This option 'selects' (turns on, enables) 'TIFM_CORE', but you
|
|
probably also need appropriate card reader host adapter, such as
|
|
'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
|
|
(TIFM_7XX1)'.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called tifm_sd.
|
|
|
|
config MMC_SPI
|
|
tristate "MMC/SD over SPI"
|
|
depends on MMC && 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.
|
|
|
|
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 && MMC
|
|
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.
|
|
|