summaryrefslogtreecommitdiff
path: root/include/mmc.h
diff options
context:
space:
mode:
authorThomas Chou <thomas@wytron.com.tw>2010-12-24 13:12:21 +0000
committerAndy Fleming <afleming@freescale.com>2011-04-13 06:35:22 -0500
commitd52ebf102209cc1ad460c79b9498b2c8936ba413 (patch)
tree843fc83bf6b7d92f49177bc0c585a56b20662bb2 /include/mmc.h
parent5f837c2c0ebda8f22474d26f85857993fb81ad7c (diff)
downloadu-boot-imx-d52ebf102209cc1ad460c79b9498b2c8936ba413.zip
u-boot-imx-d52ebf102209cc1ad460c79b9498b2c8936ba413.tar.gz
u-boot-imx-d52ebf102209cc1ad460c79b9498b2c8936ba413.tar.bz2
mmc: add generic mmc spi driver
This patch supports mmc/sd card with spi interface. It is based on the generic mmc framework. It works with SDHC and supports multi blocks read/write. The crc checksum on data packet is enabled with the def, There is a subcomamnd "mmc_spi" to setup spi bus and cs at run time. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Signed-off-by: Andy Fleming <afleming@freescale.com>
Diffstat (limited to 'include/mmc.h')
-rw-r--r--include/mmc.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/mmc.h b/include/mmc.h
index fcd0fd1..2cf489f 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -44,6 +44,7 @@
#define MMC_MODE_HS_52MHz 0x010
#define MMC_MODE_4BIT 0x100
#define MMC_MODE_8BIT 0x200
+#define MMC_MODE_SPI 0x400
#define SD_DATA_4BIT 0x00040000
@@ -75,6 +76,8 @@
#define MMC_CMD_WRITE_SINGLE_BLOCK 24
#define MMC_CMD_WRITE_MULTIPLE_BLOCK 25
#define MMC_CMD_APP_CMD 55
+#define MMC_CMD_SPI_READ_OCR 58
+#define MMC_CMD_SPI_CRC_ON_OFF 59
#define SD_CMD_SEND_RELATIVE_ADDR 3
#define SD_CMD_SWITCH_FUNC 6
@@ -291,6 +294,8 @@ int board_mmc_getcd(u8 *cd, struct mmc *mmc);
#ifdef CONFIG_GENERIC_MMC
int atmel_mci_init(void *regs);
+#define mmc_host_is_spi(mmc) ((mmc)->host_caps & MMC_MODE_SPI)
+struct mmc *mmc_spi_init(uint bus, uint cs, uint speed, uint mode);
#else
int mmc_legacy_init(int verbose);
#endif