diff options
Diffstat (limited to 'drivers/mmc/host/atmel-mci-regs.h')
-rw-r--r-- | drivers/mmc/host/atmel-mci-regs.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/mmc/host/atmel-mci-regs.h b/drivers/mmc/host/atmel-mci-regs.h index b58364ed6bba..fc8a0fe7c5c5 100644 --- a/drivers/mmc/host/atmel-mci-regs.h +++ b/drivers/mmc/host/atmel-mci-regs.h | |||
@@ -7,6 +7,12 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | |||
11 | /* | ||
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 | ||
14 | */ | ||
15 | |||
10 | #ifndef __DRIVERS_MMC_ATMEL_MCI_H__ | 16 | #ifndef __DRIVERS_MMC_ATMEL_MCI_H__ |
11 | #define __DRIVERS_MMC_ATMEL_MCI_H__ | 17 | #define __DRIVERS_MMC_ATMEL_MCI_H__ |
12 | 18 | ||
@@ -14,11 +20,17 @@ | |||
14 | #define MCI_CR 0x0000 /* Control */ | 20 | #define MCI_CR 0x0000 /* Control */ |
15 | # define MCI_CR_MCIEN ( 1 << 0) /* MCI Enable */ | 21 | # define MCI_CR_MCIEN ( 1 << 0) /* MCI Enable */ |
16 | # define MCI_CR_MCIDIS ( 1 << 1) /* MCI Disable */ | 22 | # define MCI_CR_MCIDIS ( 1 << 1) /* MCI Disable */ |
23 | # define MCI_CR_PWSEN ( 1 << 2) /* Power Save Enable */ | ||
24 | # define MCI_CR_PWSDIS ( 1 << 3) /* Power Save Disable */ | ||
17 | # define MCI_CR_SWRST ( 1 << 7) /* Software Reset */ | 25 | # define MCI_CR_SWRST ( 1 << 7) /* Software Reset */ |
18 | #define MCI_MR 0x0004 /* Mode */ | 26 | #define MCI_MR 0x0004 /* Mode */ |
19 | # define MCI_MR_CLKDIV(x) ((x) << 0) /* Clock Divider */ | 27 | # define MCI_MR_CLKDIV(x) ((x) << 0) /* Clock Divider */ |
28 | # define MCI_MR_PWSDIV(x) ((x) << 8) /* Power Saving Divider */ | ||
20 | # define MCI_MR_RDPROOF ( 1 << 11) /* Read Proof */ | 29 | # define MCI_MR_RDPROOF ( 1 << 11) /* Read Proof */ |
21 | # define MCI_MR_WRPROOF ( 1 << 12) /* Write Proof */ | 30 | # define MCI_MR_WRPROOF ( 1 << 12) /* Write Proof */ |
31 | # define MCI_MR_PDCFBYTE ( 1 << 13) /* Force Byte Transfer */ | ||
32 | # define MCI_MR_PDCPADV ( 1 << 14) /* Padding Value */ | ||
33 | # define MCI_MR_PDCMODE ( 1 << 15) /* PDC-oriented Mode */ | ||
22 | #define MCI_DTOR 0x0008 /* Data Timeout */ | 34 | #define MCI_DTOR 0x0008 /* Data Timeout */ |
23 | # define MCI_DTOCYC(x) ((x) << 0) /* Data Timeout Cycles */ | 35 | # define MCI_DTOCYC(x) ((x) << 0) /* Data Timeout Cycles */ |
24 | # define MCI_DTOMUL(x) ((x) << 4) /* Data Timeout Multiplier */ | 36 | # define MCI_DTOMUL(x) ((x) << 4) /* Data Timeout Multiplier */ |
@@ -28,6 +40,7 @@ | |||
28 | # define MCI_SDCSEL_MASK ( 3 << 0) | 40 | # define MCI_SDCSEL_MASK ( 3 << 0) |
29 | # define MCI_SDCBUS_1BIT ( 0 << 6) /* 1-bit data bus */ | 41 | # define MCI_SDCBUS_1BIT ( 0 << 6) /* 1-bit data bus */ |
30 | # 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] */ | ||
31 | # define MCI_SDCBUS_MASK ( 3 << 6) | 44 | # define MCI_SDCBUS_MASK ( 3 << 6) |
32 | #define MCI_ARGR 0x0010 /* Command Argument */ | 45 | #define MCI_ARGR 0x0010 /* Command Argument */ |
33 | #define MCI_CMDR 0x0014 /* Command */ | 46 | #define MCI_CMDR 0x0014 /* Command */ |
@@ -56,6 +69,9 @@ | |||
56 | #define MCI_BLKR 0x0018 /* Block */ | 69 | #define MCI_BLKR 0x0018 /* Block */ |
57 | # define MCI_BCNT(x) ((x) << 0) /* Data Block Count */ | 70 | # define MCI_BCNT(x) ((x) << 0) /* Data Block Count */ |
58 | # 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 */ | ||
59 | #define MCI_RSPR 0x0020 /* Response 0 */ | 75 | #define MCI_RSPR 0x0020 /* Response 0 */ |
60 | #define MCI_RSPR1 0x0024 /* Response 1 */ | 76 | #define MCI_RSPR1 0x0024 /* Response 1 */ |
61 | #define MCI_RSPR2 0x0028 /* Response 2 */ | 77 | #define MCI_RSPR2 0x0028 /* Response 2 */ |
@@ -83,7 +99,24 @@ | |||
83 | # define MCI_DTOE ( 1 << 22) /* Data Time-Out Error */ | 99 | # define MCI_DTOE ( 1 << 22) /* Data Time-Out Error */ |
84 | # define MCI_OVRE ( 1 << 30) /* RX Overrun Error */ | 100 | # define MCI_OVRE ( 1 << 30) /* RX Overrun Error */ |
85 | # 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] */ | ||
86 | 118 | ||
119 | /* This is not including the FIFO Aperture on MCI2 */ | ||
87 | #define MCI_REGS_SIZE 0x100 | 120 | #define MCI_REGS_SIZE 0x100 |
88 | 121 | ||
89 | /* Register access macros */ | 122 | /* Register access macros */ |