diff options
author | Thomas Kleffel <tk@maintech.de> | 2008-06-30 17:40:24 -0400 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2008-07-15 08:14:46 -0400 |
commit | be518018c6b9224c02284fb243207ef741c31ec6 (patch) | |
tree | 6fc450ca96ff05dc8904f015000be03a5a2ff2ac /include/asm-arm/arch-s3c2410 | |
parent | 8f1934ce784bd8f2eaf06f190526500f7f3f9c74 (diff) |
MMC: S3C24XX MMC/SD driver.
This is the latest S3C MMC/SD driver by Thomas Kleffel
with cleanups as suggested by AKPM done by Ben Dooks.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Thomas Kleffel <tk@maintech.de>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'include/asm-arm/arch-s3c2410')
-rw-r--r-- | include/asm-arm/arch-s3c2410/regs-sdi.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/include/asm-arm/arch-s3c2410/regs-sdi.h b/include/asm-arm/arch-s3c2410/regs-sdi.h index bb9d30b72952..bfb222fa4abb 100644 --- a/include/asm-arm/arch-s3c2410/regs-sdi.h +++ b/include/asm-arm/arch-s3c2410/regs-sdi.h | |||
@@ -28,9 +28,15 @@ | |||
28 | #define S3C2410_SDIDCNT (0x30) | 28 | #define S3C2410_SDIDCNT (0x30) |
29 | #define S3C2410_SDIDSTA (0x34) | 29 | #define S3C2410_SDIDSTA (0x34) |
30 | #define S3C2410_SDIFSTA (0x38) | 30 | #define S3C2410_SDIFSTA (0x38) |
31 | |||
31 | #define S3C2410_SDIDATA (0x3C) | 32 | #define S3C2410_SDIDATA (0x3C) |
32 | #define S3C2410_SDIIMSK (0x40) | 33 | #define S3C2410_SDIIMSK (0x40) |
33 | 34 | ||
35 | #define S3C2440_SDIDATA (0x40) | ||
36 | #define S3C2440_SDIIMSK (0x3C) | ||
37 | |||
38 | #define S3C2440_SDICON_SDRESET (1<<8) | ||
39 | #define S3C2440_SDICON_MMCCLOCK (1<<5) | ||
34 | #define S3C2410_SDICON_BYTEORDER (1<<4) | 40 | #define S3C2410_SDICON_BYTEORDER (1<<4) |
35 | #define S3C2410_SDICON_SDIOIRQ (1<<3) | 41 | #define S3C2410_SDICON_SDIOIRQ (1<<3) |
36 | #define S3C2410_SDICON_RWAITEN (1<<2) | 42 | #define S3C2410_SDICON_RWAITEN (1<<2) |
@@ -42,7 +48,8 @@ | |||
42 | #define S3C2410_SDICMDCON_LONGRSP (1<<10) | 48 | #define S3C2410_SDICMDCON_LONGRSP (1<<10) |
43 | #define S3C2410_SDICMDCON_WAITRSP (1<<9) | 49 | #define S3C2410_SDICMDCON_WAITRSP (1<<9) |
44 | #define S3C2410_SDICMDCON_CMDSTART (1<<8) | 50 | #define S3C2410_SDICMDCON_CMDSTART (1<<8) |
45 | #define S3C2410_SDICMDCON_INDEX (0xff) | 51 | #define S3C2410_SDICMDCON_SENDERHOST (1<<6) |
52 | #define S3C2410_SDICMDCON_INDEX (0x3f) | ||
46 | 53 | ||
47 | #define S3C2410_SDICMDSTAT_CRCFAIL (1<<12) | 54 | #define S3C2410_SDICMDSTAT_CRCFAIL (1<<12) |
48 | #define S3C2410_SDICMDSTAT_CMDSENT (1<<11) | 55 | #define S3C2410_SDICMDSTAT_CMDSENT (1<<11) |
@@ -51,6 +58,9 @@ | |||
51 | #define S3C2410_SDICMDSTAT_XFERING (1<<8) | 58 | #define S3C2410_SDICMDSTAT_XFERING (1<<8) |
52 | #define S3C2410_SDICMDSTAT_INDEX (0xff) | 59 | #define S3C2410_SDICMDSTAT_INDEX (0xff) |
53 | 60 | ||
61 | #define S3C2440_SDIDCON_DS_BYTE (0<<22) | ||
62 | #define S3C2440_SDIDCON_DS_HALFWORD (1<<22) | ||
63 | #define S3C2440_SDIDCON_DS_WORD (2<<22) | ||
54 | #define S3C2410_SDIDCON_IRQPERIOD (1<<21) | 64 | #define S3C2410_SDIDCON_IRQPERIOD (1<<21) |
55 | #define S3C2410_SDIDCON_TXAFTERRESP (1<<20) | 65 | #define S3C2410_SDIDCON_TXAFTERRESP (1<<20) |
56 | #define S3C2410_SDIDCON_RXAFTERCMD (1<<19) | 66 | #define S3C2410_SDIDCON_RXAFTERCMD (1<<19) |
@@ -59,6 +69,7 @@ | |||
59 | #define S3C2410_SDIDCON_WIDEBUS (1<<16) | 69 | #define S3C2410_SDIDCON_WIDEBUS (1<<16) |
60 | #define S3C2410_SDIDCON_DMAEN (1<<15) | 70 | #define S3C2410_SDIDCON_DMAEN (1<<15) |
61 | #define S3C2410_SDIDCON_STOP (1<<14) | 71 | #define S3C2410_SDIDCON_STOP (1<<14) |
72 | #define S3C2440_SDIDCON_DATSTART (1<<14) | ||
62 | #define S3C2410_SDIDCON_DATMODE (3<<12) | 73 | #define S3C2410_SDIDCON_DATMODE (3<<12) |
63 | #define S3C2410_SDIDCON_BLKNUM (0x7ff) | 74 | #define S3C2410_SDIDCON_BLKNUM (0x7ff) |
64 | 75 | ||
@@ -68,6 +79,7 @@ | |||
68 | #define S3C2410_SDIDCON_XFER_RXSTART (2<<12) | 79 | #define S3C2410_SDIDCON_XFER_RXSTART (2<<12) |
69 | #define S3C2410_SDIDCON_XFER_TXSTART (3<<12) | 80 | #define S3C2410_SDIDCON_XFER_TXSTART (3<<12) |
70 | 81 | ||
82 | #define S3C2410_SDIDCON_BLKNUM_MASK (0xFFF) | ||
71 | #define S3C2410_SDIDCNT_BLKNUM_SHIFT (12) | 83 | #define S3C2410_SDIDCNT_BLKNUM_SHIFT (12) |
72 | 84 | ||
73 | #define S3C2410_SDIDSTA_RDYWAITREQ (1<<10) | 85 | #define S3C2410_SDIDSTA_RDYWAITREQ (1<<10) |
@@ -82,10 +94,12 @@ | |||
82 | #define S3C2410_SDIDSTA_TXDATAON (1<<1) | 94 | #define S3C2410_SDIDSTA_TXDATAON (1<<1) |
83 | #define S3C2410_SDIDSTA_RXDATAON (1<<0) | 95 | #define S3C2410_SDIDSTA_RXDATAON (1<<0) |
84 | 96 | ||
97 | #define S3C2440_SDIFSTA_FIFORESET (1<<16) | ||
98 | #define S3C2440_SDIFSTA_FIFOFAIL (3<<14) /* 3 is correct (2 bits) */ | ||
85 | #define S3C2410_SDIFSTA_TFDET (1<<13) | 99 | #define S3C2410_SDIFSTA_TFDET (1<<13) |
86 | #define S3C2410_SDIFSTA_RFDET (1<<12) | 100 | #define S3C2410_SDIFSTA_RFDET (1<<12) |
87 | #define S3C2410_SDIFSTA_TXHALF (1<<11) | 101 | #define S3C2410_SDIFSTA_TFHALF (1<<11) |
88 | #define S3C2410_SDIFSTA_TXEMPTY (1<<10) | 102 | #define S3C2410_SDIFSTA_TFEMPTY (1<<10) |
89 | #define S3C2410_SDIFSTA_RFLAST (1<<9) | 103 | #define S3C2410_SDIFSTA_RFLAST (1<<9) |
90 | #define S3C2410_SDIFSTA_RFFULL (1<<8) | 104 | #define S3C2410_SDIFSTA_RFFULL (1<<8) |
91 | #define S3C2410_SDIFSTA_RFHALF (1<<7) | 105 | #define S3C2410_SDIFSTA_RFHALF (1<<7) |