mmc: cavium: Add core MMC driver for Cavium SOCs
authorJan Glauber <jglauber@cavium.com>
Thu, 30 Mar 2017 15:31:24 +0000 (17:31 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 24 Apr 2017 19:42:09 +0000 (21:42 +0200)
commitba3869ff32e4a671b0f9baa73900f9e2bfeb0414
tree7e0ff1b8aca3adae07e09c5b24d4017dd32d663c
parentdc5aee3f9f454c35d4e092873b103dc791119e0e
mmc: cavium: Add core MMC driver for Cavium SOCs

This core driver will be used by a MIPS platform driver
or by an ARM64 PCI driver. The core driver implements the
mmc_host_ops and slot probe & remove functions.
Callbacks are provided to allow platform specific interrupt
enable and bus locking.

The host controller supports:
- up to 4 slots that can contain sd-cards or eMMC chips
- 1, 4 and 8 bit bus width
- SDR and DDR
- transfers up to 52 Mhz (might be less when multiple slots are used)
- DMA read/write
- multi-block read/write (but not stream mode)

Voltage is limited to 3.3v and shared for all slots (vmmc and vmmcq).

A global lock for all MMC devices is required because the host
controller is shared.

Signed-off-by: Jan Glauber <jglauber@cavium.com>
Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Steven J. Hill <steven.hill@cavium.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/cavium.c [new file with mode: 0644]
drivers/mmc/host/cavium.h [new file with mode: 0644]