initial checkin of lpc2xxx header file
[my-code/arm.git] / betty / lpc2xxx.h
1 /***********************************************************************\r
2  *                                                                     \r
3  *  lpc2xxx.h:  Header file for Philips LPC2xxx series\r
4  *                                                                     \r
5  ***********************************************************************/\r
6 \r
7 #ifndef __lpc2xxx_h\r
8 #define __lpc2xxx_h\r
9 \r
10 /* External Memory Controller (EMC) */\r
11 #define BCFG0          (*((volatile unsigned long *) 0xFFE00000))\r
12 #define BCFG1          (*((volatile unsigned long *) 0xFFE00004))\r
13 #define BCFG2          (*((volatile unsigned long *) 0xFFE00008))\r
14 #define BCFG3          (*((volatile unsigned long *) 0xFFE0000C))\r
15 \r
16 /* Vectored Interrupt Controller (VIC) */\r
17 #define VICIRQStatus   (*((volatile unsigned long *) 0xFFFFF000))\r
18 #define VICFIQStatus   (*((volatile unsigned long *) 0xFFFFF004))\r
19 #define VICRawIntr     (*((volatile unsigned long *) 0xFFFFF008))\r
20 #define VICIntSelect   (*((volatile unsigned long *) 0xFFFFF00C))\r
21 #define VICIntEnable   (*((volatile unsigned long *) 0xFFFFF010))\r
22 #define VICIntEnClr    (*((volatile unsigned long *) 0xFFFFF014))\r
23 #define VICSoftInt     (*((volatile unsigned long *) 0xFFFFF018))\r
24 #define VICSoftIntClr  (*((volatile unsigned long *) 0xFFFFF01C))\r
25 #define VICProtection  (*((volatile unsigned long *) 0xFFFFF020))\r
26 #define VICVectAddr    (*((volatile unsigned long *) 0xFFFFF030))\r
27 #define VICDefVectAddr (*((volatile unsigned long *) 0xFFFFF034))\r
28 #define VICVectAddr0   (*((volatile unsigned long *) 0xFFFFF100))\r
29 #define VICVectAddr1   (*((volatile unsigned long *) 0xFFFFF104))\r
30 #define VICVectAddr2   (*((volatile unsigned long *) 0xFFFFF108))\r
31 #define VICVectAddr3   (*((volatile unsigned long *) 0xFFFFF10C))\r
32 #define VICVectAddr4   (*((volatile unsigned long *) 0xFFFFF110))\r
33 #define VICVectAddr5   (*((volatile unsigned long *) 0xFFFFF114))\r
34 #define VICVectAddr6   (*((volatile unsigned long *) 0xFFFFF118))\r
35 #define VICVectAddr7   (*((volatile unsigned long *) 0xFFFFF11C))\r
36 #define VICVectAddr8   (*((volatile unsigned long *) 0xFFFFF120))\r
37 #define VICVectAddr9   (*((volatile unsigned long *) 0xFFFFF124))\r
38 #define VICVectAddr10  (*((volatile unsigned long *) 0xFFFFF128))\r
39 #define VICVectAddr11  (*((volatile unsigned long *) 0xFFFFF12C))\r
40 #define VICVectAddr12  (*((volatile unsigned long *) 0xFFFFF130))\r
41 #define VICVectAddr13  (*((volatile unsigned long *) 0xFFFFF134))\r
42 #define VICVectAddr14  (*((volatile unsigned long *) 0xFFFFF138))\r
43 #define VICVectAddr15  (*((volatile unsigned long *) 0xFFFFF13C))\r
44 #define VICVectCntl0   (*((volatile unsigned long *) 0xFFFFF200))\r
45 #define VICVectCntl1   (*((volatile unsigned long *) 0xFFFFF204))\r
46 #define VICVectCntl2   (*((volatile unsigned long *) 0xFFFFF208))\r
47 #define VICVectCntl3   (*((volatile unsigned long *) 0xFFFFF20C))\r
48 #define VICVectCntl4   (*((volatile unsigned long *) 0xFFFFF210))\r
49 #define VICVectCntl5   (*((volatile unsigned long *) 0xFFFFF214))\r
50 #define VICVectCntl6   (*((volatile unsigned long *) 0xFFFFF218))\r
51 #define VICVectCntl7   (*((volatile unsigned long *) 0xFFFFF21C))\r
52 #define VICVectCntl8   (*((volatile unsigned long *) 0xFFFFF220))\r
53 #define VICVectCntl9   (*((volatile unsigned long *) 0xFFFFF224))\r
54 #define VICVectCntl10  (*((volatile unsigned long *) 0xFFFFF228))\r
55 #define VICVectCntl11  (*((volatile unsigned long *) 0xFFFFF22C))\r
56 #define VICVectCntl12  (*((volatile unsigned long *) 0xFFFFF230))\r
57 #define VICVectCntl13  (*((volatile unsigned long *) 0xFFFFF234))\r
58 #define VICVectCntl14  (*((volatile unsigned long *) 0xFFFFF238))\r
59 #define VICVectCntl15  (*((volatile unsigned long *) 0xFFFFF23C))\r
60 \r
61 /* Pin Connect Block */\r
62 #define PINSEL0        (*((volatile unsigned long *) 0xE002C000))\r
63 #define PINSEL1        (*((volatile unsigned long *) 0xE002C004))\r
64 #define PINSEL2        (*((volatile unsigned long *) 0xE002C014))\r
65 \r
66 /* General Purpose Input/Output (GPIO) */\r
67 #define IOPIN          (*((volatile unsigned long *) 0xE0028000))\r
68 #define IOSET          (*((volatile unsigned long *) 0xE0028004))\r
69 #define IODIR          (*((volatile unsigned long *) 0xE0028008))\r
70 #define IOCLR          (*((volatile unsigned long *) 0xE002800C))\r
71 \r
72 #define IOPIN0         (*((volatile unsigned long *) 0xE0028000))\r
73 #define IOSET0         (*((volatile unsigned long *) 0xE0028004))\r
74 #define IODIR0         (*((volatile unsigned long *) 0xE0028008))\r
75 #define IOCLR0         (*((volatile unsigned long *) 0xE002800C))\r
76 #define IOPIN1         (*((volatile unsigned long *) 0xE0028010))\r
77 #define IOSET1         (*((volatile unsigned long *) 0xE0028014))\r
78 #define IODIR1         (*((volatile unsigned long *) 0xE0028018))\r
79 #define IOCLR1         (*((volatile unsigned long *) 0xE002801C))\r
80 #define IOPIN2         (*((volatile unsigned long *) 0xE0028020))\r
81 #define IOSET2         (*((volatile unsigned long *) 0xE0028024))\r
82 #define IODIR2         (*((volatile unsigned long *) 0xE0028028))\r
83 #define IOCLR2         (*((volatile unsigned long *) 0xE002802C))\r
84 #define IOPIN3         (*((volatile unsigned long *) 0xE0028030))\r
85 #define IOSET3         (*((volatile unsigned long *) 0xE0028034))\r
86 #define IODIR3         (*((volatile unsigned long *) 0xE0028038))\r
87 #define IOCLR3         (*((volatile unsigned long *) 0xE002803C))\r
88 \r
89 /* Fast I/O setup */\r
90 #define FIO_BASE_ADDR           0x3FFFC000\r
91 #define FIO0DIR        (*((volatile unsigned long *) 0x3FFFC000)) \r
92 #define FIO0MASK       (*((volatile unsigned long *) 0x3FFFC010))\r
93 #define FIO0PIN        (*((volatile unsigned long *) 0x3FFFC014))\r
94 #define FIO0SET        (*((volatile unsigned long *) 0x3FFFC018))\r
95 #define FIO0CLR        (*((volatile unsigned long *) 0x3FFFC01C))\r
96 #define FIO1DIR        (*((volatile unsigned long *) 0x3FFFC020)) \r
97 #define FIO1MASK       (*((volatile unsigned long *) 0x3FFFC030))\r
98 #define FIO1PIN        (*((volatile unsigned long *) 0x3FFFC034))\r
99 #define FIO1SET        (*((volatile unsigned long *) 0x3FFFC038))\r
100 #define FIO1CLR        (*((volatile unsigned long *) 0x3FFFC03C))\r
101 \r
102 /* Memory Accelerator Module (MAM) */\r
103 #define MAMCR          (*((volatile unsigned long *) 0xE01FC000))\r
104 #define MAMTIM         (*((volatile unsigned long *) 0xE01FC004))\r
105 #define MAMMAP         (*((volatile unsigned long *) 0xE01FC040))\r
106 \r
107 /* Phase Locked Loop (PLL) */\r
108 #define PLLCON         (*((volatile unsigned long *) 0xE01FC080))\r
109 #define PLLCFG         (*((volatile unsigned long *) 0xE01FC084))\r
110 #define PLLSTAT        (*((volatile unsigned long *) 0xE01FC088))\r
111 #define PLLFEED        (*((volatile unsigned long *) 0xE01FC08C))\r
112 \r
113 /* PLL48 Registers */\r
114 #define PLL48CON       (*((volatile unsigned long *) 0xE01FC0A0))\r
115 #define PLL48CFG       (*((volatile unsigned long *) 0xE01FC0A4))\r
116 #define PLL48STAT      (*((volatile unsigned long *) 0xE01FC0A8))\r
117 #define PLL48FEED      (*((volatile unsigned long *) 0xE01FC0AC))\r
118 \r
119 /* Power Control */\r
120 #define PCON           (*((volatile unsigned long *) 0xE01FC0C0))\r
121 #define PCONP          (*((volatile unsigned long *) 0xE01FC0C4))\r
122 \r
123 /* VPB Divider */\r
124 #define VPBDIV         (*((volatile unsigned long *) 0xE01FC100))\r
125 \r
126 /* External Interrupts */\r
127 #define EXTINT         (*((volatile unsigned long *) 0xE01FC140))\r
128 #define EXTWAKE        (*((volatile unsigned long *) 0xE01FC144))\r
129 #define EXTMODE        (*((volatile unsigned long *) 0xE01FC148))\r
130 #define EXTPOLAR       (*((volatile unsigned long *) 0xE01FC14C))\r
131 \r
132 /* Reset */\r
133 #define RSIR           (*((volatile unsigned long *) 0xE01FC180))\r
134 \r
135 /* System Controls and Status */\r
136 #define SCS            (*((volatile unsigned long *) 0xE01FC1A0))       \r
137 \r
138 /* Timer 0 */\r
139 #define TIMER0_IR      (*((volatile unsigned long *) 0xE0004000))\r
140 #define TIMER0_TCR     (*((volatile unsigned long *) 0xE0004004))\r
141 #define TIMER0_TC      (*((volatile unsigned long *) 0xE0004008))\r
142 #define TIMER0_PR      (*((volatile unsigned long *) 0xE000400C))\r
143 #define TIMER0_PC      (*((volatile unsigned long *) 0xE0004010))\r
144 #define TIMER0_MCR     (*((volatile unsigned long *) 0xE0004014))\r
145 #define TIMER0_MR0     (*((volatile unsigned long *) 0xE0004018))\r
146 #define TIMER0_MR1     (*((volatile unsigned long *) 0xE000401C))\r
147 #define TIMER0_MR2     (*((volatile unsigned long *) 0xE0004020))\r
148 #define TIMER0_MR3     (*((volatile unsigned long *) 0xE0004024))\r
149 #define TIMER0_CCR     (*((volatile unsigned long *) 0xE0004028))\r
150 #define TIMER0_CR0     (*((volatile unsigned long *) 0xE000402C))\r
151 #define TIMER0_CR1     (*((volatile unsigned long *) 0xE0004030))\r
152 #define TIMER0_CR2     (*((volatile unsigned long *) 0xE0004034))\r
153 #define TIMER0_CR3     (*((volatile unsigned long *) 0xE0004038))\r
154 #define TIMER0_EMR     (*((volatile unsigned long *) 0xE000403C))\r
155 #define TIMER0_CTCR    (*((volatile unsigned long *) 0xE0004070))\r
156 \r
157 #define T0IR           (*((volatile unsigned long *) 0xE0004000))\r
158 #define T0TCR          (*((volatile unsigned long *) 0xE0004004))\r
159 #define T0TC           (*((volatile unsigned long *) 0xE0004008))\r
160 #define T0PR           (*((volatile unsigned long *) 0xE000400C))\r
161 #define T0PC           (*((volatile unsigned long *) 0xE0004010))\r
162 #define T0MCR          (*((volatile unsigned long *) 0xE0004014))\r
163 #define T0MR0          (*((volatile unsigned long *) 0xE0004018))\r
164 #define T0MR1          (*((volatile unsigned long *) 0xE000401C))\r
165 #define T0MR2          (*((volatile unsigned long *) 0xE0004020))\r
166 #define T0MR3          (*((volatile unsigned long *) 0xE0004024))\r
167 #define T0CCR          (*((volatile unsigned long *) 0xE0004028))\r
168 #define T0CR0          (*((volatile unsigned long *) 0xE000402C))\r
169 #define T0CR1          (*((volatile unsigned long *) 0xE0004030))\r
170 #define T0CR2          (*((volatile unsigned long *) 0xE0004034))\r
171 #define T0CR3          (*((volatile unsigned long *) 0xE0004038))\r
172 #define T0EMR          (*((volatile unsigned long *) 0xE000403C))\r
173 #define T0CTCR         (*((volatile unsigned long *) 0xE0004070))\r
174 \r
175 /* Timer 1 */\r
176 #define TIMER1_IR      (*((volatile unsigned long *) 0xE0008000))\r
177 #define TIMER1_TCR     (*((volatile unsigned long *) 0xE0008004))\r
178 #define TIMER1_TC      (*((volatile unsigned long *) 0xE0008008))\r
179 #define TIMER1_PR      (*((volatile unsigned long *) 0xE000800C))\r
180 #define TIMER1_PC      (*((volatile unsigned long *) 0xE0008010))\r
181 #define TIMER1_MCR     (*((volatile unsigned long *) 0xE0008014))\r
182 #define TIMER1_MR0     (*((volatile unsigned long *) 0xE0008018))\r
183 #define TIMER1_MR1     (*((volatile unsigned long *) 0xE000801C))\r
184 #define TIMER1_MR2     (*((volatile unsigned long *) 0xE0008020))\r
185 #define TIMER1_MR3     (*((volatile unsigned long *) 0xE0008024))\r
186 #define TIMER1_CCR     (*((volatile unsigned long *) 0xE0008028))\r
187 #define TIMER1_CR0     (*((volatile unsigned long *) 0xE000802C))\r
188 #define TIMER1_CR1     (*((volatile unsigned long *) 0xE0008030))\r
189 #define TIMER1_CR2     (*((volatile unsigned long *) 0xE0008034))\r
190 #define TIMER1_CR3     (*((volatile unsigned long *) 0xE0008038))\r
191 #define TIMER1_EMR     (*((volatile unsigned long *) 0xE000803C))\r
192 #define TIMER1_CTCR    (*((volatile unsigned long *) 0xE0008070))\r
193 \r
194 #define T1IR           (*((volatile unsigned long *) 0xE0008000))\r
195 #define T1TCR          (*((volatile unsigned long *) 0xE0008004))\r
196 #define T1TC           (*((volatile unsigned long *) 0xE0008008))\r
197 #define T1PR           (*((volatile unsigned long *) 0xE000800C))\r
198 #define T1PC           (*((volatile unsigned long *) 0xE0008010))\r
199 #define T1MCR          (*((volatile unsigned long *) 0xE0008014))\r
200 #define T1MR0          (*((volatile unsigned long *) 0xE0008018))\r
201 #define T1MR1          (*((volatile unsigned long *) 0xE000801C))\r
202 #define T1MR2          (*((volatile unsigned long *) 0xE0008020))\r
203 #define T1MR3          (*((volatile unsigned long *) 0xE0008024))\r
204 #define T1CCR          (*((volatile unsigned long *) 0xE0008028))\r
205 #define T1CR0          (*((volatile unsigned long *) 0xE000802C))\r
206 #define T1CR1          (*((volatile unsigned long *) 0xE0008030))\r
207 #define T1CR2          (*((volatile unsigned long *) 0xE0008034))\r
208 #define T1CR3          (*((volatile unsigned long *) 0xE0008038))\r
209 #define T1EMR          (*((volatile unsigned long *) 0xE000803C))\r
210 #define T1CTCR         (*((volatile unsigned long *) 0xE0008070))\r
211 \r
212 /* Pulse Width Modulator (PWM) */\r
213 #define PWM_IR         (*((volatile unsigned long *) 0xE0014000))\r
214 #define PWM_TCR        (*((volatile unsigned long *) 0xE0014004))\r
215 #define PWM_TC         (*((volatile unsigned long *) 0xE0014008))\r
216 #define PWM_PR         (*((volatile unsigned long *) 0xE001400C))\r
217 #define PWM_PC         (*((volatile unsigned long *) 0xE0014010))\r
218 #define PWM_MCR        (*((volatile unsigned long *) 0xE0014014))\r
219 #define PWM_MR0        (*((volatile unsigned long *) 0xE0014018))\r
220 #define PWM_MR1        (*((volatile unsigned long *) 0xE001401C))\r
221 #define PWM_MR2        (*((volatile unsigned long *) 0xE0014020))\r
222 #define PWM_MR3        (*((volatile unsigned long *) 0xE0014024))\r
223 #define PWM_MR4        (*((volatile unsigned long *) 0xE0014040))\r
224 #define PWM_MR5        (*((volatile unsigned long *) 0xE0014044))\r
225 #define PWM_MR6        (*((volatile unsigned long *) 0xE0014048))\r
226 #define PWM_CCR        (*((volatile unsigned long *) 0xE0014028))\r
227 #define PWM_CR0        (*((volatile unsigned long *) 0xE001402C))\r
228 #define PWM_CR1        (*((volatile unsigned long *) 0xE0014030))\r
229 #define PWM_CR2        (*((volatile unsigned long *) 0xE0014034))\r
230 #define PWM_CR3        (*((volatile unsigned long *) 0xE0014038))\r
231 #define PWM_EMR        (*((volatile unsigned long *) 0xE001403C))\r
232 #define PWM_PCR        (*((volatile unsigned long *) 0xE001404C))\r
233 #define PWM_LER        (*((volatile unsigned long *) 0xE0014050))\r
234 \r
235 #define PWMIR          (*((volatile unsigned long *) 0xE0014000))\r
236 #define PWMTCR         (*((volatile unsigned long *) 0xE0014004))\r
237 #define PWMTC          (*((volatile unsigned long *) 0xE0014008))\r
238 #define PWMPR          (*((volatile unsigned long *) 0xE001400C))\r
239 #define PWMPC          (*((volatile unsigned long *) 0xE0014010))\r
240 #define PWMMCR         (*((volatile unsigned long *) 0xE0014014))\r
241 #define PWMMR0         (*((volatile unsigned long *) 0xE0014018))\r
242 #define PWMMR1         (*((volatile unsigned long *) 0xE001401C))\r
243 #define PWMMR2         (*((volatile unsigned long *) 0xE0014020))\r
244 #define PWMMR3         (*((volatile unsigned long *) 0xE0014024))\r
245 #define PWMMR4         (*((volatile unsigned long *) 0xE0014040))\r
246 #define PWMMR5         (*((volatile unsigned long *) 0xE0014044))\r
247 #define PWMMR6         (*((volatile unsigned long *) 0xE0014048))\r
248 #define PWMCCR         (*((volatile unsigned long *) 0xE0014028))\r
249 #define PWMCR0         (*((volatile unsigned long *) 0xE001402C))\r
250 #define PWMCR1         (*((volatile unsigned long *) 0xE0014030))\r
251 #define PWMCR2         (*((volatile unsigned long *) 0xE0014034))\r
252 #define PWMCR3         (*((volatile unsigned long *) 0xE0014038))\r
253 #define PWMEMR         (*((volatile unsigned long *) 0xE001403C))\r
254 #define PWMPCR         (*((volatile unsigned long *) 0xE001404C))\r
255 #define PWMLER         (*((volatile unsigned long *) 0xE0014050))\r
256 \r
257 /* Universal Asynchronous Receiver Transmitter 0 (UART0) */\r
258 #define UART0_RBR      (*((volatile unsigned long *) 0xE000C000))\r
259 #define UART0_THR      (*((volatile unsigned long *) 0xE000C000))\r
260 #define UART0_IER      (*((volatile unsigned long *) 0xE000C004))\r
261 #define UART0_IIR      (*((volatile unsigned long *) 0xE000C008))\r
262 #define UART0_FCR      (*((volatile unsigned long *) 0xE000C008))\r
263 #define UART0_LCR      (*((volatile unsigned long *) 0xE000C00C))\r
264 #define UART0_MCR      (*((volatile unsigned long *) 0xE000C010))\r
265 #define UART0_LSR      (*((volatile unsigned long *) 0xE000C014))\r
266 #define UART0_MSR      (*((volatile unsigned long *) 0xE000C018))\r
267 #define UART0_SCR      (*((volatile unsigned long *) 0xE000C01C))\r
268 #define UART0_ACR      (*((volatile unsigned long *) 0xE000C020))\r
269 #define UART0_FDR      (*((volatile unsigned long *) 0xE000C028))\r
270 #define UART0_TER      (*((volatile unsigned long *) 0xE000C030))\r
271 #define UART0_DLL      (*((volatile unsigned long *) 0xE000C000))\r
272 #define UART0_DLM      (*((volatile unsigned long *) 0xE000C004))\r
273 \r
274 #define U0RBR          (*((volatile unsigned long *) 0xE000C000))\r
275 #define U0THR          (*((volatile unsigned long *) 0xE000C000))\r
276 #define U0IER          (*((volatile unsigned long *) 0xE000C004))\r
277 #define U0IIR          (*((volatile unsigned long *) 0xE000C008))\r
278 #define U0FCR          (*((volatile unsigned long *) 0xE000C008))\r
279 #define U0LCR          (*((volatile unsigned long *) 0xE000C00C))\r
280 #define U0MCR          (*((volatile unsigned long *) 0xE000C010))\r
281 #define U0LSR          (*((volatile unsigned long *) 0xE000C014))\r
282 #define U0MSR          (*((volatile unsigned long *) 0xE000C018))\r
283 #define U0SCR          (*((volatile unsigned long *) 0xE000C01C))\r
284 #define U0ACR          (*((volatile unsigned long *) 0xE000C020))\r
285 #define U0FDR          (*((volatile unsigned long *) 0xE000C028))\r
286 #define U0TER          (*((volatile unsigned long *) 0xE000C030))\r
287 #define U0DLL          (*((volatile unsigned long *) 0xE000C000))\r
288 #define U0DLM          (*((volatile unsigned long *) 0xE000C004))\r
289 \r
290 /* Universal Asynchronous Receiver Transmitter 1 (UART1) */\r
291 #define UART1_RBR      (*((volatile unsigned long *) 0xE0010000))\r
292 #define UART1_THR      (*((volatile unsigned long *) 0xE0010000))\r
293 #define UART1_IER      (*((volatile unsigned long *) 0xE0010004))\r
294 #define UART1_IIR      (*((volatile unsigned long *) 0xE0010008))\r
295 #define UART1_FCR      (*((volatile unsigned long *) 0xE0010008))\r
296 #define UART1_LCR      (*((volatile unsigned long *) 0xE001000C))\r
297 #define UART1_MCR      (*((volatile unsigned long *) 0xE0010010))\r
298 #define UART1_LSR      (*((volatile unsigned long *) 0xE0010014))\r
299 #define UART1_MSR      (*((volatile unsigned long *) 0xE0010018))\r
300 #define UART1_SCR      (*((volatile unsigned long *) 0xE001001C))\r
301 #define UART1_ACR      (*((volatile unsigned long *) 0xE0010020))\r
302 #define UART1_FDR      (*((volatile unsigned long *) 0xE0010028))\r
303 #define UART1_TER      (*((volatile unsigned long *) 0xE0010030))\r
304 #define UART1_DLL      (*((volatile unsigned long *) 0xE0010000))\r
305 #define UART1_DLM      (*((volatile unsigned long *) 0xE0010004))\r
306 \r
307 #define U1RBR          (*((volatile unsigned long *) 0xE0010000))\r
308 #define U1THR          (*((volatile unsigned long *) 0xE0010000))\r
309 #define U1IER          (*((volatile unsigned long *) 0xE0010004))\r
310 #define U1IIR          (*((volatile unsigned long *) 0xE0010008))\r
311 #define U1FCR          (*((volatile unsigned long *) 0xE0010008))\r
312 #define U1LCR          (*((volatile unsigned long *) 0xE001000C))\r
313 #define U1MCR          (*((volatile unsigned long *) 0xE0010010))\r
314 #define U1LSR          (*((volatile unsigned long *) 0xE0010014))\r
315 #define U1MSR          (*((volatile unsigned long *) 0xE0010018))\r
316 #define U1SCR          (*((volatile unsigned long *) 0xE001001C))\r
317 #define U1ACR          (*((volatile unsigned long *) 0xE0010020))\r
318 #define U1FDR          (*((volatile unsigned long *) 0xE0010028))\r
319 #define U1TER          (*((volatile unsigned long *) 0xE0010030))\r
320 #define U1DLL          (*((volatile unsigned long *) 0xE0010000))\r
321 #define U1DLM          (*((volatile unsigned long *) 0xE0010004))\r
322 \r
323 /* I2C Interface 0 */\r
324 #define I2C_I2CONSET   (*((volatile unsigned long *) 0xE001C000))\r
325 #define I2C_I2STAT     (*((volatile unsigned long *) 0xE001C004))\r
326 #define I2C_I2DAT      (*((volatile unsigned long *) 0xE001C008))\r
327 #define I2C_I2ADR      (*((volatile unsigned long *) 0xE001C00C))\r
328 #define I2C_I2SCLH     (*((volatile unsigned long *) 0xE001C010))\r
329 #define I2C_I2SCLL     (*((volatile unsigned long *) 0xE001C014))\r
330 #define I2C_I2CONCLR   (*((volatile unsigned long *) 0xE001C018))\r
331 \r
332 #define I2CONSET       (*((volatile unsigned long *) 0xE001C000))\r
333 #define I2STAT         (*((volatile unsigned long *) 0xE001C004))\r
334 #define I2DAT          (*((volatile unsigned long *) 0xE001C008))\r
335 #define I2ADR          (*((volatile unsigned long *) 0xE001C00C))\r
336 #define I2SCLH         (*((volatile unsigned long *) 0xE001C010))\r
337 #define I2SCLL         (*((volatile unsigned long *) 0xE001C014))\r
338 #define I2CONCLR       (*((volatile unsigned long *) 0xE001C018))\r
339 \r
340 /* I2C Interface 1 */\r
341 #define I21CONSET      (*((volatile unsigned long *) 0xE005C000))\r
342 #define I21STAT        (*((volatile unsigned long *) 0xE005C004))\r
343 #define I21DAT         (*((volatile unsigned long *) 0xE005C008))\r
344 #define I21ADR         (*((volatile unsigned long *) 0xE005C00C))\r
345 #define I21SCLH        (*((volatile unsigned long *) 0xE005C010))\r
346 #define I21SCLL        (*((volatile unsigned long *) 0xE005C014))\r
347 #define I21CONCLR      (*((volatile unsigned long *) 0xE005C018))\r
348 \r
349 /* SPI (Serial Peripheral Interface) */\r
350 #define SPI_SPCR       (*((volatile unsigned long *) 0xE0020000))\r
351 #define SPI_SPSR       (*((volatile unsigned long *) 0xE0020004))\r
352 #define SPI_SPDR       (*((volatile unsigned long *) 0xE0020008))\r
353 #define SPI_SPCCR      (*((volatile unsigned long *) 0xE002000C))\r
354 #define SPI_SPTCR      (*((volatile unsigned long *) 0xE0020010))\r
355 #define SPI_SPTSR      (*((volatile unsigned long *) 0xE0020014))\r
356 #define SPI_SPTOR      (*((volatile unsigned long *) 0xE0020018))\r
357 #define SPI_SPINT      (*((volatile unsigned long *) 0xE002001C))\r
358 \r
359 #define S0SPCR         (*((volatile unsigned long *) 0xE0020000))\r
360 #define S0SPSR         (*((volatile unsigned long *) 0xE0020004))\r
361 #define S0SPDR         (*((volatile unsigned long *) 0xE0020008))\r
362 #define S0SPCCR        (*((volatile unsigned long *) 0xE002000C))\r
363 #define S0SPTCR        (*((volatile unsigned long *) 0xE0020010))\r
364 #define S0SPTSR        (*((volatile unsigned long *) 0xE0020014))\r
365 #define S0SPTOR        (*((volatile unsigned long *) 0xE0020018))\r
366 #define S0SPINT        (*((volatile unsigned long *) 0xE002001C))\r
367 \r
368 /* SPI1 (Serial Peripheral Interface 1) */\r
369 #define S1SPCR         (*((volatile unsigned long *) 0xE0030000))\r
370 #define S1SPSR         (*((volatile unsigned long *) 0xE0030004))\r
371 #define S1SPDR         (*((volatile unsigned long *) 0xE0030008))\r
372 #define S1SPCCR        (*((volatile unsigned long *) 0xE003000C))\r
373 #define S1SPTCR        (*((volatile unsigned long *) 0xE0030010))\r
374 #define S1SPTSR        (*((volatile unsigned long *) 0xE0030014))\r
375 #define S1SPTOR        (*((volatile unsigned long *) 0xE0030018))\r
376 #define S1SPINT        (*((volatile unsigned long *) 0xE003001C))\r
377 \r
378 /* SSP Controller */\r
379 #define SSPCR0         (*((volatile unsigned long *) 0xE0068000))\r
380 #define SSPCR1         (*((volatile unsigned long *) 0xE0068004))\r
381 #define SSPDR          (*((volatile unsigned long *) 0xE0068008))\r
382 #define SSPSR          (*((volatile unsigned long *) 0xE006800C))\r
383 #define SSPCPSR        (*((volatile unsigned long *) 0xE0068010))\r
384 #define SSPIMSC        (*((volatile unsigned long *) 0xE0068014))\r
385 #define SSPRIS         (*((volatile unsigned long *) 0xE0068018))\r
386 #define SSPMIS         (*((volatile unsigned long *) 0xE006801C))\r
387 #define SSPICR         (*((volatile unsigned long *) 0xE0068020))\r
388 \r
389 /* Real Time Clock */\r
390 #define RTC_ILR        (*((volatile unsigned long *) 0xE0024000))\r
391 #define RTC_CTC        (*((volatile unsigned long *) 0xE0024004))\r
392 #define RTC_CCR        (*((volatile unsigned long *) 0xE0024008))\r
393 #define RTC_CIIR       (*((volatile unsigned long *) 0xE002400C))\r
394 #define RTC_AMR        (*((volatile unsigned long *) 0xE0024010))\r
395 #define RTC_CTIME0     (*((volatile unsigned long *) 0xE0024014))\r
396 #define RTC_CTIME1     (*((volatile unsigned long *) 0xE0024018))\r
397 #define RTC_CTIME2     (*((volatile unsigned long *) 0xE002401C))\r
398 #define RTC_SEC        (*((volatile unsigned long *) 0xE0024020))\r
399 #define RTC_MIN        (*((volatile unsigned long *) 0xE0024024))\r
400 #define RTC_HOUR       (*((volatile unsigned long *) 0xE0024028))\r
401 #define RTC_DOM        (*((volatile unsigned long *) 0xE002402C))\r
402 #define RTC_DOW        (*((volatile unsigned long *) 0xE0024030))\r
403 #define RTC_DOY        (*((volatile unsigned long *) 0xE0024034))\r
404 #define RTC_MONTH      (*((volatile unsigned long *) 0xE0024038))\r
405 #define RTC_YEAR       (*((volatile unsigned long *) 0xE002403C))\r
406 #define RTC_ALSEC      (*((volatile unsigned long *) 0xE0024060))\r
407 #define RTC_ALMIN      (*((volatile unsigned long *) 0xE0024064))\r
408 #define RTC_ALHOUR     (*((volatile unsigned long *) 0xE0024068))\r
409 #define RTC_ALDOM      (*((volatile unsigned long *) 0xE002406C))\r
410 #define RTC_ALDOW      (*((volatile unsigned long *) 0xE0024070))\r
411 #define RTC_ALDOY      (*((volatile unsigned long *) 0xE0024074))\r
412 #define RTC_ALMON      (*((volatile unsigned long *) 0xE0024078))\r
413 #define RTC_ALYEAR     (*((volatile unsigned long *) 0xE002407C))\r
414 #define RTC_PREINT     (*((volatile unsigned long *) 0xE0024080))\r
415 #define RTC_PREFRAC    (*((volatile unsigned long *) 0xE0024084))\r
416 \r
417 #define ILR            (*((volatile unsigned long *) 0xE0024000))\r
418 #define CTC            (*((volatile unsigned long *) 0xE0024004))\r
419 #define CCR            (*((volatile unsigned long *) 0xE0024008))\r
420 #define CIIR           (*((volatile unsigned long *) 0xE002400C))\r
421 #define AMR            (*((volatile unsigned long *) 0xE0024010))\r
422 #define CTIME0         (*((volatile unsigned long *) 0xE0024014))\r
423 #define CTIME1         (*((volatile unsigned long *) 0xE0024018))\r
424 #define CTIME2         (*((volatile unsigned long *) 0xE002401C))\r
425 #define SEC            (*((volatile unsigned long *) 0xE0024020))\r
426 #define MIN            (*((volatile unsigned long *) 0xE0024024))\r
427 #define HOUR           (*((volatile unsigned long *) 0xE0024028))\r
428 #define DOM            (*((volatile unsigned long *) 0xE002402C))\r
429 #define DOW            (*((volatile unsigned long *) 0xE0024030))\r
430 #define DOY            (*((volatile unsigned long *) 0xE0024034))\r
431 #define MONTH          (*((volatile unsigned long *) 0xE0024038))\r
432 #define YEAR           (*((volatile unsigned long *) 0xE002403C))\r
433 #define ALSEC          (*((volatile unsigned long *) 0xE0024060))\r
434 #define ALMIN          (*((volatile unsigned long *) 0xE0024064))\r
435 #define ALHOUR         (*((volatile unsigned long *) 0xE0024068))\r
436 #define ALDOM          (*((volatile unsigned long *) 0xE002406C))\r
437 #define ALDOW          (*((volatile unsigned long *) 0xE0024070))\r
438 #define ALDOY          (*((volatile unsigned long *) 0xE0024074))\r
439 #define ALMON          (*((volatile unsigned long *) 0xE0024078))\r
440 #define ALYEAR         (*((volatile unsigned long *) 0xE002407C))\r
441 #define PREINT         (*((volatile unsigned long *) 0xE0024080))\r
442 #define PREFRAC        (*((volatile unsigned long *) 0xE0024084))\r
443 \r
444 /* A/D Converter */\r
445 #define ADCR           (*((volatile unsigned long *) 0xE0034000))\r
446 #define ADDR           (*((volatile unsigned long *) 0xE0034004))\r
447 #define AD1CR          (*((volatile unsigned long *) 0xE0060000))\r
448 #define AD1DR          (*((volatile unsigned long *) 0xE0060004))\r
449 \r
450 /* D/A Converter */\r
451 #define DACR           (*((volatile unsigned long *) 0xE006C000))\r
452 \r
453 /* USB Controller */\r
454 /* Device Interrupt Registers */\r
455 #define DEV_INT_STAT   (*((volatile unsigned long *) 0xE0090000))\r
456 #define DEV_INT_EN     (*((volatile unsigned long *) 0xE0090004))\r
457 #define DEV_INT_CLR    (*((volatile unsigned long *) 0xE0090008))\r
458 #define DEV_INT_SET    (*((volatile unsigned long *) 0xE009000C))\r
459 #define DEV_INT_PRIO   (*((volatile unsigned long *) 0xE009002C))\r
460 \r
461 /* Endpoint Interrupt Registers */\r
462 #define EP_INT_STAT    (*((volatile unsigned long *) 0xE0090030))\r
463 #define EP_INT_EN      (*((volatile unsigned long *) 0xE0090034))\r
464 #define EP_INT_CLR     (*((volatile unsigned long *) 0xE0090038))\r
465 #define EP_INT_SET     (*((volatile unsigned long *) 0xE009003C))\r
466 #define EP_INT_PRIO    (*((volatile unsigned long *) 0xE0090040))\r
467 \r
468 /* Endpoint Realization Registers */\r
469 #define REALIZE_EP     (*((volatile unsigned long *) 0xE0090044))\r
470 #define EP_INDEX       (*((volatile unsigned long *) 0xE0090048))\r
471 #define MAXPACKET_SIZE (*((volatile unsigned long *) 0xE009004C))\r
472 \r
473 /* Command Reagisters */\r
474 #define CMD_CODE       (*((volatile unsigned long *) 0xE0090010))\r
475 #define CMD_DATA       (*((volatile unsigned long *) 0xE0090014))\r
476 \r
477 /* Data Transfer Registers */\r
478 #define RX_DATA        (*((volatile unsigned long *) 0xE0090018))\r
479 #define TX_DATA        (*((volatile unsigned long *) 0xE009001C))\r
480 #define RX_PLENGTH     (*((volatile unsigned long *) 0xE0090020))\r
481 #define TX_PLENGTH     (*((volatile unsigned long *) 0xE0090024))\r
482 #define USB_CTRL       (*((volatile unsigned long *) 0xE0090028))\r
483 \r
484 /* DMA Registers */\r
485 #define DMA_REQ_STAT   (*((volatile unsigned long *) 0xE0090050))\r
486 #define DMA_REQ_CLR    (*((volatile unsigned long *) 0xE0090054))\r
487 #define DMA_REQ_SET    (*((volatile unsigned long *) 0xE0090058))\r
488 #define UDCA_HEAD      (*((volatile unsigned long *) 0xE0090080))\r
489 #define EP_DMA_STAT    (*((volatile unsigned long *) 0xE0090084))\r
490 #define EP_DMA_EN      (*((volatile unsigned long *) 0xE0090088))\r
491 #define EP_DMA_DIS     (*((volatile unsigned long *) 0xE009008C))\r
492 #define DMA_INT_STAT   (*((volatile unsigned long *) 0xE0090090))\r
493 #define DMA_INT_EN     (*((volatile unsigned long *) 0xE0090094))\r
494 #define EOT_INT_STAT   (*((volatile unsigned long *) 0xE00900A0))\r
495 #define EOT_INT_CLR    (*((volatile unsigned long *) 0xE00900A4))\r
496 #define EOT_INT_SET    (*((volatile unsigned long *) 0xE00900A8))\r
497 #define NDD_REQ_INT_STAT (*((volatile unsigned long *) 0xE00900AC))\r
498 #define NDD_REQ_INT_CLR  (*((volatile unsigned long *) 0xE00900B0))\r
499 #define NDD_REQ_INT_SET  (*((volatile unsigned long *) 0xE00900B4))\r
500 #define SYS_ERR_INT_STAT (*((volatile unsigned long *) 0xE00900B8))\r
501 #define SYS_ERR_INT_CLR  (*((volatile unsigned long *) 0xE00900BC))\r
502 #define SYS_ERR_INT_SET  (*((volatile unsigned long *) 0xE00900C0))    \r
503 #define MODULE_ID        (*((volatile unsigned long *) 0xE00900FC))\r
504 \r
505 /* CAN Acceptance Filter RAM */\r
506 #define AFRAM          (*((volatile unsigned long *) 0xE0038000))\r
507 \r
508 /* CAN Acceptance Filter */\r
509 #define AFMR           (*((volatile unsigned long *) 0xE003C000))\r
510 #define SFF_sa         (*((volatile unsigned long *) 0xE003C004))\r
511 #define SFF_GRP_sa     (*((volatile unsigned long *) 0xE003C008))\r
512 #define EFF_sa         (*((volatile unsigned long *) 0xE003C00C))\r
513 #define EFF_GRP_sa     (*((volatile unsigned long *) 0xE003C010))\r
514 #define ENDofTable     (*((volatile unsigned long *) 0xE003C014))\r
515 #define LUTerrAd       (*((volatile unsigned long *) 0xE003C018))\r
516 #define LUTerr         (*((volatile unsigned long *) 0xE003C01C))\r
517 \r
518 /* CAN Central Registers */\r
519 #define CANTxSR        (*((volatile unsigned long *) 0xE0040000))\r
520 #define CANRxSR        (*((volatile unsigned long *) 0xE0040004))\r
521 #define CANMSR         (*((volatile unsigned long *) 0xE0040008))\r
522 \r
523 /* CAN Controller 1 (CAN1) */\r
524 #define C1MOD          (*((volatile unsigned long *) 0xE0044000))\r
525 #define C1CMR          (*((volatile unsigned long *) 0xE0044004))\r
526 #define C1GSR          (*((volatile unsigned long *) 0xE0044008))\r
527 #define C1ICR          (*((volatile unsigned long *) 0xE004400C))\r
528 #define C1IER          (*((volatile unsigned long *) 0xE0044010))\r
529 #define C1BTR          (*((volatile unsigned long *) 0xE0044014))\r
530 #define C1EWL          (*((volatile unsigned long *) 0xE0044018))\r
531 #define C1SR           (*((volatile unsigned long *) 0xE004401C))\r
532 #define C1RFS          (*((volatile unsigned long *) 0xE0044020))\r
533 #define C1RID          (*((volatile unsigned long *) 0xE0044024))\r
534 #define C1RDA          (*((volatile unsigned long *) 0xE0044028))\r
535 #define C1RDB          (*((volatile unsigned long *) 0xE004402C))\r
536 #define C1TFI1         (*((volatile unsigned long *) 0xE0044030))\r
537 #define C1TID1         (*((volatile unsigned long *) 0xE0044034))\r
538 #define C1TDA1         (*((volatile unsigned long *) 0xE0044038))\r
539 #define C1TDB1         (*((volatile unsigned long *) 0xE004403C))\r
540 #define C1TFI2         (*((volatile unsigned long *) 0xE0044040))\r
541 #define C1TID2         (*((volatile unsigned long *) 0xE0044044))\r
542 #define C1TDA2         (*((volatile unsigned long *) 0xE0044048))\r
543 #define C1TDB2         (*((volatile unsigned long *) 0xE004404C))\r
544 #define C1TFI3         (*((volatile unsigned long *) 0xE0044050))\r
545 #define C1TID3         (*((volatile unsigned long *) 0xE0044054))\r
546 #define C1TDA3         (*((volatile unsigned long *) 0xE0044058))\r
547 #define C1TDB3         (*((volatile unsigned long *) 0xE004405C))\r
548 \r
549 /* CAN Controller 2 (CAN2) */\r
550 #define C2MOD          (*((volatile unsigned long *) 0xE0048000))\r
551 #define C2CMR          (*((volatile unsigned long *) 0xE0048004))\r
552 #define C2GSR          (*((volatile unsigned long *) 0xE0048008))\r
553 #define C2ICR          (*((volatile unsigned long *) 0xE004800C))\r
554 #define C2IER          (*((volatile unsigned long *) 0xE0048010))\r
555 #define C2BTR          (*((volatile unsigned long *) 0xE0048014))\r
556 #define C2EWL          (*((volatile unsigned long *) 0xE0048018))\r
557 #define C2SR           (*((volatile unsigned long *) 0xE004801C))\r
558 #define C2RFS          (*((volatile unsigned long *) 0xE0048020))\r
559 #define C2RID          (*((volatile unsigned long *) 0xE0048024))\r
560 #define C2RDA          (*((volatile unsigned long *) 0xE0048028))\r
561 #define C2RDB          (*((volatile unsigned long *) 0xE004802C))\r
562 #define C2TFI1         (*((volatile unsigned long *) 0xE0048030))\r
563 #define C2TID1         (*((volatile unsigned long *) 0xE0048034))\r
564 #define C2TDA1         (*((volatile unsigned long *) 0xE0048038))\r
565 #define C2TDB1         (*((volatile unsigned long *) 0xE004803C))\r
566 #define C2TFI2         (*((volatile unsigned long *) 0xE0048040))\r
567 #define C2TID2         (*((volatile unsigned long *) 0xE0048044))\r
568 #define C2TDA2         (*((volatile unsigned long *) 0xE0048048))\r
569 #define C2TDB2         (*((volatile unsigned long *) 0xE004804C))\r
570 #define C2TFI3         (*((volatile unsigned long *) 0xE0048050))\r
571 #define C2TID3         (*((volatile unsigned long *) 0xE0048054))\r
572 #define C2TDA3         (*((volatile unsigned long *) 0xE0048058))\r
573 #define C2TDB3         (*((volatile unsigned long *) 0xE004805C))\r
574 \r
575 /* CAN Controller 3 (CAN3) */\r
576 #define C3MOD          (*((volatile unsigned long *) 0xE004C000))\r
577 #define C3CMR          (*((volatile unsigned long *) 0xE004C004))\r
578 #define C3GSR          (*((volatile unsigned long *) 0xE004C008))\r
579 #define C3ICR          (*((volatile unsigned long *) 0xE004C00C))\r
580 #define C3IER          (*((volatile unsigned long *) 0xE004C010))\r
581 #define C3BTR          (*((volatile unsigned long *) 0xE004C014))\r
582 #define C3EWL          (*((volatile unsigned long *) 0xE004C018))\r
583 #define C3SR           (*((volatile unsigned long *) 0xE004C01C))\r
584 #define C3RFS          (*((volatile unsigned long *) 0xE004C020))\r
585 #define C3RID          (*((volatile unsigned long *) 0xE004C024))\r
586 #define C3RDA          (*((volatile unsigned long *) 0xE004C028))\r
587 #define C3RDB          (*((volatile unsigned long *) 0xE004C02C))\r
588 #define C3TFI1         (*((volatile unsigned long *) 0xE004C030))\r
589 #define C3TID1         (*((volatile unsigned long *) 0xE004C034))\r
590 #define C3TDA1         (*((volatile unsigned long *) 0xE004C038))\r
591 #define C3TDB1         (*((volatile unsigned long *) 0xE004C03C))\r
592 #define C3TFI2         (*((volatile unsigned long *) 0xE004C040))\r
593 #define C3TID2         (*((volatile unsigned long *) 0xE004C044))\r
594 #define C3TDA2         (*((volatile unsigned long *) 0xE004C048))\r
595 #define C3TDB2         (*((volatile unsigned long *) 0xE004C04C))\r
596 #define C3TFI3         (*((volatile unsigned long *) 0xE004C050))\r
597 #define C3TID3         (*((volatile unsigned long *) 0xE004C054))\r
598 #define C3TDA3         (*((volatile unsigned long *) 0xE004C058))\r
599 #define C3TDB3         (*((volatile unsigned long *) 0xE004C05C))\r
600 \r
601 /* CAN Controller 4 (CAN4) */\r
602 #define C4MOD          (*((volatile unsigned long *) 0xE0050000))\r
603 #define C4CMR          (*((volatile unsigned long *) 0xE0050004))\r
604 #define C4GSR          (*((volatile unsigned long *) 0xE0050008))\r
605 #define C4ICR          (*((volatile unsigned long *) 0xE005000C))\r
606 #define C4IER          (*((volatile unsigned long *) 0xE0050010))\r
607 #define C4BTR          (*((volatile unsigned long *) 0xE0050014))\r
608 #define C4EWL          (*((volatile unsigned long *) 0xE0050018))\r
609 #define C4SR           (*((volatile unsigned long *) 0xE005001C))\r
610 #define C4RFS          (*((volatile unsigned long *) 0xE0050020))\r
611 #define C4RID          (*((volatile unsigned long *) 0xE0050024))\r
612 #define C4RDA          (*((volatile unsigned long *) 0xE0050028))\r
613 #define C4RDB          (*((volatile unsigned long *) 0xE005002C))\r
614 #define C4TFI1         (*((volatile unsigned long *) 0xE0050030))\r
615 #define C4TID1         (*((volatile unsigned long *) 0xE0050034))\r
616 #define C4TDA1         (*((volatile unsigned long *) 0xE0050038))\r
617 #define C4TDB1         (*((volatile unsigned long *) 0xE005003C))\r
618 #define C4TFI2         (*((volatile unsigned long *) 0xE0050040))\r
619 #define C4TID2         (*((volatile unsigned long *) 0xE0050044))\r
620 #define C4TDA2         (*((volatile unsigned long *) 0xE0050048))\r
621 #define C4TDB2         (*((volatile unsigned long *) 0xE005004C))\r
622 #define C4TFI3         (*((volatile unsigned long *) 0xE0050050))\r
623 #define C4TID3         (*((volatile unsigned long *) 0xE0050054))\r
624 #define C4TDA3         (*((volatile unsigned long *) 0xE0050058))\r
625 #define C4TDB3         (*((volatile unsigned long *) 0xE005005C))\r
626 \r
627 /* Watchdog */\r
628 #define WDMOD          (*((volatile unsigned long *) 0xE0000000))\r
629 #define WDTC           (*((volatile unsigned long *) 0xE0000004))\r
630 #define WDFEED         (*((volatile unsigned long *) 0xE0000008))\r
631 #define WDTV           (*((volatile unsigned long *) 0xE000000C))\r
632 \r
633 #endif  // __LPC2xxx_H\r