summaryrefslogtreecommitdiff
path: root/firmware/export/tcc77x.h
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2008-09-06 17:50:59 +0000
committerDave Chapman <dave@dchapman.com>2008-09-06 17:50:59 +0000
commitd462a64a918117991e11dade2d7fa3a28196e07a (patch)
tree0a6f5ed8777b18bb1641fbb3608f10374901706c /firmware/export/tcc77x.h
parentb87715f670f04c9adbe358c32a385c6771d99a81 (diff)
downloadrockbox-d462a64a918117991e11dade2d7fa3a28196e07a.tar.gz
rockbox-d462a64a918117991e11dade2d7fa3a28196e07a.zip
Initial commit of iaudio 7 port by Vitja Makarov (FS#9245). Port is at quite an advanced stage, but is troubled by the lack of a reliable NAND driver (similar to the Cowon D2 port) and is not yet suitable for non-developers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18435 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export/tcc77x.h')
-rw-r--r--firmware/export/tcc77x.h102
1 files changed, 100 insertions, 2 deletions
diff --git a/firmware/export/tcc77x.h b/firmware/export/tcc77x.h
index b17865e257..9ff8adea3e 100644
--- a/firmware/export/tcc77x.h
+++ b/firmware/export/tcc77x.h
@@ -59,8 +59,13 @@
59#define PCLKCFG5 (*(volatile unsigned long *)0x80000430) 59#define PCLKCFG5 (*(volatile unsigned long *)0x80000430)
60#define PCLKCFG6 (*(volatile unsigned long *)0x80000434) 60#define PCLKCFG6 (*(volatile unsigned long *)0x80000434)
61 61
62#define PCLK_DAI PCLKCFG6
63
62/* Device bits for SWRESET & BCLKCTR */ 64/* Device bits for SWRESET & BCLKCTR */
63 65
66#define DEV_DAI (1<<0)
67#define DEV_USBD (1<<4)
68#define DEV_ECC (1<<9)
64#define DEV_NAND (1<<16) 69#define DEV_NAND (1<<16)
65 70
66/* ADC */ 71/* ADC */
@@ -86,9 +91,23 @@
86 91
87 92
88/* IRQ Controller */ 93/* IRQ Controller */
94#define EXT0_IRQ_MASK (1<<0)
95#define EXT1_IRQ_MASK (1<<1)
96#define EXT2_IRQ_MASK (1<<2)
97#define EXT3_IRQ_MASK (1<<3)
98#define I2SR_IRQ_MASK (1<<4)
99#define I2ST_IRQ_MASK (1<<5)
100#define TIMER0_IRQ_MASK (1<<6)
101#define USBD_IRQ_MASK (1<<8) /* USB 2.0 device */
102#define USBH_IRQ_MASK (1<<10) /* USB 1.1 host */
103#define ADC_IRQ_MASK (1<<16)
104#define USB_DMA_IRQ_MASK (1<<26) /* USB DMA */
105#define ECC_IRQ_MASK (1<<27)
106
107#define DAI_RX_IRQ_MASK I2SR_IRQ_MASK
108#define DAI_TX_IRQ_MASK I2ST_IRQ_MASK
89 109
90#define TIMER0_IRQ_MASK (1<<6) 110#define USB_DMA_IRQ_MASK (1<<26) /* USB DMA */
91#define ADC_IRQ_MASK (1<<16)
92 111
93#define IEN (*(volatile unsigned long *)0x80000100) 112#define IEN (*(volatile unsigned long *)0x80000100)
94#define CREQ (*(volatile unsigned long *)0x80000104) 113#define CREQ (*(volatile unsigned long *)0x80000104)
@@ -160,4 +179,83 @@
160#define NFC_IREQ (*(volatile unsigned long *)0x90000060) 179#define NFC_IREQ (*(volatile unsigned long *)0x90000060)
161#define NFC_RST (*(volatile unsigned long *)0x90000064) 180#define NFC_RST (*(volatile unsigned long *)0x90000064)
162 181
182
183/* ECC controller */
184
185#define ECC_CTRL (*(volatile unsigned long *)0x80000900)
186 #define ECC_DMA_REQ (1<<28)
187 #define ECC_ENC (1<<27) /* MLC ECC3/4 */
188 #define ECC_FLG (1<<26)
189 #define ECC_IEN (1<<25)
190 #define ECC_MANUAL (1<<22)
191 #define ECC_WCNT (1<<12) /* [21:12] */
192 #define ECC_HOLD (1<<7)
193 #define ECC_M4EN (1<<6)
194 #define ECC_ZERO (1<<5)
195 #define ECC_M3EN (1<<4)
196 #define ECC_CNT_MASK (7<<1)
197 #define ECC_CNT (1<<1)
198 #define ECC_SLC (1<<0)
199
200#define ECC_BASE (*(volatile unsigned long *)0x80000904)
201#define ECC_MASK (*(volatile unsigned long *)0x80000908)
202#define ECC_CLR (*(volatile unsigned long *)0x8000090c)
203#define SLC_ECC0 (*(volatile unsigned long *)0x80000910)
204#define SLC_ECC1 (*(volatile unsigned long *)0x80000914)
205#define SLC_ECC2 (*(volatile unsigned long *)0x80000918)
206#define SLC_ECC3 (*(volatile unsigned long *)0x8000091c)
207#define SLC_ECC4 (*(volatile unsigned long *)0x80000920)
208#define SLC_ECC5 (*(volatile unsigned long *)0x80000924)
209#define SLC_ECC6 (*(volatile unsigned long *)0x80000928)
210#define SLC_ECC7 (*(volatile unsigned long *)0x8000092c)
211#define MLC_ECC0W (*(volatile unsigned long *)0x80000930)
212#define MLC_ECC1W (*(volatile unsigned long *)0x80000934)
213#define MLC_ECC2W (*(volatile unsigned long *)0x80000938)
214#define MLC_ECC0R (*(volatile unsigned long *)0x80000940)
215#define MLC_ECC1R (*(volatile unsigned long *)0x80000944)
216#define MLC_ECC2R (*(volatile unsigned long *)0x80000948)
217#define ECC_CORR_START (*(volatile unsigned long *)0x8000094c)
218#define ECC_ERRADDR1 (*(volatile unsigned long *)0x80000950)
219#define ECC_ERRADDR2 (*(volatile unsigned long *)0x80000954)
220#define ECC_ERRADDR3 (*(volatile unsigned long *)0x80000958)
221#define ECC_ERRADDR4 (*(volatile unsigned long *)0x8000095c)
222#define ECC_ERRDATA1 (*(volatile unsigned long *)0x80000960)
223#define ECC_ERRDATA2 (*(volatile unsigned long *)0x80000964)
224#define ECC_ERRDATA3 (*(volatile unsigned long *)0x80000968)
225#define ECC_ERRDATA4 (*(volatile unsigned long *)0x8000096c)
226#define ECC_ERR_NUM (*(volatile unsigned long *)0x80000970)
227
228#define ECC_ERRDATA(x) (*(volatile unsigned long *)(0x80000960 + (x) * 4))
229#define ECC_ERRADDR(x) (*(volatile unsigned long *)(0x80000950 + (x) * 4))
230
231/* Digital Audio Interface */
232#define DADI_L0 (*(volatile unsigned long *)0x80000000)
233#define DADI_R0 (*(volatile unsigned long *)0x80000004)
234#define DADI_L1 (*(volatile unsigned long *)0x80000008)
235#define DADI_R1 (*(volatile unsigned long *)0x8000000C)
236#define DADI_L2 (*(volatile unsigned long *)0x80000010)
237#define DADI_R2 (*(volatile unsigned long *)0x80000014)
238#define DADI_L3 (*(volatile unsigned long *)0x80000018)
239#define DADI_R3 (*(volatile unsigned long *)0x8000001c)
240
241#define DADO_L0 (*(volatile unsigned long *)0x80000020)
242#define DADO_R0 (*(volatile unsigned long *)0x80000024)
243#define DADO_L1 (*(volatile unsigned long *)0x80000028)
244#define DADO_R1 (*(volatile unsigned long *)0x8000002C)
245#define DADO_L2 (*(volatile unsigned long *)0x80000030)
246#define DADO_R2 (*(volatile unsigned long *)0x80000034)
247#define DADO_L3 (*(volatile unsigned long *)0x80000038)
248#define DADO_R3 (*(volatile unsigned long *)0x8000003c)
249
250#define DAMR (*(volatile unsigned long *)0x80000040)
251#define DAVC (*(volatile unsigned long *)0x80000044)
252
253#define DADI_L(x) (*(volatile unsigned long *)(0x80000000 + (x) * 8))
254#define DADI_R(x) (*(volatile unsigned long *)(0x80000004 + (x) * 8))
255#define DADO_L(x) (*(volatile unsigned long *)(0x80000020 + (x) * 8))
256#define DADO_R(x) (*(volatile unsigned long *)(0x80000024 + (x) * 8))
257
258/* USB 2.0 device system MMR base address */
259#define USB_BASE 0x90000b00
260
163#endif 261#endif