diff options
Diffstat (limited to 'firmware/export/s5l8702.h')
-rw-r--r-- | firmware/export/s5l8702.h | 631 |
1 files changed, 631 insertions, 0 deletions
diff --git a/firmware/export/s5l8702.h b/firmware/export/s5l8702.h new file mode 100644 index 0000000000..9c7b7e1662 --- /dev/null +++ b/firmware/export/s5l8702.h | |||
@@ -0,0 +1,631 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id: s5l8700.h 28791 2010-12-11 09:39:33Z Buschel $ | ||
9 | * | ||
10 | * Copyright (C) 2008 by Marcoen Hirschberg, Bart van Adrichem | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | #ifndef __S5L8702_H__ | ||
23 | #define __S5L8702_H__ | ||
24 | |||
25 | #include <inttypes.h> | ||
26 | |||
27 | #define REG8_PTR_T volatile uint8_t * | ||
28 | #define REG16_PTR_T volatile uint16_t * | ||
29 | #define REG32_PTR_T volatile uint32_t * | ||
30 | |||
31 | //TODO: Figure out | ||
32 | #define TIMER_FREQ (1843200 * 4 * 26 / 1 / 4) /* 47923200 Hz */ | ||
33 | |||
34 | #define CACHEALIGN_BITS (4) /* 2^4 = 16 bytes */ | ||
35 | |||
36 | #define DRAM_ORIG 0x08000000 | ||
37 | #define IRAM_ORIG 0 | ||
38 | |||
39 | #define DRAM_SIZE (MEMORYSIZE * 0x100000) | ||
40 | #define IRAM_SIZE 0x40000 | ||
41 | |||
42 | #define TTB_SIZE 0x4000 | ||
43 | #define TTB_BASE_ADDR (DRAM_ORIG + DRAM_SIZE - TTB_SIZE) | ||
44 | |||
45 | /////SYSCON///// | ||
46 | #define CLKCON0C (*((uint32_t volatile*)(0x3C50000C))) | ||
47 | #define PWRCON(i) (*((uint32_t volatile*)(0x3C500000 \ | ||
48 | + ((i) == 4 ? 0x6C : \ | ||
49 | ((i) == 3 ? 0x68 : \ | ||
50 | ((i) == 2 ? 0x58 : \ | ||
51 | ((i) == 1 ? 0x4C : \ | ||
52 | 0x48))))))) | ||
53 | |||
54 | |||
55 | /////TIMER///// | ||
56 | #define TACON (*((uint32_t volatile*)(0x3C700000))) | ||
57 | #define TACMD (*((uint32_t volatile*)(0x3C700004))) | ||
58 | #define TADATA0 (*((uint32_t volatile*)(0x3C700008))) | ||
59 | #define TADATA1 (*((uint32_t volatile*)(0x3C70000C))) | ||
60 | #define TAPRE (*((uint32_t volatile*)(0x3C700010))) | ||
61 | #define TACNT (*((uint32_t volatile*)(0x3C700014))) | ||
62 | #define TBCON (*((uint32_t volatile*)(0x3C700020))) | ||
63 | #define TBCMD (*((uint32_t volatile*)(0x3C700024))) | ||
64 | #define TBDATA0 (*((uint32_t volatile*)(0x3C700028))) | ||
65 | #define TBDATA1 (*((uint32_t volatile*)(0x3C70002C))) | ||
66 | #define TBPRE (*((uint32_t volatile*)(0x3C700030))) | ||
67 | #define TBCNT (*((uint32_t volatile*)(0x3C700034))) | ||
68 | #define TCCON (*((uint32_t volatile*)(0x3C700040))) | ||
69 | #define TCCMD (*((uint32_t volatile*)(0x3C700044))) | ||
70 | #define TCDATA0 (*((uint32_t volatile*)(0x3C700048))) | ||
71 | #define TCDATA1 (*((uint32_t volatile*)(0x3C70004C))) | ||
72 | #define TCPRE (*((uint32_t volatile*)(0x3C700050))) | ||
73 | #define TCCNT (*((uint32_t volatile*)(0x3C700054))) | ||
74 | #define TDCON (*((uint32_t volatile*)(0x3C700060))) | ||
75 | #define TDCMD (*((uint32_t volatile*)(0x3C700064))) | ||
76 | #define TDDATA0 (*((uint32_t volatile*)(0x3C700068))) | ||
77 | #define TDDATA1 (*((uint32_t volatile*)(0x3C70006C))) | ||
78 | #define TDPRE (*((uint32_t volatile*)(0x3C700070))) | ||
79 | #define TDCNT (*((uint32_t volatile*)(0x3C700074))) | ||
80 | #define TECON (*((uint32_t volatile*)(0x3C7000A0))) | ||
81 | #define TECMD (*((uint32_t volatile*)(0x3C7000A4))) | ||
82 | #define TEDATA0 (*((uint32_t volatile*)(0x3C7000A8))) | ||
83 | #define TEDATA1 (*((uint32_t volatile*)(0x3C7000AC))) | ||
84 | #define TEPRE (*((uint32_t volatile*)(0x3C7000B0))) | ||
85 | #define TECNT (*((uint32_t volatile*)(0x3C7000B4))) | ||
86 | #define TFCON (*((uint32_t volatile*)(0x3C7000C0))) | ||
87 | #define TFCMD (*((uint32_t volatile*)(0x3C7000C4))) | ||
88 | #define TFDATA0 (*((uint32_t volatile*)(0x3C7000C8))) | ||
89 | #define TFDATA1 (*((uint32_t volatile*)(0x3C7000CC))) | ||
90 | #define TFPRE (*((uint32_t volatile*)(0x3C7000D0))) | ||
91 | #define TFCNT (*((uint32_t volatile*)(0x3C7000D4))) | ||
92 | #define TGCON (*((uint32_t volatile*)(0x3C7000E0))) | ||
93 | #define TGCMD (*((uint32_t volatile*)(0x3C7000E4))) | ||
94 | #define TGDATA0 (*((uint32_t volatile*)(0x3C7000E8))) | ||
95 | #define TGDATA1 (*((uint32_t volatile*)(0x3C7000EC))) | ||
96 | #define TGPRE (*((uint32_t volatile*)(0x3C7000F0))) | ||
97 | #define TGCNT (*((uint32_t volatile*)(0x3C7000F4))) | ||
98 | #define THCON (*((uint32_t volatile*)(0x3C700100))) | ||
99 | #define THCMD (*((uint32_t volatile*)(0x3C700104))) | ||
100 | #define THDATA0 (*((uint32_t volatile*)(0x3C700108))) | ||
101 | #define THDATA1 (*((uint32_t volatile*)(0x3C70010C))) | ||
102 | #define THPRE (*((uint32_t volatile*)(0x3C700110))) | ||
103 | #define THCNT (*((uint32_t volatile*)(0x3C700114))) | ||
104 | #define USEC_TIMER TFCNT | ||
105 | |||
106 | |||
107 | /////USB///// | ||
108 | #define OTGBASE 0x38400000 | ||
109 | #define PHYBASE 0x3C400000 | ||
110 | #define SYNOPSYSOTG_CLOCK 0 | ||
111 | #define SYNOPSYSOTG_AHBCFG 0x2B | ||
112 | |||
113 | |||
114 | /////I2C///// | ||
115 | #define IICCON(bus) (*((uint32_t volatile*)(0x3C600000 + 0x300000 * (bus)))) | ||
116 | #define IICSTAT(bus) (*((uint32_t volatile*)(0x3C600004 + 0x300000 * (bus)))) | ||
117 | #define IICADD(bus) (*((uint32_t volatile*)(0x3C600008 + 0x300000 * (bus)))) | ||
118 | #define IICDS(bus) (*((uint32_t volatile*)(0x3C60000C + 0x300000 * (bus)))) | ||
119 | |||
120 | |||
121 | /////INTERRUPT CONTROLLERS///// | ||
122 | #define VICIRQSTATUS(v) (*((uint32_t volatile*)(0x38E00000 + 0x1000 * (v)))) | ||
123 | #define VICFIQSTATUS(v) (*((uint32_t volatile*)(0x38E00004 + 0x1000 * (v)))) | ||
124 | #define VICRAWINTR(v) (*((uint32_t volatile*)(0x38E00008 + 0x1000 * (v)))) | ||
125 | #define VICINTSELECT(v) (*((uint32_t volatile*)(0x38E0000C + 0x1000 * (v)))) | ||
126 | #define VICINTENABLE(v) (*((uint32_t volatile*)(0x38E00010 + 0x1000 * (v)))) | ||
127 | #define VICINTENCLEAR(v) (*((uint32_t volatile*)(0x38E00014 + 0x1000 * (v)))) | ||
128 | #define VICSOFTINT(v) (*((uint32_t volatile*)(0x38E00018 + 0x1000 * (v)))) | ||
129 | #define VICSOFTINTCLEAR(v) (*((uint32_t volatile*)(0x38E0001C + 0x1000 * (v)))) | ||
130 | #define VICPROTECTION(v) (*((uint32_t volatile*)(0x38E00020 + 0x1000 * (v)))) | ||
131 | #define VICSWPRIORITYMASK(v) (*((uint32_t volatile*)(0x38E00024 + 0x1000 * (v)))) | ||
132 | #define VICPRIORITYDAISY(v) (*((uint32_t volatile*)(0x38E00028 + 0x1000 * (v)))) | ||
133 | #define VICVECTADDR(v, i) (*((uint32_t volatile*)(0x38E00100 + 0x1000 * (v) + 4 * (i)))) | ||
134 | #define VICVECTPRIORITY(v, i) (*((uint32_t volatile*)(0x38E00200 + 0x1000 * (v) + 4 * (i)))) | ||
135 | #define VICADDRESS(v) (*((const void* volatile*)(0x38E00F00 + 0x1000 * (v)))) | ||
136 | #define VIC0IRQSTATUS (*((uint32_t volatile*)(0x38E00000))) | ||
137 | #define VIC0FIQSTATUS (*((uint32_t volatile*)(0x38E00004))) | ||
138 | #define VIC0RAWINTR (*((uint32_t volatile*)(0x38E00008))) | ||
139 | #define VIC0INTSELECT (*((uint32_t volatile*)(0x38E0000C))) | ||
140 | #define VIC0INTENABLE (*((uint32_t volatile*)(0x38E00010))) | ||
141 | #define VIC0INTENCLEAR (*((uint32_t volatile*)(0x38E00014))) | ||
142 | #define VIC0SOFTINT (*((uint32_t volatile*)(0x38E00018))) | ||
143 | #define VIC0SOFTINTCLEAR (*((uint32_t volatile*)(0x38E0001C))) | ||
144 | #define VIC0PROTECTION (*((uint32_t volatile*)(0x38E00020))) | ||
145 | #define VIC0SWPRIORITYMASK (*((uint32_t volatile*)(0x38E00024))) | ||
146 | #define VIC0PRIORITYDAISY (*((uint32_t volatile*)(0x38E00028))) | ||
147 | #define VIC0VECTADDR(i) (*((const void* volatile*)(0x38E00100 + 4 * (i)))) | ||
148 | #define VIC0VECTADDR0 (*((const void* volatile*)(0x38E00100))) | ||
149 | #define VIC0VECTADDR1 (*((const void* volatile*)(0x38E00104))) | ||
150 | #define VIC0VECTADDR2 (*((const void* volatile*)(0x38E00108))) | ||
151 | #define VIC0VECTADDR3 (*((const void* volatile*)(0x38E0010C))) | ||
152 | #define VIC0VECTADDR4 (*((const void* volatile*)(0x38E00110))) | ||
153 | #define VIC0VECTADDR5 (*((const void* volatile*)(0x38E00114))) | ||
154 | #define VIC0VECTADDR6 (*((const void* volatile*)(0x38E00118))) | ||
155 | #define VIC0VECTADDR7 (*((const void* volatile*)(0x38E0011C))) | ||
156 | #define VIC0VECTADDR8 (*((const void* volatile*)(0x38E00120))) | ||
157 | #define VIC0VECTADDR9 (*((const void* volatile*)(0x38E00124))) | ||
158 | #define VIC0VECTADDR10 (*((const void* volatile*)(0x38E00128))) | ||
159 | #define VIC0VECTADDR11 (*((const void* volatile*)(0x38E0012C))) | ||
160 | #define VIC0VECTADDR12 (*((const void* volatile*)(0x38E00130))) | ||
161 | #define VIC0VECTADDR13 (*((const void* volatile*)(0x38E00134))) | ||
162 | #define VIC0VECTADDR14 (*((const void* volatile*)(0x38E00138))) | ||
163 | #define VIC0VECTADDR15 (*((const void* volatile*)(0x38E0013C))) | ||
164 | #define VIC0VECTADDR16 (*((const void* volatile*)(0x38E00140))) | ||
165 | #define VIC0VECTADDR17 (*((const void* volatile*)(0x38E00144))) | ||
166 | #define VIC0VECTADDR18 (*((const void* volatile*)(0x38E00148))) | ||
167 | #define VIC0VECTADDR19 (*((const void* volatile*)(0x38E0014C))) | ||
168 | #define VIC0VECTADDR20 (*((const void* volatile*)(0x38E00150))) | ||
169 | #define VIC0VECTADDR21 (*((const void* volatile*)(0x38E00154))) | ||
170 | #define VIC0VECTADDR22 (*((const void* volatile*)(0x38E00158))) | ||
171 | #define VIC0VECTADDR23 (*((const void* volatile*)(0x38E0015C))) | ||
172 | #define VIC0VECTADDR24 (*((const void* volatile*)(0x38E00160))) | ||
173 | #define VIC0VECTADDR25 (*((const void* volatile*)(0x38E00164))) | ||
174 | #define VIC0VECTADDR26 (*((const void* volatile*)(0x38E00168))) | ||
175 | #define VIC0VECTADDR27 (*((const void* volatile*)(0x38E0016C))) | ||
176 | #define VIC0VECTADDR28 (*((const void* volatile*)(0x38E00170))) | ||
177 | #define VIC0VECTADDR29 (*((const void* volatile*)(0x38E00174))) | ||
178 | #define VIC0VECTADDR30 (*((const void* volatile*)(0x38E00178))) | ||
179 | #define VIC0VECTADDR31 (*((const void* volatile*)(0x38E0017C))) | ||
180 | #define VIC0VECTPRIORITY(i) (*((uint32_t volatile*)(0x38E00200 + 4 * (i)))) | ||
181 | #define VIC0VECTPRIORITY0 (*((uint32_t volatile*)(0x38E00200))) | ||
182 | #define VIC0VECTPRIORITY1 (*((uint32_t volatile*)(0x38E00204))) | ||
183 | #define VIC0VECTPRIORITY2 (*((uint32_t volatile*)(0x38E00208))) | ||
184 | #define VIC0VECTPRIORITY3 (*((uint32_t volatile*)(0x38E0020C))) | ||
185 | #define VIC0VECTPRIORITY4 (*((uint32_t volatile*)(0x38E00210))) | ||
186 | #define VIC0VECTPRIORITY5 (*((uint32_t volatile*)(0x38E00214))) | ||
187 | #define VIC0VECTPRIORITY6 (*((uint32_t volatile*)(0x38E00218))) | ||
188 | #define VIC0VECTPRIORITY7 (*((uint32_t volatile*)(0x38E0021C))) | ||
189 | #define VIC0VECTPRIORITY8 (*((uint32_t volatile*)(0x38E00220))) | ||
190 | #define VIC0VECTPRIORITY9 (*((uint32_t volatile*)(0x38E00224))) | ||
191 | #define VIC0VECTPRIORITY10 (*((uint32_t volatile*)(0x38E00228))) | ||
192 | #define VIC0VECTPRIORITY11 (*((uint32_t volatile*)(0x38E0022C))) | ||
193 | #define VIC0VECTPRIORITY12 (*((uint32_t volatile*)(0x38E00230))) | ||
194 | #define VIC0VECTPRIORITY13 (*((uint32_t volatile*)(0x38E00234))) | ||
195 | #define VIC0VECTPRIORITY14 (*((uint32_t volatile*)(0x38E00238))) | ||
196 | #define VIC0VECTPRIORITY15 (*((uint32_t volatile*)(0x38E0023C))) | ||
197 | #define VIC0VECTPRIORITY16 (*((uint32_t volatile*)(0x38E00240))) | ||
198 | #define VIC0VECTPRIORITY17 (*((uint32_t volatile*)(0x38E00244))) | ||
199 | #define VIC0VECTPRIORITY18 (*((uint32_t volatile*)(0x38E00248))) | ||
200 | #define VIC0VECTPRIORITY19 (*((uint32_t volatile*)(0x38E0024C))) | ||
201 | #define VIC0VECTPRIORITY20 (*((uint32_t volatile*)(0x38E00250))) | ||
202 | #define VIC0VECTPRIORITY21 (*((uint32_t volatile*)(0x38E00254))) | ||
203 | #define VIC0VECTPRIORITY22 (*((uint32_t volatile*)(0x38E00258))) | ||
204 | #define VIC0VECTPRIORITY23 (*((uint32_t volatile*)(0x38E0025C))) | ||
205 | #define VIC0VECTPRIORITY24 (*((uint32_t volatile*)(0x38E00260))) | ||
206 | #define VIC0VECTPRIORITY25 (*((uint32_t volatile*)(0x38E00264))) | ||
207 | #define VIC0VECTPRIORITY26 (*((uint32_t volatile*)(0x38E00268))) | ||
208 | #define VIC0VECTPRIORITY27 (*((uint32_t volatile*)(0x38E0026C))) | ||
209 | #define VIC0VECTPRIORITY28 (*((uint32_t volatile*)(0x38E00270))) | ||
210 | #define VIC0VECTPRIORITY29 (*((uint32_t volatile*)(0x38E00274))) | ||
211 | #define VIC0VECTPRIORITY30 (*((uint32_t volatile*)(0x38E00278))) | ||
212 | #define VIC0VECTPRIORITY31 (*((uint32_t volatile*)(0x38E0027C))) | ||
213 | #define VIC0ADDRESS (*((void* volatile*)(0x38E00F00))) | ||
214 | #define VIC1IRQSTATUS (*((uint32_t volatile*)(0x38E01000))) | ||
215 | #define VIC1FIQSTATUS (*((uint32_t volatile*)(0x38E01004))) | ||
216 | #define VIC1RAWINTR (*((uint32_t volatile*)(0x38E01008))) | ||
217 | #define VIC1INTSELECT (*((uint32_t volatile*)(0x38E0100C))) | ||
218 | #define VIC1INTENABLE (*((uint32_t volatile*)(0x38E01010))) | ||
219 | #define VIC1INTENCLEAR (*((uint32_t volatile*)(0x38E01014))) | ||
220 | #define VIC1SOFTINT (*((uint32_t volatile*)(0x38E01018))) | ||
221 | #define VIC1SOFTINTCLEAR (*((uint32_t volatile*)(0x38E0101C))) | ||
222 | #define VIC1PROTECTION (*((uint32_t volatile*)(0x38E01020))) | ||
223 | #define VIC1SWPRIORITYMASK (*((uint32_t volatile*)(0x38E01024))) | ||
224 | #define VIC1PRIORITYDAISY (*((uint32_t volatile*)(0x38E01028))) | ||
225 | #define VIC1VECTADDR(i) (*((const void* volatile*)(0x38E01100 + 4 * (i)))) | ||
226 | #define VIC1VECTADDR0 (*((const void* volatile*)(0x38E01100))) | ||
227 | #define VIC1VECTADDR1 (*((const void* volatile*)(0x38E01104))) | ||
228 | #define VIC1VECTADDR2 (*((const void* volatile*)(0x38E01108))) | ||
229 | #define VIC1VECTADDR3 (*((const void* volatile*)(0x38E0110C))) | ||
230 | #define VIC1VECTADDR4 (*((const void* volatile*)(0x38E01110))) | ||
231 | #define VIC1VECTADDR5 (*((const void* volatile*)(0x38E01114))) | ||
232 | #define VIC1VECTADDR6 (*((const void* volatile*)(0x38E01118))) | ||
233 | #define VIC1VECTADDR7 (*((const void* volatile*)(0x38E0111C))) | ||
234 | #define VIC1VECTADDR8 (*((const void* volatile*)(0x38E01120))) | ||
235 | #define VIC1VECTADDR9 (*((const void* volatile*)(0x38E01124))) | ||
236 | #define VIC1VECTADDR10 (*((const void* volatile*)(0x38E01128))) | ||
237 | #define VIC1VECTADDR11 (*((const void* volatile*)(0x38E0112C))) | ||
238 | #define VIC1VECTADDR12 (*((const void* volatile*)(0x38E01130))) | ||
239 | #define VIC1VECTADDR13 (*((const void* volatile*)(0x38E01134))) | ||
240 | #define VIC1VECTADDR14 (*((const void* volatile*)(0x38E01138))) | ||
241 | #define VIC1VECTADDR15 (*((const void* volatile*)(0x38E0113C))) | ||
242 | #define VIC1VECTADDR16 (*((const void* volatile*)(0x38E01140))) | ||
243 | #define VIC1VECTADDR17 (*((const void* volatile*)(0x38E01144))) | ||
244 | #define VIC1VECTADDR18 (*((const void* volatile*)(0x38E01148))) | ||
245 | #define VIC1VECTADDR19 (*((const void* volatile*)(0x38E0114C))) | ||
246 | #define VIC1VECTADDR20 (*((const void* volatile*)(0x38E01150))) | ||
247 | #define VIC1VECTADDR21 (*((const void* volatile*)(0x38E01154))) | ||
248 | #define VIC1VECTADDR22 (*((const void* volatile*)(0x38E01158))) | ||
249 | #define VIC1VECTADDR23 (*((const void* volatile*)(0x38E0115C))) | ||
250 | #define VIC1VECTADDR24 (*((const void* volatile*)(0x38E01160))) | ||
251 | #define VIC1VECTADDR25 (*((const void* volatile*)(0x38E01164))) | ||
252 | #define VIC1VECTADDR26 (*((const void* volatile*)(0x38E01168))) | ||
253 | #define VIC1VECTADDR27 (*((const void* volatile*)(0x38E0116C))) | ||
254 | #define VIC1VECTADDR28 (*((const void* volatile*)(0x38E01170))) | ||
255 | #define VIC1VECTADDR29 (*((const void* volatile*)(0x38E01174))) | ||
256 | #define VIC1VECTADDR30 (*((const void* volatile*)(0x38E01178))) | ||
257 | #define VIC1VECTADDR31 (*((const void* volatile*)(0x38E0117C))) | ||
258 | #define VIC1VECTPRIORITY(i) (*((uint32_t volatile*)(0x38E01200 + 4 * (i)))) | ||
259 | #define VIC1VECTPRIORITY0 (*((uint32_t volatile*)(0x38E01200))) | ||
260 | #define VIC1VECTPRIORITY1 (*((uint32_t volatile*)(0x38E01204))) | ||
261 | #define VIC1VECTPRIORITY2 (*((uint32_t volatile*)(0x38E01208))) | ||
262 | #define VIC1VECTPRIORITY3 (*((uint32_t volatile*)(0x38E0120C))) | ||
263 | #define VIC1VECTPRIORITY4 (*((uint32_t volatile*)(0x38E01210))) | ||
264 | #define VIC1VECTPRIORITY5 (*((uint32_t volatile*)(0x38E01214))) | ||
265 | #define VIC1VECTPRIORITY6 (*((uint32_t volatile*)(0x38E01218))) | ||
266 | #define VIC1VECTPRIORITY7 (*((uint32_t volatile*)(0x38E0121C))) | ||
267 | #define VIC1VECTPRIORITY8 (*((uint32_t volatile*)(0x38E01220))) | ||
268 | #define VIC1VECTPRIORITY9 (*((uint32_t volatile*)(0x38E01224))) | ||
269 | #define VIC1VECTPRIORITY10 (*((uint32_t volatile*)(0x38E01228))) | ||
270 | #define VIC1VECTPRIORITY11 (*((uint32_t volatile*)(0x38E0122C))) | ||
271 | #define VIC1VECTPRIORITY12 (*((uint32_t volatile*)(0x38E01230))) | ||
272 | #define VIC1VECTPRIORITY13 (*((uint32_t volatile*)(0x38E01234))) | ||
273 | #define VIC1VECTPRIORITY14 (*((uint32_t volatile*)(0x38E01238))) | ||
274 | #define VIC1VECTPRIORITY15 (*((uint32_t volatile*)(0x38E0123C))) | ||
275 | #define VIC1VECTPRIORITY16 (*((uint32_t volatile*)(0x38E01240))) | ||
276 | #define VIC1VECTPRIORITY17 (*((uint32_t volatile*)(0x38E01244))) | ||
277 | #define VIC1VECTPRIORITY18 (*((uint32_t volatile*)(0x38E01248))) | ||
278 | #define VIC1VECTPRIORITY19 (*((uint32_t volatile*)(0x38E0124C))) | ||
279 | #define VIC1VECTPRIORITY20 (*((uint32_t volatile*)(0x38E01250))) | ||
280 | #define VIC1VECTPRIORITY21 (*((uint32_t volatile*)(0x38E01254))) | ||
281 | #define VIC1VECTPRIORITY22 (*((uint32_t volatile*)(0x38E01258))) | ||
282 | #define VIC1VECTPRIORITY23 (*((uint32_t volatile*)(0x38E0125C))) | ||
283 | #define VIC1VECTPRIORITY24 (*((uint32_t volatile*)(0x38E01260))) | ||
284 | #define VIC1VECTPRIORITY25 (*((uint32_t volatile*)(0x38E01264))) | ||
285 | #define VIC1VECTPRIORITY26 (*((uint32_t volatile*)(0x38E01268))) | ||
286 | #define VIC1VECTPRIORITY27 (*((uint32_t volatile*)(0x38E0126C))) | ||
287 | #define VIC1VECTPRIORITY28 (*((uint32_t volatile*)(0x38E01270))) | ||
288 | #define VIC1VECTPRIORITY29 (*((uint32_t volatile*)(0x38E01274))) | ||
289 | #define VIC1VECTPRIORITY30 (*((uint32_t volatile*)(0x38E01278))) | ||
290 | #define VIC1VECTPRIORITY31 (*((uint32_t volatile*)(0x38E0127C))) | ||
291 | #define VIC1ADDRESS (*((void* volatile*)(0x38E01F00))) | ||
292 | |||
293 | |||
294 | /////GPIO///// | ||
295 | #define PCON(i) (*((uint32_t volatile*)(0x3cf00000 + ((i) << 5)))) | ||
296 | #define PDAT(i) (*((uint32_t volatile*)(0x3cf00004 + ((i) << 5)))) | ||
297 | #define PUNA(i) (*((uint32_t volatile*)(0x3cf00008 + ((i) << 5)))) | ||
298 | #define PUNB(i) (*((uint32_t volatile*)(0x3cf0000c + ((i) << 5)))) | ||
299 | #define PCON0 (*((uint32_t volatile*)(0x3cf00000))) | ||
300 | #define PDAT0 (*((uint32_t volatile*)(0x3cf00004))) | ||
301 | #define PCON1 (*((uint32_t volatile*)(0x3cf00020))) | ||
302 | #define PDAT1 (*((uint32_t volatile*)(0x3cf00024))) | ||
303 | #define PCON2 (*((uint32_t volatile*)(0x3cf00040))) | ||
304 | #define PDAT2 (*((uint32_t volatile*)(0x3cf00044))) | ||
305 | #define PCON3 (*((uint32_t volatile*)(0x3cf00060))) | ||
306 | #define PDAT3 (*((uint32_t volatile*)(0x3cf00064))) | ||
307 | #define PCON4 (*((uint32_t volatile*)(0x3cf00080))) | ||
308 | #define PDAT4 (*((uint32_t volatile*)(0x3cf00084))) | ||
309 | #define PCON5 (*((uint32_t volatile*)(0x3cf000a0))) | ||
310 | #define PDAT5 (*((uint32_t volatile*)(0x3cf000a4))) | ||
311 | #define PCON6 (*((uint32_t volatile*)(0x3cf000c0))) | ||
312 | #define PDAT6 (*((uint32_t volatile*)(0x3cf000c4))) | ||
313 | #define PCON7 (*((uint32_t volatile*)(0x3cf000e0))) | ||
314 | #define PDAT7 (*((uint32_t volatile*)(0x3cf000e4))) | ||
315 | #define PCON8 (*((uint32_t volatile*)(0x3cf00100))) | ||
316 | #define PDAT8 (*((uint32_t volatile*)(0x3cf00104))) | ||
317 | #define PCON9 (*((uint32_t volatile*)(0x3cf00120))) | ||
318 | #define PDAT9 (*((uint32_t volatile*)(0x3cf00124))) | ||
319 | #define PCONA (*((uint32_t volatile*)(0x3cf00140))) | ||
320 | #define PDATA (*((uint32_t volatile*)(0x3cf00144))) | ||
321 | #define PCONB (*((uint32_t volatile*)(0x3cf00160))) | ||
322 | #define PDATB (*((uint32_t volatile*)(0x3cf00164))) | ||
323 | #define PCONC (*((uint32_t volatile*)(0x3cf00180))) | ||
324 | #define PDATC (*((uint32_t volatile*)(0x3cf00184))) | ||
325 | #define PCOND (*((uint32_t volatile*)(0x3cf001a0))) | ||
326 | #define PDATD (*((uint32_t volatile*)(0x3cf001a4))) | ||
327 | #define PCONE (*((uint32_t volatile*)(0x3cf001c0))) | ||
328 | #define PDATE (*((uint32_t volatile*)(0x3cf001c4))) | ||
329 | #define PCONF (*((uint32_t volatile*)(0x3cf001e0))) | ||
330 | #define PDATF (*((uint32_t volatile*)(0x3cf001e4))) | ||
331 | #define GPIOCMD (*((uint32_t volatile*)(0x3cf00200))) | ||
332 | |||
333 | |||
334 | /////SPI///// | ||
335 | #define SPIBASE(i) ((i) == 2 ? 0x3d200000 : \ | ||
336 | (i) == 1 ? 0x3ce00000 : \ | ||
337 | 0x3c300000) | ||
338 | #define SPICLKGATE(i) ((i) == 2 ? 0x2f : \ | ||
339 | (i) == 1 ? 0x2b : \ | ||
340 | 0x22) | ||
341 | #define SPIDMA(i) ((i) == 2 ? 0xd : \ | ||
342 | (i) == 1 ? 0xf : \ | ||
343 | 0x5) | ||
344 | #define SPICTRL(i) (*((uint32_t volatile*)(SPIBASE(i)))) | ||
345 | #define SPISETUP(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x4))) | ||
346 | #define SPISTATUS(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x8))) | ||
347 | #define SPIUNKREG1(i) (*((uint32_t volatile*)(SPIBASE(i) + 0xc))) | ||
348 | #define SPITXDATA(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x10))) | ||
349 | #define SPIRXDATA(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x20))) | ||
350 | #define SPICLKDIV(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x30))) | ||
351 | #define SPIRXLIMIT(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x34))) | ||
352 | #define SPIUNKREG3(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x38))) | ||
353 | |||
354 | |||
355 | /////AES///// | ||
356 | #define AESCONTROL (*((uint32_t volatile*)(0x38c00000))) | ||
357 | #define AESGO (*((uint32_t volatile*)(0x38c00004))) | ||
358 | #define AESUNKREG0 (*((uint32_t volatile*)(0x38c00008))) | ||
359 | #define AESSTATUS (*((uint32_t volatile*)(0x38c0000c))) | ||
360 | #define AESUNKREG1 (*((uint32_t volatile*)(0x38c00010))) | ||
361 | #define AESKEYLEN (*((uint32_t volatile*)(0x38c00014))) | ||
362 | #define AESOUTSIZE (*((uint32_t volatile*)(0x38c00018))) | ||
363 | #define AESOUTADDR (*((void* volatile*)(0x38c00020))) | ||
364 | #define AESINSIZE (*((uint32_t volatile*)(0x38c00024))) | ||
365 | #define AESINADDR (*((const void* volatile*)(0x38c00028))) | ||
366 | #define AESAUXSIZE (*((uint32_t volatile*)(0x38c0002c))) | ||
367 | #define AESAUXADDR (*((void* volatile*)(0x38c00030))) | ||
368 | #define AESSIZE3 (*((uint32_t volatile*)(0x38c00034))) | ||
369 | #define AESKEY ((uint32_t volatile*)(0x38c0004c)) | ||
370 | #define AESTYPE (*((uint32_t volatile*)(0x38c0006c))) | ||
371 | #define AESIV ((uint32_t volatile*)(0x38c00074)) | ||
372 | #define AESTYPE2 (*((uint32_t volatile*)(0x38c00088))) | ||
373 | #define AESUNKREG2 (*((uint32_t volatile*)(0x38c0008c))) | ||
374 | |||
375 | |||
376 | /////SHA1///// | ||
377 | #define SHA1CONFIG (*((uint32_t volatile*)(0x38000000))) | ||
378 | #define SHA1RESET (*((uint32_t volatile*)(0x38000004))) | ||
379 | #define SHA1RESULT ((uint32_t volatile*)(0x38000020)) | ||
380 | #define SHA1DATAIN ((uint32_t volatile*)(0x38000040)) | ||
381 | |||
382 | |||
383 | /////DMA///// | ||
384 | #ifndef ASM | ||
385 | struct dma_lli | ||
386 | { | ||
387 | const void* srcaddr; | ||
388 | void* dstaddr; | ||
389 | const struct dma_lli* nextlli; | ||
390 | uint32_t control; | ||
391 | }; | ||
392 | #endif | ||
393 | #define DMACINTSTS(d) (*((uint32_t volatile*)(0x38200000 + 0x1700000 * (d)))) | ||
394 | #define DMACINTTCSTS(d) (*((uint32_t volatile*)(0x38200004 + 0x1700000 * (d)))) | ||
395 | #define DMACINTTCCLR(d) (*((uint32_t volatile*)(0x38200008 + 0x1700000 * (d)))) | ||
396 | #define DMACINTERRSTS(d) (*((uint32_t volatile*)(0x3820000c + 0x1700000 * (d)))) | ||
397 | #define DMACINTERRCLR(d) (*((uint32_t volatile*)(0x38200010 + 0x1700000 * (d)))) | ||
398 | #define DMACRAWINTTCSTS(d) (*((uint32_t volatile*)(0x38200014 + 0x1700000 * (d)))) | ||
399 | #define DMACRAWINTERRSTS(d) (*((uint32_t volatile*)(0x38200018 + 0x1700000 * (d)))) | ||
400 | #define DMACENABLEDCHANS(d) (*((uint32_t volatile*)(0x3820001c + 0x1700000 * (d)))) | ||
401 | #define DMACSOFTBREQ(d) (*((uint32_t volatile*)(0x38200020 + 0x1700000 * (d)))) | ||
402 | #define DMACSOFTSREQ(d) (*((uint32_t volatile*)(0x38200024 + 0x1700000 * (d)))) | ||
403 | #define DMACSOFTLBREQ(d) (*((uint32_t volatile*)(0x38200028 + 0x1700000 * (d)))) | ||
404 | #define DMACSOFTLSREQ(d) (*((uint32_t volatile*)(0x3820002c + 0x1700000 * (d)))) | ||
405 | #define DMACCONFIG(d) (*((uint32_t volatile*)(0x38200030 + 0x1700000 * (d)))) | ||
406 | #define DMACSYNC(d) (*((uint32_t volatile*)(0x38200034 + 0x1700000 * (d)))) | ||
407 | #define DMACCLLI(d, c) (*((struct dma_lli volatile*)(0x38200100 + 0x1700000 * (d) + 0x20 * (c)))) | ||
408 | #define DMACCSRCADDR(d, c) (*((const void* volatile*)(0x38200100 + 0x1700000 * (d) + 0x20 * (c)))) | ||
409 | #define DMACCDESTADDR(d, c) (*((void* volatile*)(0x38200104 + 0x1700000 * (d) + 0x20 * (c)))) | ||
410 | #define DMACCNEXTLLI(d, c) (*((const void* volatile*)(0x38200108 + 0x1700000 * (d) + 0x20 * (c)))) | ||
411 | #define DMACCCONTROL(d, c) (*((uint32_t volatile*)(0x3820010c + 0x1700000 * (d) + 0x20 * (c)))) | ||
412 | #define DMACCCONFIG(d, c) (*((uint32_t volatile*)(0x38200110 + 0x1700000 * (d) + 0x20 * (c)))) | ||
413 | #define DMAC0INTSTS (*((uint32_t volatile*)(0x38200000))) | ||
414 | #define DMAC0INTTCSTS (*((uint32_t volatile*)(0x38200004))) | ||
415 | #define DMAC0INTTCCLR (*((uint32_t volatile*)(0x38200008))) | ||
416 | #define DMAC0INTERRSTS (*((uint32_t volatile*)(0x3820000c))) | ||
417 | #define DMAC0INTERRCLR (*((uint32_t volatile*)(0x38200010))) | ||
418 | #define DMAC0RAWINTTCSTS (*((uint32_t volatile*)(0x38200014))) | ||
419 | #define DMAC0RAWINTERRSTS (*((uint32_t volatile*)(0x38200018))) | ||
420 | #define DMAC0ENABLEDCHANS (*((uint32_t volatile*)(0x3820001c))) | ||
421 | #define DMAC0SOFTBREQ (*((uint32_t volatile*)(0x38200020))) | ||
422 | #define DMAC0SOFTSREQ (*((uint32_t volatile*)(0x38200024))) | ||
423 | #define DMAC0SOFTLBREQ (*((uint32_t volatile*)(0x38200028))) | ||
424 | #define DMAC0SOFTLSREQ (*((uint32_t volatile*)(0x3820002c))) | ||
425 | #define DMAC0CONFIG (*((uint32_t volatile*)(0x38200030))) | ||
426 | #define DMAC0SYNC (*((uint32_t volatile*)(0x38200034))) | ||
427 | #define DMAC0CLLI(c) (*((struct dma_lli volatile*)(0x38200100 + 0x20 * (c)))) | ||
428 | #define DMAC0CSRCADDR(c) (*((const void* volatile*)(0x38200100 + 0x20 * (c)))) | ||
429 | #define DMAC0CDESTADDR(c) (*((void* volatile*)(0x38200104 + 0x20 * (c)))) | ||
430 | #define DMAC0CNEXTLLI(c) (*((const void* volatile*)(0x38200108 + 0x20 * (c)))) | ||
431 | #define DMAC0CCONTROL(c) (*((uint32_t volatile*)(0x3820010c + 0x20 * (c)))) | ||
432 | #define DMAC0CCONFIG(c) (*((uint32_t volatile*)(0x38200110 + 0x20 * (c)))) | ||
433 | #define DMAC0C0LLI (*((struct dma_lli volatile*)(0x38200100))) | ||
434 | #define DMAC0C0SRCADDR (*((const void* volatile*)(0x38200100))) | ||
435 | #define DMAC0C0DESTADDR (*((void* volatile*)(0x38200104))) | ||
436 | #define DMAC0C0NEXTLLI (*((const struct dma_lli* volatile*)(0x38200108))) | ||
437 | #define DMAC0C0CONTROL (*((uint32_t volatile*)(0x3820010c))) | ||
438 | #define DMAC0C0CONFIG (*((uint32_t volatile*)(0x38200110))) | ||
439 | #define DMAC0C1LLI (*((struct dma_lli volatile*)(0x38200120))) | ||
440 | #define DMAC0C1SRCADDR (*((const void* volatile*)(0x38200120))) | ||
441 | #define DMAC0C1DESTADDR (*((void* volatile*)(0x38200124))) | ||
442 | #define DMAC0C1NEXTLLI (*((const struct dma_lli* volatile*)(0x38200128))) | ||
443 | #define DMAC0C1CONTROL (*((uint32_t volatile*)(0x3820012c))) | ||
444 | #define DMAC0C1CONFIG (*((uint32_t volatile*)(0x38200130))) | ||
445 | #define DMAC0C2LLI (*((struct dma_lli volatile*)(0x38200140))) | ||
446 | #define DMAC0C2SRCADDR (*((const void* volatile*)(0x38200140))) | ||
447 | #define DMAC0C2DESTADDR (*((void* volatile*)(0x38200144))) | ||
448 | #define DMAC0C2NEXTLLI (*((const struct dma_lli* volatile*)(0x38200148))) | ||
449 | #define DMAC0C2CONTROL (*((uint32_t volatile*)(0x3820014c))) | ||
450 | #define DMAC0C2CONFIG (*((uint32_t volatile*)(0x38200150))) | ||
451 | #define DMAC0C3LLI (*((struct dma_lli volatile*)(0x38200160))) | ||
452 | #define DMAC0C3SRCADDR (*((const void* volatile*)(0x38200160))) | ||
453 | #define DMAC0C3DESTADDR (*((void* volatile*)(0x38200164))) | ||
454 | #define DMAC0C3NEXTLLI (*((const struct dma_lli* volatile*)(0x38200168))) | ||
455 | #define DMAC0C3CONTROL (*((uint32_t volatile*)(0x3820016c))) | ||
456 | #define DMAC0C3CONFIG (*((uint32_t volatile*)(0x38200170))) | ||
457 | #define DMAC0C4LLI (*((struct dma_lli volatile*)(0x38200180))) | ||
458 | #define DMAC0C4SRCADDR (*((const void* volatile*)(0x38200180))) | ||
459 | #define DMAC0C4DESTADDR (*((void* volatile*)(0x38200184))) | ||
460 | #define DMAC0C4NEXTLLI (*((const struct dma_lli* volatile*)(0x38200188))) | ||
461 | #define DMAC0C4CONTROL (*((uint32_t volatile*)(0x3820018c))) | ||
462 | #define DMAC0C4CONFIG (*((uint32_t volatile*)(0x38200190))) | ||
463 | #define DMAC0C5LLI (*((struct dma_lli volatile*)(0x382001a0))) | ||
464 | #define DMAC0C5SRCADDR (*((const void* volatile*)(0x382001a0))) | ||
465 | #define DMAC0C5DESTADDR (*((void* volatile*)(0x382001a4))) | ||
466 | #define DMAC0C5NEXTLLI (*((const struct dma_lli* volatile*)(0x382001a8))) | ||
467 | #define DMAC0C5CONTROL (*((uint32_t volatile*)(0x382001ac))) | ||
468 | #define DMAC0C5CONFIG (*((uint32_t volatile*)(0x382001b0))) | ||
469 | #define DMAC0C6LLI (*((struct dma_lli volatile*)(0x382001c0))) | ||
470 | #define DMAC0C6SRCADDR (*((const void* volatile*)(0x382001c0))) | ||
471 | #define DMAC0C6DESTADDR (*((void* volatile*)(0x382001c4))) | ||
472 | #define DMAC0C6NEXTLLI (*((const struct dma_lli* volatile*)(0x382001c8))) | ||
473 | #define DMAC0C6CONTROL (*((uint32_t volatile*)(0x382001cc))) | ||
474 | #define DMAC0C6CONFIG (*((uint32_t volatile*)(0x382001d0))) | ||
475 | #define DMAC0C7LLI (*((struct dma_lli volatile*)(0x382001e0))) | ||
476 | #define DMAC0C7SRCADDR (*((const void* volatile*)(0x382001e0))) | ||
477 | #define DMAC0C7DESTADDR (*((void* volatile*)(0x382001e4))) | ||
478 | #define DMAC0C7NEXTLLI (*((const struct dma_lli* volatile*)(0x382001e8))) | ||
479 | #define DMAC0C7CONTROL (*((uint32_t volatile*)(0x382001ec))) | ||
480 | #define DMAC0C7CONFIG (*((uint32_t volatile*)(0x382001f0))) | ||
481 | #define DMAC1INTSTS (*((uint32_t volatile*)(0x39900000))) | ||
482 | #define DMAC1INTTCSTS (*((uint32_t volatile*)(0x39900004))) | ||
483 | #define DMAC1INTTCCLR (*((uint32_t volatile*)(0x39900008))) | ||
484 | #define DMAC1INTERRSTS (*((uint32_t volatile*)(0x3990000c))) | ||
485 | #define DMAC1INTERRCLR (*((uint32_t volatile*)(0x39900010))) | ||
486 | #define DMAC1RAWINTTCSTS (*((uint32_t volatile*)(0x39900014))) | ||
487 | #define DMAC1RAWINTERRSTS (*((uint32_t volatile*)(0x39900018))) | ||
488 | #define DMAC1ENABLEDCHANS (*((uint32_t volatile*)(0x3990001c))) | ||
489 | #define DMAC1SOFTBREQ (*((uint32_t volatile*)(0x39900020))) | ||
490 | #define DMAC1SOFTSREQ (*((uint32_t volatile*)(0x39900024))) | ||
491 | #define DMAC1SOFTLBREQ (*((uint32_t volatile*)(0x39900028))) | ||
492 | #define DMAC1SOFTLSREQ (*((uint32_t volatile*)(0x3990002c))) | ||
493 | #define DMAC1CONFIG (*((uint32_t volatile*)(0x39900030))) | ||
494 | #define DMAC1SYNC (*((uint32_t volatile*)(0x39900034))) | ||
495 | #define DMAC1CLLI(c) (*((struct dma_lli volatile*)(0x39900100 + 0x20 * (c)))) | ||
496 | #define DMAC1CSRCADDR(c) (*((const void* volatile*)(0x39900100 + 0x20 * (c)))) | ||
497 | #define DMAC1CDESTADDR(c) (*((void* volatile*)(0x39900104 + 0x20 * (c)))) | ||
498 | #define DMAC1CNEXTLLI(c) (*((const void* volatile*)(0x39900108 + 0x20 * (c)))) | ||
499 | #define DMAC1CCONTROL(c) (*((uint32_t volatile*)(0x3990010c + 0x20 * (c)))) | ||
500 | #define DMAC1CCONFIG(c) (*((uint32_t volatile*)(0x39900110 + 0x20 * (c)))) | ||
501 | #define DMAC1C0LLI (*((struct dma_lli volatile*)(0x39900100))) | ||
502 | #define DMAC1C0SRCADDR (*((const void* volatile*)(0x39900100))) | ||
503 | #define DMAC1C0DESTADDR (*((void* volatile*)(0x39900104))) | ||
504 | #define DMAC1C0NEXTLLI (*((const struct dma_lli* volatile*)(0x39900108))) | ||
505 | #define DMAC1C0CONTROL (*((uint32_t volatile*)(0x3990010c))) | ||
506 | #define DMAC1C0CONFIG (*((uint32_t volatile*)(0x39900110))) | ||
507 | #define DMAC1C1LLI (*((struct dma_lli volatile*)(0x39900120))) | ||
508 | #define DMAC1C1SRCADDR (*((const void* volatile*)(0x39900120))) | ||
509 | #define DMAC1C1DESTADDR (*((void* volatile*)(0x39900124))) | ||
510 | #define DMAC1C1NEXTLLI (*((const struct dma_lli* volatile*)(0x39900128))) | ||
511 | #define DMAC1C1CONTROL (*((uint32_t volatile*)(0x3990012c))) | ||
512 | #define DMAC1C1CONFIG (*((uint32_t volatile*)(0x39900130))) | ||
513 | #define DMAC1C2LLI (*((struct dma_lli volatile*)(0x39900140))) | ||
514 | #define DMAC1C2SRCADDR (*((const void* volatile*)(0x39900140))) | ||
515 | #define DMAC1C2DESTADDR (*((void* volatile*)(0x39900144))) | ||
516 | #define DMAC1C2NEXTLLI (*((const struct dma_lli* volatile*)(0x39900148))) | ||
517 | #define DMAC1C2CONTROL (*((uint32_t volatile*)(0x3990014c))) | ||
518 | #define DMAC1C2CONFIG (*((uint32_t volatile*)(0x39900150))) | ||
519 | #define DMAC1C3LLI (*((struct dma_lli volatile*)(0x39900160))) | ||
520 | #define DMAC1C3SRCADDR (*((const void* volatile*)(0x39900160))) | ||
521 | #define DMAC1C3DESTADDR (*((void* volatile*)(0x39900164))) | ||
522 | #define DMAC1C3NEXTLLI (*((volatile void**)(0x39900168))) | ||
523 | #define DMAC1C3CONTROL (*((uint32_t volatile*)(0x3990016c))) | ||
524 | #define DMAC1C3CONFIG (*((uint32_t volatile*)(0x39900170))) | ||
525 | #define DMAC1C4LLI (*((struct dma_lli volatile*)(0x39900180))) | ||
526 | #define DMAC1C4SRCADDR (*((const void* volatile*)(0x39900180))) | ||
527 | #define DMAC1C4DESTADDR (*((void* volatile*)(0x39900184))) | ||
528 | #define DMAC1C4NEXTLLI (*((const struct dma_lli* volatile*)(0x39900188))) | ||
529 | #define DMAC1C4CONTROL (*((uint32_t volatile*)(0x3990018c))) | ||
530 | #define DMAC1C4CONFIG (*((uint32_t volatile*)(0x39900190))) | ||
531 | #define DMAC1C5LLI (*((struct dma_lli volatile*)(0x399001a0))) | ||
532 | #define DMAC1C5SRCADDR (*((const void* volatile*)(0x399001a0))) | ||
533 | #define DMAC1C5DESTADDR (*((void* volatile*)(0x399001a4))) | ||
534 | #define DMAC1C5NEXTLLI (*((const struct dma_lli* volatile*)(0x399001a8))) | ||
535 | #define DMAC1C5CONTROL (*((uint32_t volatile*)(0x399001ac))) | ||
536 | #define DMAC1C5CONFIG (*((uint32_t volatile*)(0x399001b0))) | ||
537 | #define DMAC1C6LLI (*((struct dma_lli volatile*)(0x399001c0))) | ||
538 | #define DMAC1C6SRCADDR (*((const void* volatile*)(0x399001c0))) | ||
539 | #define DMAC1C6DESTADDR (*((void* volatile*)(0x399001c4))) | ||
540 | #define DMAC1C6NEXTLLI (*((const struct dma_lli* volatile*)(0x399001c8))) | ||
541 | #define DMAC1C6CONTROL (*((uint32_t volatile*)(0x399001cc))) | ||
542 | #define DMAC1C6CONFIG (*((uint32_t volatile*)(0x399001d0))) | ||
543 | #define DMAC1C7LLI (*((struct dma_lli volatile*)(0x399001e0))) | ||
544 | #define DMAC1C7SRCADDR (*((const void* volatile*)(0x399001e0))) | ||
545 | #define DMAC1C7DESTADDR (*((void* volatile*)(0x399001e4))) | ||
546 | #define DMAC1C7NEXTLLI (*((const struct dma_lli* volatile*)(0x399001e8))) | ||
547 | #define DMAC1C7CONTROL (*((uint32_t volatile*)(0x399001ec))) | ||
548 | #define DMAC1C7CONFIG (*((uint32_t volatile*)(0x399001f0))) | ||
549 | |||
550 | |||
551 | /////LCD///// | ||
552 | #define LCD_BASE (*((uint32_t volatile*)(0x38300000))) | ||
553 | #define LCD_WCMD (*((uint32_t volatile*)(0x38300004))) | ||
554 | #define LCD_STATUS (*((uint32_t volatile*)(0x3830001c))) | ||
555 | #define LCD_WDATA (*((uint32_t volatile*)(0x38300040))) | ||
556 | |||
557 | |||
558 | /////ATA///// | ||
559 | #define ATA_CCONTROL (*((uint32_t volatile*)(0x38700000))) | ||
560 | #define ATA_CSTATUS (*((uint32_t volatile*)(0x38700004))) | ||
561 | #define ATA_CCOMMAND (*((uint32_t volatile*)(0x38700008))) | ||
562 | #define ATA_SWRST (*((uint32_t volatile*)(0x3870000c))) | ||
563 | #define ATA_IRQ (*((uint32_t volatile*)(0x38700010))) | ||
564 | #define ATA_IRQ_MASK (*((uint32_t volatile*)(0x38700014))) | ||
565 | #define ATA_CFG (*((uint32_t volatile*)(0x38700018))) | ||
566 | #define ATA_MDMA_TIME (*((uint32_t volatile*)(0x38700028))) | ||
567 | #define ATA_PIO_TIME (*((uint32_t volatile*)(0x3870002c))) | ||
568 | #define ATA_UDMA_TIME (*((uint32_t volatile*)(0x38700030))) | ||
569 | #define ATA_XFR_NUM (*((uint32_t volatile*)(0x38700034))) | ||
570 | #define ATA_XFR_CNT (*((uint32_t volatile*)(0x38700038))) | ||
571 | #define ATA_TBUF_START (*((void* volatile*)(0x3870003c))) | ||
572 | #define ATA_TBUF_SIZE (*((uint32_t volatile*)(0x38700040))) | ||
573 | #define ATA_SBUF_START (*((void* volatile*)(0x38700044))) | ||
574 | #define ATA_SBUF_SIZE (*((uint32_t volatile*)(0x38700048))) | ||
575 | #define ATA_CADR_TBUF (*((void* volatile*)(0x3870004c))) | ||
576 | #define ATA_CADR_SBUF (*((void* volatile*)(0x38700050))) | ||
577 | #define ATA_DATA ((uint32_t volatile*)(0x38700054)) | ||
578 | #define ATA_ERROR ((uint32_t volatile*)(0x38700058)) | ||
579 | #define ATA_NSECTOR ((uint32_t volatile*)(0x3870005c)) | ||
580 | #define ATA_SECTOR ((uint32_t volatile*)(0x38700060)) | ||
581 | #define ATA_LCYL ((uint32_t volatile*)(0x38700064)) | ||
582 | #define ATA_HCYL ((uint32_t volatile*)(0x38700068)) | ||
583 | #define ATA_SELECT ((uint32_t volatile*)(0x3870006c)) | ||
584 | #define ATA_COMMAND ((uint32_t volatile*)(0x38700070)) | ||
585 | #define ATA_CONTROL ((uint32_t volatile*)(0x38700074)) | ||
586 | #define ATA_PIO_READY (*((uint32_t volatile*)(0x38700078))) | ||
587 | #define ATA_PIO_RDATA (*((uint32_t volatile*)(0x3870007c))) | ||
588 | #define ATA_BUS_FIFO_STATUS (*((uint32_t volatile*)(0x38700080))) | ||
589 | #define ATA_FIFO_STATUS (*((uint32_t volatile*)(0x38700084))) | ||
590 | #define ATA_DMA_ADDR (*((void* volatile*)(0x38700088))) | ||
591 | |||
592 | |||
593 | /////CLICKWHEEL///// | ||
594 | #define WHEEL00 (*((uint32_t volatile*)(0x3C200000))) | ||
595 | #define WHEEL04 (*((uint32_t volatile*)(0x3C200004))) | ||
596 | #define WHEEL08 (*((uint32_t volatile*)(0x3C200008))) | ||
597 | #define WHEEL0C (*((uint32_t volatile*)(0x3C20000C))) | ||
598 | #define WHEEL10 (*((uint32_t volatile*)(0x3C200010))) | ||
599 | #define WHEELINT (*((uint32_t volatile*)(0x3C200014))) | ||
600 | #define WHEELRX (*((uint32_t volatile*)(0x3C200018))) | ||
601 | #define WHEELTX (*((uint32_t volatile*)(0x3C20001C))) | ||
602 | |||
603 | |||
604 | /////I2S///// | ||
605 | #define I2SCLKCON (*((volatile uint32_t*)(0x3CA00000))) | ||
606 | #define I2STXCON (*((volatile uint32_t*)(0x3CA00004))) | ||
607 | #define I2STXCOM (*((volatile uint32_t*)(0x3CA00008))) | ||
608 | #define I2STXDB0 (*((volatile uint32_t*)(0x3CA00010))) | ||
609 | #define I2SRXCON (*((volatile uint32_t*)(0x3CA00030))) | ||
610 | #define I2SRXCOM (*((volatile uint32_t*)(0x3CA00034))) | ||
611 | #define I2SRXDB (*((volatile uint32_t*)(0x3CA00038))) | ||
612 | #define I2SSTATUS (*((volatile uint32_t*)(0x3CA0003C))) | ||
613 | #define I2S40 (*((volatile uint32_t*)(0x3CA00040))) | ||
614 | |||
615 | |||
616 | /////CLOCK GATES///// | ||
617 | #define CLOCKGATE_USB_1 2 | ||
618 | #define CLOCKGATE_USB_2 35 | ||
619 | |||
620 | |||
621 | /////INTERRUPTS///// | ||
622 | #define IRQ_TIMER 8 | ||
623 | #define IRQ_USB_FUNC 19 | ||
624 | #define IRQ_DMAC(d) 16 + d | ||
625 | #define IRQ_DMAC0 16 | ||
626 | #define IRQ_DMAC1 17 | ||
627 | #define IRQ_WHEEL 23 | ||
628 | #define IRQ_ATA 29 | ||
629 | |||
630 | |||
631 | #endif | ||