diff options
author | Nicolas Ferre <nicolas.ferre@atmel.com> | 2009-06-12 11:58:30 -0400 |
---|---|---|
committer | Pierre Ossman <pierre@ossman.eu> | 2009-06-13 16:43:01 -0400 |
commit | 7f72134c32eb64c77d1fb35123ba8bf815bf797c (patch) | |
tree | 11d53ca37dccef81adfee5f3bf6efa36a25064bc /drivers/mmc | |
parent | 199118959e9b31cd6cd6492a323669966061033c (diff) |
atmel-mci: add MCI2 register definitions
New revision of Atmel MCI interface adds new features. This is a update of
register definition in header file. This new MCI IP is called MCI2.
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/atmel-mci-regs.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/mmc/host/atmel-mci-regs.h b/drivers/mmc/host/atmel-mci-regs.h index adfb885db60f..fc8a0fe7c5c5 100644 --- a/drivers/mmc/host/atmel-mci-regs.h +++ b/drivers/mmc/host/atmel-mci-regs.h | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | /* | 11 | /* |
12 | * Superset of MCI IP registers integrated in Atmel AVR32 and AT91 Processors | 12 | * Superset of MCI IP registers integrated in Atmel AVR32 and AT91 Processors |
13 | * Registers and bitfields marked with [2] are only available in MCI2 | ||
13 | */ | 14 | */ |
14 | 15 | ||
15 | #ifndef __DRIVERS_MMC_ATMEL_MCI_H__ | 16 | #ifndef __DRIVERS_MMC_ATMEL_MCI_H__ |
@@ -39,6 +40,7 @@ | |||
39 | # define MCI_SDCSEL_MASK ( 3 << 0) | 40 | # define MCI_SDCSEL_MASK ( 3 << 0) |
40 | # define MCI_SDCBUS_1BIT ( 0 << 6) /* 1-bit data bus */ | 41 | # define MCI_SDCBUS_1BIT ( 0 << 6) /* 1-bit data bus */ |
41 | # define MCI_SDCBUS_4BIT ( 2 << 6) /* 4-bit data bus */ | 42 | # define MCI_SDCBUS_4BIT ( 2 << 6) /* 4-bit data bus */ |
43 | # define MCI_SDCBUS_8BIT ( 3 << 6) /* 8-bit data bus[2] */ | ||
42 | # define MCI_SDCBUS_MASK ( 3 << 6) | 44 | # define MCI_SDCBUS_MASK ( 3 << 6) |
43 | #define MCI_ARGR 0x0010 /* Command Argument */ | 45 | #define MCI_ARGR 0x0010 /* Command Argument */ |
44 | #define MCI_CMDR 0x0014 /* Command */ | 46 | #define MCI_CMDR 0x0014 /* Command */ |
@@ -67,6 +69,9 @@ | |||
67 | #define MCI_BLKR 0x0018 /* Block */ | 69 | #define MCI_BLKR 0x0018 /* Block */ |
68 | # define MCI_BCNT(x) ((x) << 0) /* Data Block Count */ | 70 | # define MCI_BCNT(x) ((x) << 0) /* Data Block Count */ |
69 | # define MCI_BLKLEN(x) ((x) << 16) /* Data Block Length */ | 71 | # define MCI_BLKLEN(x) ((x) << 16) /* Data Block Length */ |
72 | #define MCI_CSTOR 0x001c /* Completion Signal Timeout[2] */ | ||
73 | # define MCI_CSTOCYC(x) ((x) << 0) /* CST cycles */ | ||
74 | # define MCI_CSTOMUL(x) ((x) << 4) /* CST multiplier */ | ||
70 | #define MCI_RSPR 0x0020 /* Response 0 */ | 75 | #define MCI_RSPR 0x0020 /* Response 0 */ |
71 | #define MCI_RSPR1 0x0024 /* Response 1 */ | 76 | #define MCI_RSPR1 0x0024 /* Response 1 */ |
72 | #define MCI_RSPR2 0x0028 /* Response 2 */ | 77 | #define MCI_RSPR2 0x0028 /* Response 2 */ |
@@ -94,7 +99,24 @@ | |||
94 | # define MCI_DTOE ( 1 << 22) /* Data Time-Out Error */ | 99 | # define MCI_DTOE ( 1 << 22) /* Data Time-Out Error */ |
95 | # define MCI_OVRE ( 1 << 30) /* RX Overrun Error */ | 100 | # define MCI_OVRE ( 1 << 30) /* RX Overrun Error */ |
96 | # define MCI_UNRE ( 1 << 31) /* TX Underrun Error */ | 101 | # define MCI_UNRE ( 1 << 31) /* TX Underrun Error */ |
102 | #define MCI_DMA 0x0050 /* DMA Configuration[2] */ | ||
103 | # define MCI_DMA_OFFSET(x) ((x) << 0) /* DMA Write Buffer Offset */ | ||
104 | # define MCI_DMA_CHKSIZE(x) ((x) << 4) /* DMA Channel Read and Write Chunk Size */ | ||
105 | # define MCI_DMAEN ( 1 << 8) /* DMA Hardware Handshaking Enable */ | ||
106 | #define MCI_CFG 0x0054 /* Configuration[2] */ | ||
107 | # define MCI_CFG_FIFOMODE_1DATA ( 1 << 0) /* MCI Internal FIFO control mode */ | ||
108 | # define MCI_CFG_FERRCTRL_COR ( 1 << 4) /* Flow Error flag reset control mode */ | ||
109 | # define MCI_CFG_HSMODE ( 1 << 8) /* High Speed Mode */ | ||
110 | # define MCI_CFG_LSYNC ( 1 << 12) /* Synchronize on the last block */ | ||
111 | #define MCI_WPMR 0x00e4 /* Write Protection Mode[2] */ | ||
112 | # define MCI_WP_EN ( 1 << 0) /* WP Enable */ | ||
113 | # define MCI_WP_KEY (0x4d4349 << 8) /* WP Key */ | ||
114 | #define MCI_WPSR 0x00e8 /* Write Protection Status[2] */ | ||
115 | # define MCI_GET_WP_VS(x) ((x) & 0x0f) | ||
116 | # define MCI_GET_WP_VSRC(x) (((x) >> 8) & 0xffff) | ||
117 | #define MCI_FIFO_APERTURE 0x0200 /* FIFO Aperture[2] */ | ||
97 | 118 | ||
119 | /* This is not including the FIFO Aperture on MCI2 */ | ||
98 | #define MCI_REGS_SIZE 0x100 | 120 | #define MCI_REGS_SIZE 0x100 |
99 | 121 | ||
100 | /* Register access macros */ | 122 | /* Register access macros */ |