]> rtime.felk.cvut.cz Git - sysless.git/blob - arch/arm/mach-lpc21xx/defines/lpc21xx.h
(belongs to previous LPC23xx USB commit, I hope...)
[sysless.git] / arch / arm / mach-lpc21xx / defines / lpc21xx.h
1 /***********************************************************************/\r
2 /*  This file is part of the uVision/ARM development tools             */\r
3 /*  Copyright KEIL ELEKTRONIK GmbH 2002-2005                           */\r
4 /***********************************************************************/\r
5 /*                                                                     */\r
6 /*  LPC21XX.H:  Header file for Philips LPC2114 / LPC2119              */\r
7 /*                                      LPC2124 / LPC2129              */\r
8 /*                                      LPC2194                        */\r
9 /*                                                                     */\r
10 /***********************************************************************/\r
11 \r
12 #ifndef __LPC21xx_H\r
13 #define __LPC21xx_H\r
14 \r
15 /* Vectored Interrupt Controller (VIC) */\r
16 #define VICIRQStatus   (*((volatile unsigned long *) 0xFFFFF000))\r
17 #define VICFIQStatus   (*((volatile unsigned long *) 0xFFFFF004))\r
18 #define VICRawIntr     (*((volatile unsigned long *) 0xFFFFF008))\r
19 #define VICIntSelect   (*((volatile unsigned long *) 0xFFFFF00C))\r
20 #define VICIntEnable   (*((volatile unsigned long *) 0xFFFFF010))\r
21 #define VICIntEnClr    (*((volatile unsigned long *) 0xFFFFF014))\r
22 #define VICSoftInt     (*((volatile unsigned long *) 0xFFFFF018))\r
23 #define VICSoftIntClr  (*((volatile unsigned long *) 0xFFFFF01C))\r
24 #define VICProtection  (*((volatile unsigned long *) 0xFFFFF020))\r
25 #define VICVectAddr    (*((volatile unsigned long *) 0xFFFFF030))\r
26 #define VICDefVectAddr (*((volatile unsigned long *) 0xFFFFF034))\r
27 #define VICVectAddr0   (*((volatile unsigned long *) 0xFFFFF100))\r
28 #define VICVectAddr1   (*((volatile unsigned long *) 0xFFFFF104))\r
29 #define VICVectAddr2   (*((volatile unsigned long *) 0xFFFFF108))\r
30 #define VICVectAddr3   (*((volatile unsigned long *) 0xFFFFF10C))\r
31 #define VICVectAddr4   (*((volatile unsigned long *) 0xFFFFF110))\r
32 #define VICVectAddr5   (*((volatile unsigned long *) 0xFFFFF114))\r
33 #define VICVectAddr6   (*((volatile unsigned long *) 0xFFFFF118))\r
34 #define VICVectAddr7   (*((volatile unsigned long *) 0xFFFFF11C))\r
35 #define VICVectAddr8   (*((volatile unsigned long *) 0xFFFFF120))\r
36 #define VICVectAddr9   (*((volatile unsigned long *) 0xFFFFF124))\r
37 #define VICVectAddr10  (*((volatile unsigned long *) 0xFFFFF128))\r
38 #define VICVectAddr11  (*((volatile unsigned long *) 0xFFFFF12C))\r
39 #define VICVectAddr12  (*((volatile unsigned long *) 0xFFFFF130))\r
40 #define VICVectAddr13  (*((volatile unsigned long *) 0xFFFFF134))\r
41 #define VICVectAddr14  (*((volatile unsigned long *) 0xFFFFF138))\r
42 #define VICVectAddr15  (*((volatile unsigned long *) 0xFFFFF13C))\r
43 #define VICVectCntl0   (*((volatile unsigned long *) 0xFFFFF200))\r
44 #define VICVectCntl1   (*((volatile unsigned long *) 0xFFFFF204))\r
45 #define VICVectCntl2   (*((volatile unsigned long *) 0xFFFFF208))\r
46 #define VICVectCntl3   (*((volatile unsigned long *) 0xFFFFF20C))\r
47 #define VICVectCntl4   (*((volatile unsigned long *) 0xFFFFF210))\r
48 #define VICVectCntl5   (*((volatile unsigned long *) 0xFFFFF214))\r
49 #define VICVectCntl6   (*((volatile unsigned long *) 0xFFFFF218))\r
50 #define VICVectCntl7   (*((volatile unsigned long *) 0xFFFFF21C))\r
51 #define VICVectCntl8   (*((volatile unsigned long *) 0xFFFFF220))\r
52 #define VICVectCntl9   (*((volatile unsigned long *) 0xFFFFF224))\r
53 #define VICVectCntl10  (*((volatile unsigned long *) 0xFFFFF228))\r
54 #define VICVectCntl11  (*((volatile unsigned long *) 0xFFFFF22C))\r
55 #define VICVectCntl12  (*((volatile unsigned long *) 0xFFFFF230))\r
56 #define VICVectCntl13  (*((volatile unsigned long *) 0xFFFFF234))\r
57 #define VICVectCntl14  (*((volatile unsigned long *) 0xFFFFF238))\r
58 #define VICVectCntl15  (*((volatile unsigned long *) 0xFFFFF23C))\r
59 \r
60 /* Pin Connect Block */\r
61 #define PINSEL0        (*((volatile unsigned long *) 0xE002C000))\r
62 #define PINSEL1        (*((volatile unsigned long *) 0xE002C004))\r
63 #define PINSEL2        (*((volatile unsigned long *) 0xE002C014))\r
64 \r
65 /* General Purpose Input/Output (GPIO) */\r
66 #define IOPIN0         (*((volatile unsigned long *) 0xE0028000))\r
67 #define IOSET0         (*((volatile unsigned long *) 0xE0028004))\r
68 #define IODIR0         (*((volatile unsigned long *) 0xE0028008))\r
69 #define IOCLR0         (*((volatile unsigned long *) 0xE002800C))\r
70 #define IOPIN1         (*((volatile unsigned long *) 0xE0028010))\r
71 #define IOSET1         (*((volatile unsigned long *) 0xE0028014))\r
72 #define IODIR1         (*((volatile unsigned long *) 0xE0028018))\r
73 #define IOCLR1         (*((volatile unsigned long *) 0xE002801C))\r
74 #define IO0PIN         (*((volatile unsigned long *) 0xE0028000))\r
75 #define IO0SET         (*((volatile unsigned long *) 0xE0028004))\r
76 #define IO0DIR         (*((volatile unsigned long *) 0xE0028008))\r
77 #define IO0CLR         (*((volatile unsigned long *) 0xE002800C))\r
78 #define IO1PIN         (*((volatile unsigned long *) 0xE0028010))\r
79 #define IO1SET         (*((volatile unsigned long *) 0xE0028014))\r
80 #define IO1DIR         (*((volatile unsigned long *) 0xE0028018))\r
81 #define IO1CLR         (*((volatile unsigned long *) 0xE002801C))\r
82 \r
83 /* Memory Accelerator Module (MAM) */\r
84 #define MAMCR          (*((volatile unsigned char *) 0xE01FC000))\r
85 #define MAMTIM         (*((volatile unsigned char *) 0xE01FC004))\r
86 #define MEMMAP         (*((volatile unsigned char *) 0xE01FC040))\r
87 \r
88 /* Phase Locked Loop (PLL) */\r
89 #define PLLCON         (*((volatile unsigned char *) 0xE01FC080))\r
90 #define PLLCFG         (*((volatile unsigned char *) 0xE01FC084))\r
91 #define PLLSTAT        (*((volatile unsigned short*) 0xE01FC088))\r
92 #define PLLFEED        (*((volatile unsigned char *) 0xE01FC08C))\r
93 \r
94 /* VPB Divider */\r
95 #define VPBDIV         (*((volatile unsigned char *) 0xE01FC100))\r
96 \r
97 /* Power Control */\r
98 #define PCON           (*((volatile unsigned char *) 0xE01FC0C0))\r
99 #define PCONP          (*((volatile unsigned long *) 0xE01FC0C4))\r
100 \r
101 /* External Interrupts */\r
102 #define EXTINT         (*((volatile unsigned char *) 0xE01FC140))\r
103 #define EXTWAKE        (*((volatile unsigned char *) 0xE01FC144))\r
104 #define EXTMODE        (*((volatile unsigned char *) 0xE01FC148))\r
105 #define EXTPOLAR       (*((volatile unsigned char *) 0xE01FC14C))\r
106 \r
107 /* Timer 0 */\r
108 #define T0IR           (*((volatile unsigned long *) 0xE0004000))\r
109 #define T0TCR          (*((volatile unsigned long *) 0xE0004004))\r
110 #define T0TC           (*((volatile unsigned long *) 0xE0004008))\r
111 #define T0PR           (*((volatile unsigned long *) 0xE000400C))\r
112 #define T0PC           (*((volatile unsigned long *) 0xE0004010))\r
113 #define T0MCR          (*((volatile unsigned long *) 0xE0004014))\r
114 #define T0MR0          (*((volatile unsigned long *) 0xE0004018))\r
115 #define T0MR1          (*((volatile unsigned long *) 0xE000401C))\r
116 #define T0MR2          (*((volatile unsigned long *) 0xE0004020))\r
117 #define T0MR3          (*((volatile unsigned long *) 0xE0004024))\r
118 #define T0CCR          (*((volatile unsigned long *) 0xE0004028))\r
119 #define T0CR0          (*((volatile unsigned long *) 0xE000402C))\r
120 #define T0CR1          (*((volatile unsigned long *) 0xE0004030))\r
121 #define T0CR2          (*((volatile unsigned long *) 0xE0004034))\r
122 #define T0CR3          (*((volatile unsigned long *) 0xE0004038))\r
123 #define T0EMR          (*((volatile unsigned long *) 0xE000403C))\r
124 \r
125 /* Timer 1 */\r
126 #define T1IR           (*((volatile unsigned long *) 0xE0008000))\r
127 #define T1TCR          (*((volatile unsigned long *) 0xE0008004))\r
128 #define T1TC           (*((volatile unsigned long *) 0xE0008008))\r
129 #define T1PR           (*((volatile unsigned long *) 0xE000800C))\r
130 #define T1PC           (*((volatile unsigned long *) 0xE0008010))\r
131 #define T1MCR          (*((volatile unsigned long *) 0xE0008014))\r
132 #define T1MR0          (*((volatile unsigned long *) 0xE0008018))\r
133 #define T1MR1          (*((volatile unsigned long *) 0xE000801C))\r
134 #define T1MR2          (*((volatile unsigned long *) 0xE0008020))\r
135 #define T1MR3          (*((volatile unsigned long *) 0xE0008024))\r
136 #define T1CCR          (*((volatile unsigned long *) 0xE0008028))\r
137 #define T1CR0          (*((volatile unsigned long *) 0xE000802C))\r
138 #define T1CR1          (*((volatile unsigned long *) 0xE0008030))\r
139 #define T1CR2          (*((volatile unsigned long *) 0xE0008034))\r
140 #define T1CR3          (*((volatile unsigned long *) 0xE0008038))\r
141 #define T1EMR          (*((volatile unsigned long *) 0xE000803C))\r
142 \r
143 /* Pulse Width Modulator (PWM) */\r
144 #define PWMIR          (*((volatile unsigned long *) 0xE0014000))\r
145 #define PWMTCR         (*((volatile unsigned long *) 0xE0014004))\r
146 #define PWMTC          (*((volatile unsigned long *) 0xE0014008))\r
147 #define PWMPR          (*((volatile unsigned long *) 0xE001400C))\r
148 #define PWMPC          (*((volatile unsigned long *) 0xE0014010))\r
149 #define PWMMCR         (*((volatile unsigned long *) 0xE0014014))\r
150 #define PWMMR0         (*((volatile unsigned long *) 0xE0014018))\r
151 #define PWMMR1         (*((volatile unsigned long *) 0xE001401C))\r
152 #define PWMMR2         (*((volatile unsigned long *) 0xE0014020))\r
153 #define PWMMR3         (*((volatile unsigned long *) 0xE0014024))\r
154 #define PWMMR4         (*((volatile unsigned long *) 0xE0014040))\r
155 #define PWMMR5         (*((volatile unsigned long *) 0xE0014044))\r
156 #define PWMMR6         (*((volatile unsigned long *) 0xE0014048))\r
157 #define PWMCCR         (*((volatile unsigned long *) 0xE0014028))\r
158 #define PWMCR0         (*((volatile unsigned long *) 0xE001402C))\r
159 #define PWMCR1         (*((volatile unsigned long *) 0xE0014030))\r
160 #define PWMCR2         (*((volatile unsigned long *) 0xE0014034))\r
161 #define PWMCR3         (*((volatile unsigned long *) 0xE0014038))\r
162 #define PWMEMR         (*((volatile unsigned long *) 0xE001403C))\r
163 #define PWMPCR         (*((volatile unsigned long *) 0xE001404C))\r
164 #define PWMLER         (*((volatile unsigned long *) 0xE0014050))\r
165 \r
166 /* Universal Asynchronous Receiver Transmitter 0 (UART0) */\r
167 #define U0RBR          (*((volatile unsigned char *) 0xE000C000))\r
168 #define U0THR          (*((volatile unsigned char *) 0xE000C000))\r
169 #define U0IER          (*((volatile unsigned char *) 0xE000C004))\r
170 #define U0IIR          (*((volatile unsigned char *) 0xE000C008))\r
171 #define U0FCR          (*((volatile unsigned char *) 0xE000C008))\r
172 #define U0LCR          (*((volatile unsigned char *) 0xE000C00C))\r
173 #define U0MCR          (*((volatile unsigned char *) 0xE000C010))\r
174 #define U0LSR          (*((volatile unsigned char *) 0xE000C014))\r
175 #define U0MSR          (*((volatile unsigned char *) 0xE000C018))\r
176 #define U0SCR          (*((volatile unsigned char *) 0xE000C01C))\r
177 #define U0DLL          (*((volatile unsigned char *) 0xE000C000))\r
178 #define U0DLM          (*((volatile unsigned char *) 0xE000C004))\r
179 \r
180 /* Universal Asynchronous Receiver Transmitter 1 (UART1) */\r
181 #define U1RBR          (*((volatile unsigned char *) 0xE0010000))\r
182 #define U1THR          (*((volatile unsigned char *) 0xE0010000))\r
183 #define U1IER          (*((volatile unsigned char *) 0xE0010004))\r
184 #define U1IIR          (*((volatile unsigned char *) 0xE0010008))\r
185 #define U1FCR          (*((volatile unsigned char *) 0xE0010008))\r
186 #define U1LCR          (*((volatile unsigned char *) 0xE001000C))\r
187 #define U1MCR          (*((volatile unsigned char *) 0xE0010010))\r
188 #define U1LSR          (*((volatile unsigned char *) 0xE0010014))\r
189 #define U1MSR          (*((volatile unsigned char *) 0xE0010018))\r
190 #define U1SCR          (*((volatile unsigned char *) 0xE001001C))\r
191 #define U1DLL          (*((volatile unsigned char *) 0xE0010000))\r
192 #define U1DLM          (*((volatile unsigned char *) 0xE0010004))\r
193 \r
194 /* I2C Interface */\r
195 #define I2CONSET       (*((volatile unsigned char *) 0xE001C000))\r
196 #define I2STAT         (*((volatile unsigned char *) 0xE001C004))\r
197 #define I2DAT          (*((volatile unsigned char *) 0xE001C008))\r
198 #define I2ADR          (*((volatile unsigned char *) 0xE001C00C))\r
199 #define I2SCLH         (*((volatile unsigned short*) 0xE001C010))\r
200 #define I2SCLL         (*((volatile unsigned short*) 0xE001C014))\r
201 #define I2CONCLR       (*((volatile unsigned char *) 0xE001C018))\r
202 \r
203 /* SPI0 (Serial Peripheral Interface 0) */\r
204 #define S0SPCR         (*((volatile unsigned char *) 0xE0020000))\r
205 #define S0SPSR         (*((volatile unsigned char *) 0xE0020004))\r
206 #define S0SPDR         (*((volatile unsigned char *) 0xE0020008))\r
207 #define S0SPCCR        (*((volatile unsigned char *) 0xE002000C))\r
208 #define S0SPTCR        (*((volatile unsigned char *) 0xE0020010))\r
209 #define S0SPTSR        (*((volatile unsigned char *) 0xE0020014))\r
210 #define S0SPTOR        (*((volatile unsigned char *) 0xE0020018))\r
211 #define S0SPINT        (*((volatile unsigned char *) 0xE002001C))\r
212 \r
213 /* SPI1 (Serial Peripheral Interface 1) */\r
214 #define S1SPCR         (*((volatile unsigned char *) 0xE0030000))\r
215 #define S1SPSR         (*((volatile unsigned char *) 0xE0030004))\r
216 #define S1SPDR         (*((volatile unsigned char *) 0xE0030008))\r
217 #define S1SPCCR        (*((volatile unsigned char *) 0xE003000C))\r
218 #define S1SPTCR        (*((volatile unsigned char *) 0xE0030010))\r
219 #define S1SPTSR        (*((volatile unsigned char *) 0xE0030014))\r
220 #define S1SPTOR        (*((volatile unsigned char *) 0xE0030018))\r
221 #define S1SPINT        (*((volatile unsigned char *) 0xE003001C))\r
222 \r
223 /* Real Time Clock */\r
224 #define ILR            (*((volatile unsigned char *) 0xE0024000))\r
225 #define CTC            (*((volatile unsigned short*) 0xE0024004))\r
226 #define CCR            (*((volatile unsigned char *) 0xE0024008))\r
227 #define CIIR           (*((volatile unsigned char *) 0xE002400C))\r
228 #define AMR            (*((volatile unsigned char *) 0xE0024010))\r
229 #define CTIME0         (*((volatile unsigned long *) 0xE0024014))\r
230 #define CTIME1         (*((volatile unsigned long *) 0xE0024018))\r
231 #define CTIME2         (*((volatile unsigned long *) 0xE002401C))\r
232 #define SEC            (*((volatile unsigned char *) 0xE0024020))\r
233 #define MIN            (*((volatile unsigned char *) 0xE0024024))\r
234 #define HOUR           (*((volatile unsigned char *) 0xE0024028))\r
235 #define DOM            (*((volatile unsigned char *) 0xE002402C))\r
236 #define DOW            (*((volatile unsigned char *) 0xE0024030))\r
237 #define DOY            (*((volatile unsigned short*) 0xE0024034))\r
238 #define MONTH          (*((volatile unsigned char *) 0xE0024038))\r
239 #define YEAR           (*((volatile unsigned short*) 0xE002403C))\r
240 #define ALSEC          (*((volatile unsigned char *) 0xE0024060))\r
241 #define ALMIN          (*((volatile unsigned char *) 0xE0024064))\r
242 #define ALHOUR         (*((volatile unsigned char *) 0xE0024068))\r
243 #define ALDOM          (*((volatile unsigned char *) 0xE002406C))\r
244 #define ALDOW          (*((volatile unsigned char *) 0xE0024070))\r
245 #define ALDOY          (*((volatile unsigned short*) 0xE0024074))\r
246 #define ALMON          (*((volatile unsigned char *) 0xE0024078))\r
247 #define ALYEAR         (*((volatile unsigned short*) 0xE002407C))\r
248 #define PREINT         (*((volatile unsigned short*) 0xE0024080))\r
249 #define PREFRAC        (*((volatile unsigned short*) 0xE0024084))\r
250 \r
251 /* A/D Converter */\r
252 #define ADCR           (*((volatile unsigned long *) 0xE0034000))\r
253 #define ADDR           (*((volatile unsigned long *) 0xE0034004))\r
254 \r
255 /* CAN Acceptance Filter RAM */\r
256 #define AFRAM          (*((volatile unsigned long *) 0xE0038000))\r
257 \r
258 /* CAN Acceptance Filter */\r
259 #define AFMR           (*((volatile unsigned long *) 0xE003C000))\r
260 #define SFF_sa         (*((volatile unsigned long *) 0xE003C004))\r
261 #define SFF_GRP_sa     (*((volatile unsigned long *) 0xE003C008))\r
262 #define EFF_sa         (*((volatile unsigned long *) 0xE003C00C))\r
263 #define EFF_GRP_sa     (*((volatile unsigned long *) 0xE003C010))\r
264 #define ENDofTable     (*((volatile unsigned long *) 0xE003C014))\r
265 #define LUTerrAd       (*((volatile unsigned long *) 0xE003C018))\r
266 #define LUTerr         (*((volatile unsigned long *) 0xE003C01C))\r
267 \r
268 /* CAN Central Registers */\r
269 #define CANTxSR        (*((volatile unsigned long *) 0xE0040000))\r
270 #define CANRxSR        (*((volatile unsigned long *) 0xE0040004))\r
271 #define CANMSR         (*((volatile unsigned long *) 0xE0040008))\r
272 \r
273 /* CAN Controller 1 (CAN1) */\r
274 #define C1MOD          (*((volatile unsigned long *) 0xE0044000))\r
275 #define C1CMR          (*((volatile unsigned long *) 0xE0044004))\r
276 #define C1GSR          (*((volatile unsigned long *) 0xE0044008))\r
277 #define C1ICR          (*((volatile unsigned long *) 0xE004400C))\r
278 #define C1IER          (*((volatile unsigned long *) 0xE0044010))\r
279 #define C1BTR          (*((volatile unsigned long *) 0xE0044014))\r
280 #define C1EWL          (*((volatile unsigned long *) 0xE0044018))\r
281 #define C1SR           (*((volatile unsigned long *) 0xE004401C))\r
282 #define C1RFS          (*((volatile unsigned long *) 0xE0044020))\r
283 #define C1RID          (*((volatile unsigned long *) 0xE0044024))\r
284 #define C1RDA          (*((volatile unsigned long *) 0xE0044028))\r
285 #define C1RDB          (*((volatile unsigned long *) 0xE004402C))\r
286 #define C1TFI1         (*((volatile unsigned long *) 0xE0044030))\r
287 #define C1TID1         (*((volatile unsigned long *) 0xE0044034))\r
288 #define C1TDA1         (*((volatile unsigned long *) 0xE0044038))\r
289 #define C1TDB1         (*((volatile unsigned long *) 0xE004403C))\r
290 #define C1TFI2         (*((volatile unsigned long *) 0xE0044040))\r
291 #define C1TID2         (*((volatile unsigned long *) 0xE0044044))\r
292 #define C1TDA2         (*((volatile unsigned long *) 0xE0044048))\r
293 #define C1TDB2         (*((volatile unsigned long *) 0xE004404C))\r
294 #define C1TFI3         (*((volatile unsigned long *) 0xE0044050))\r
295 #define C1TID3         (*((volatile unsigned long *) 0xE0044054))\r
296 #define C1TDA3         (*((volatile unsigned long *) 0xE0044058))\r
297 #define C1TDB3         (*((volatile unsigned long *) 0xE004405C))\r
298 \r
299 /* CAN Controller 2 (CAN2) */\r
300 #define C2MOD          (*((volatile unsigned long *) 0xE0048000))\r
301 #define C2CMR          (*((volatile unsigned long *) 0xE0048004))\r
302 #define C2GSR          (*((volatile unsigned long *) 0xE0048008))\r
303 #define C2ICR          (*((volatile unsigned long *) 0xE004800C))\r
304 #define C2IER          (*((volatile unsigned long *) 0xE0048010))\r
305 #define C2BTR          (*((volatile unsigned long *) 0xE0048014))\r
306 #define C2EWL          (*((volatile unsigned long *) 0xE0048018))\r
307 #define C2SR           (*((volatile unsigned long *) 0xE004801C))\r
308 #define C2RFS          (*((volatile unsigned long *) 0xE0048020))\r
309 #define C2RID          (*((volatile unsigned long *) 0xE0048024))\r
310 #define C2RDA          (*((volatile unsigned long *) 0xE0048028))\r
311 #define C2RDB          (*((volatile unsigned long *) 0xE004802C))\r
312 #define C2TFI1         (*((volatile unsigned long *) 0xE0048030))\r
313 #define C2TID1         (*((volatile unsigned long *) 0xE0048034))\r
314 #define C2TDA1         (*((volatile unsigned long *) 0xE0048038))\r
315 #define C2TDB1         (*((volatile unsigned long *) 0xE004803C))\r
316 #define C2TFI2         (*((volatile unsigned long *) 0xE0048040))\r
317 #define C2TID2         (*((volatile unsigned long *) 0xE0048044))\r
318 #define C2TDA2         (*((volatile unsigned long *) 0xE0048048))\r
319 #define C2TDB2         (*((volatile unsigned long *) 0xE004804C))\r
320 #define C2TFI3         (*((volatile unsigned long *) 0xE0048050))\r
321 #define C2TID3         (*((volatile unsigned long *) 0xE0048054))\r
322 #define C2TDA3         (*((volatile unsigned long *) 0xE0048058))\r
323 #define C2TDB3         (*((volatile unsigned long *) 0xE004805C))\r
324 \r
325 /* CAN Controller 3 (CAN3) */\r
326 #define C3MOD          (*((volatile unsigned long *) 0xE004C000))\r
327 #define C3CMR          (*((volatile unsigned long *) 0xE004C004))\r
328 #define C3GSR          (*((volatile unsigned long *) 0xE004C008))\r
329 #define C3ICR          (*((volatile unsigned long *) 0xE004C00C))\r
330 #define C3IER          (*((volatile unsigned long *) 0xE004C010))\r
331 #define C3BTR          (*((volatile unsigned long *) 0xE004C014))\r
332 #define C3EWL          (*((volatile unsigned long *) 0xE004C018))\r
333 #define C3SR           (*((volatile unsigned long *) 0xE004C01C))\r
334 #define C3RFS          (*((volatile unsigned long *) 0xE004C020))\r
335 #define C3RID          (*((volatile unsigned long *) 0xE004C024))\r
336 #define C3RDA          (*((volatile unsigned long *) 0xE004C028))\r
337 #define C3RDB          (*((volatile unsigned long *) 0xE004C02C))\r
338 #define C3TFI1         (*((volatile unsigned long *) 0xE004C030))\r
339 #define C3TID1         (*((volatile unsigned long *) 0xE004C034))\r
340 #define C3TDA1         (*((volatile unsigned long *) 0xE004C038))\r
341 #define C3TDB1         (*((volatile unsigned long *) 0xE004C03C))\r
342 #define C3TFI2         (*((volatile unsigned long *) 0xE004C040))\r
343 #define C3TID2         (*((volatile unsigned long *) 0xE004C044))\r
344 #define C3TDA2         (*((volatile unsigned long *) 0xE004C048))\r
345 #define C3TDB2         (*((volatile unsigned long *) 0xE004C04C))\r
346 #define C3TFI3         (*((volatile unsigned long *) 0xE004C050))\r
347 #define C3TID3         (*((volatile unsigned long *) 0xE004C054))\r
348 #define C3TDA3         (*((volatile unsigned long *) 0xE004C058))\r
349 #define C3TDB3         (*((volatile unsigned long *) 0xE004C05C))\r
350 \r
351 /* CAN Controller 4 (CAN4) */\r
352 #define C4MOD          (*((volatile unsigned long *) 0xE0050000))\r
353 #define C4CMR          (*((volatile unsigned long *) 0xE0050004))\r
354 #define C4GSR          (*((volatile unsigned long *) 0xE0050008))\r
355 #define C4ICR          (*((volatile unsigned long *) 0xE005000C))\r
356 #define C4IER          (*((volatile unsigned long *) 0xE0050010))\r
357 #define C4BTR          (*((volatile unsigned long *) 0xE0050014))\r
358 #define C4EWL          (*((volatile unsigned long *) 0xE0050018))\r
359 #define C4SR           (*((volatile unsigned long *) 0xE005001C))\r
360 #define C4RFS          (*((volatile unsigned long *) 0xE0050020))\r
361 #define C4RID          (*((volatile unsigned long *) 0xE0050024))\r
362 #define C4RDA          (*((volatile unsigned long *) 0xE0050028))\r
363 #define C4RDB          (*((volatile unsigned long *) 0xE005002C))\r
364 #define C4TFI1         (*((volatile unsigned long *) 0xE0050030))\r
365 #define C4TID1         (*((volatile unsigned long *) 0xE0050034))\r
366 #define C4TDA1         (*((volatile unsigned long *) 0xE0050038))\r
367 #define C4TDB1         (*((volatile unsigned long *) 0xE005003C))\r
368 #define C4TFI2         (*((volatile unsigned long *) 0xE0050040))\r
369 #define C4TID2         (*((volatile unsigned long *) 0xE0050044))\r
370 #define C4TDA2         (*((volatile unsigned long *) 0xE0050048))\r
371 #define C4TDB2         (*((volatile unsigned long *) 0xE005004C))\r
372 #define C4TFI3         (*((volatile unsigned long *) 0xE0050050))\r
373 #define C4TID3         (*((volatile unsigned long *) 0xE0050054))\r
374 #define C4TDA3         (*((volatile unsigned long *) 0xE0050058))\r
375 #define C4TDB3         (*((volatile unsigned long *) 0xE005005C))\r
376 \r
377 /* Watchdog */\r
378 #define WDMOD          (*((volatile unsigned char *) 0xE0000000))\r
379 #define WDTC           (*((volatile unsigned long *) 0xE0000004))\r
380 #define WDFEED         (*((volatile unsigned char *) 0xE0000008))\r
381 #define WDTV           (*((volatile unsigned long *) 0xE000000C))\r
382 \r
383 \r
384 //------------------------- added by Jiri Kubias DCE CVUT -----------------------\r
385 \r
386 // GPIO section, mask for PINSEL\r
387         #define PINSEL_0        0x0l\r
388         #define PINSEL_1        0x1l\r
389         #define PINSEL_2        0x2l\r
390         #define PINSEL_3        0x3l\r
391         \r
392 \r
393 // ADC section\r
394         \r
395         #define ADC_CR_ADC0_m   (1<<0)\r
396         #define ADC_CR_ADC1_m   (1<<1)\r
397         #define ADC_CR_ADC2_m   (1<<2)\r
398         #define ADC_CR_ADC3_m   (1<<3)\r
399         #define ADC_CR_BURST     (1<<16)\r
400         #define ADC_CR_CLK_DIV_1_m      (1<<8)  // this nuber should be multipied  sampe \r
401                                                 // requested divisor 5  ---- clk_div = 4 * ADC_CR_CLK_DIV_1\r
402         #define ADC_CR_CLK_DIV_m(X)     ((X-1)<<8)      // not tested\r
403         #define ADC_CR_CLKS_11_m        (0<<17)\r
404         #define ADC_CR_CLKS_10_m        (1<<17)\r
405         #define ADC_CR_CLKS_9_m         (2<<17)\r
406         #define ADC_CR_CLKS_8_m         (3<<17)\r
407         #define ADC_CR_CLKS_7_m         (4<<17)\r
408         #define ADC_CR_CLKS_6_m         (5<<17)\r
409         #define ADC_CR_CLKS_5_m         (6<<17)\r
410         #define ADC_CR_CLKS_4_m         (7<<17)\r
411         #define ADC_CR_PDN_ON_m         (1<<21)\r
412         #define ADC_CR_START_OFF_m      (0<<24)\r
413         #define ADC_CR_START_NOW_m      (1<<24)\r
414         #define ADC_CR_START_P016_m     (2<<24)\r
415         #define ADC_CR_START_P022_m     (3<<24)\r
416         #define ADC_CR_START_MAT01_m    (4<<24)\r
417         #define ADC_CR_START_MAT03_m    (5<<24)\r
418         #define ADC_CR_START_MAT10_m    (6<<24)\r
419         #define ADC_CR_START_MAT11_m    (7<<24)\r
420         #define ADC_CR_EDGE_RISING_m    (0<<27)\r
421         #define ADC_CR_EDGE_FALLING_m   (1<<27)\r
422 \r
423 \r
424 // PWM section\r
425         // mask for PWMIR\r
426         #define PWMIR_IR_PWM0_m (0x01l << 0)\r
427         #define PWMIR_IR_PWM1_m (0x01l << 1)\r
428         #define PWMIR_IR_PWM2_m (0x01l << 2)\r
429         #define PWMIR_IR_PWM3_m (0x01l << 3)\r
430         #define PWMIR_IR_PWM4_m (0x01l << 8)\r
431         #define PWMIR_IR_PWM5_m (0x01l << 9)\r
432         #define PWMIR_IR_PWM6_m (0x01l << 10)\r
433 \r
434         // mask for PWMTCR\r
435         #define PWMTCR_CE_m     (0x01l << 0)\r
436         #define PWMTCR_CR_m     (0x01l << 1)\r
437         #define PWMTCR_EN_m     (0x01l << 3)\r
438 \r
439         // mask for PWMMCR\r
440         #define PWMMCR_PWMMR0I_m        (0x01l << 0)\r
441         #define PWMMCR_PWMMR0R_m        (0x01l << 1)\r
442         #define PWMMCR_PWMMR0S_m        (0x01l << 2)\r
443         #define PWMMCR_PWMMR1I_m        (0x01l << 3)\r
444         #define PWMMCR_PWMMR1R_m        (0x01l << 4)\r
445         #define PWMMCR_PWMMR1S_m        (0x01l << 5)\r
446         #define PWMMCR_PWMMR2I_m        (0x01l << 6)\r
447         #define PWMMCR_PWMMR2R_m        (0x01l << 7)\r
448         #define PWMMCR_PWMMR2S_m        (0x01l << 8)\r
449         #define PWMMCR_PWMMR3I_m        (0x01l << 9)\r
450         #define PWMMCR_PWMMR3R_m        (0x01l << 10)\r
451         #define PWMMCR_PWMMR3S_m        (0x01l << 11)\r
452         #define PWMMCR_PWMMR4I_m        (0x01l << 12)\r
453         #define PWMMCR_PWMMR4R_m        (0x01l << 13)\r
454         #define PWMMCR_PWMMR4S_m        (0x01l << 14)\r
455         #define PWMMCR_PWMMR5I_m        (0x01l << 15)\r
456         #define PWMMCR_PWMMR5R_m        (0x01l << 16)\r
457         #define PWMMCR_PWMMR5S_m        (0x01l << 17)\r
458         #define PWMMCR_PWMMR6I_m        (0x01l << 18)\r
459         #define PWMMCR_PWMMR6R_m        (0x01l << 19)\r
460         #define PWMMCR_PWMMR6S_m        (0x01l << 20)\r
461 \r
462         // mask for PWMPCR\r
463         #define PWMPCR_PWMSEL2_m        (0x01l << 2)\r
464         #define PWMPCR_PWMSEL3_m        (0x01l << 3)\r
465         #define PWMPCR_PWMSEL4_m        (0x01l << 4)\r
466         #define PWMPCR_PWMSEL5_m        (0x01l << 5)\r
467         #define PWMPCR_PWMSEL6_m        (0x01l << 6)\r
468         #define PWMPCR_PWMENA1_m        (0x01l << 9)\r
469         #define PWMPCR_PWMENA2_m        (0x01l << 10)\r
470         #define PWMPCR_PWMENA3_m        (0x01l << 11)\r
471         #define PWMPCR_PWMENA4_m        (0x01l << 12)\r
472         #define PWMPCR_PWMENA5_m        (0x01l << 13)\r
473         #define PWMPCR_PWMENA6_m        (0x01l << 14)\r
474         \r
475         // mask for PWMLER\r
476 \r
477         #define PWMLER_LA0_m    (0x01l << 0)\r
478         #define PWMLER_LA1_m    (0x01l << 1)\r
479         #define PWMLER_LA2_m    (0x01l << 2)\r
480         #define PWMLER_LA3_m    (0x01l << 3)\r
481         #define PWMLER_LA4_m    (0x01l << 4)\r
482         #define PWMLER_LA5_m    (0x01l << 5)\r
483         #define PWMLER_LA6_m    (0x01l << 6)\r
484         \r
485 \r
486 // SPI section\r
487         // mask for SPCR\r
488         #define SPCR_BIT_EN_m   (1<<2)\r
489         #define SPCR_CPHA_m     (1<<3)\r
490         #define SPCR_CPOL_m     (1<<4)\r
491         #define SPCR_MSTR_m     (1<<5)\r
492         #define SPCR_LSBF_m     (1<<6)\r
493         #define SPCR_SPIE_m     (1<<7)\r
494         #define SPCR_BITS_8_m   (8<<8)\r
495         #define SPCR_BITS_9_m   (9<<8)\r
496         #define SPCR_BITS_10_m  (10<<8)\r
497         #define SPCR_BITS_11_m  (11<<8)\r
498         #define SPCR_BITS_12_m  (12<<8)\r
499         #define SPCR_BITS_13_m  (13<<8)\r
500         #define SPCR_BITS_14_m  (14<<8)\r
501         #define SPCR_BITS_15_m  (15<<8)\r
502         #define SPCR_BITS_16_m  (0<<8)\r
503 \r
504         // mask for SPSR\r
505         #define SPSR_ABRT_m     (1<<3)\r
506         #define SPSR_MODF_m     (1<<4)\r
507         #define SPSR_ROVR_m     (1<<5)\r
508         #define SPSR_WCOL_m     (1<<6)\r
509         #define SPSR_SPIF_m     (1<<7)\r
510 \r
511 \r
512 // VIC Channel Assignments\r
513         #define VIC_WDT         0\r
514         #define VIC_TIMER0      4\r
515         #define VIC_TIMER1      5\r
516         #define VIC_UART0       6\r
517         #define VIC_UART1       7\r
518         #define VIC_PWM         8\r
519         #define VIC_PWM0        8\r
520         #define VIC_I2C         9\r
521         #define VIC_SPI         10\r
522         #define VIC_SPI0        10\r
523         #define VIC_SPI1        11\r
524         #define VIC_PLL         12\r
525         #define VIC_RTC         13\r
526         #define VIC_EINT0       14\r
527         #define VIC_EINT1       15\r
528         #define VIC_EINT2       16\r
529         #define VIC_EINT3       17\r
530         #define VIC_ENABLE      0x20\r
531 \r
532 \r
533 // EXTINT\r
534         //EXTINT part\r
535         #define EXTINT_EINT0_m  (1<<0)\r
536         #define EXTINT_EINT1_m  (1<<1)\r
537         #define EXTINT_EINT2_m  (1<<2)\r
538         #define EXTINT_EINT3_m  (1<<3)  \r
539 \r
540         //EXTWAKE part  \r
541         #define EXTWAKE_EXTWAKE0_m (1<<0)\r
542         #define EXTWAKE_EXTWAKE1_m (1<<1)\r
543         #define EXTWAKE_EXTWAKE2_m (1<<2)\r
544         #define EXTWAKE_EXTWAKE3_m (1<<3)\r
545 \r
546         //EXTMODE part  \r
547         #define EXTMODE_EXTMODE0_m (1<<0)\r
548         #define EXTMODE_EXTMODE1_m (1<<1)\r
549         #define EXTMODE_EXTMODE2_m (1<<2)\r
550         #define EXTMODE_EXTMODE3_m (1<<3)\r
551 \r
552         //EXTPOLAR part \r
553         #define EXTPOLAR_EXTPOLAR0_m (1<<0)\r
554         #define EXTPOLAR_EXTPOLAR1_m (1<<1)\r
555         #define EXTPOLAR_EXTPOLAR2_m (1<<2)\r
556         #define EXTPOLAR_EXTPOLAR3_m (1<<3)\r
557 \r
558 \r
559 // set pin macro\r
560 #define SET_PIN(GATE,PIN,VAL) \\r
561 {       GATE &= ~(PINSEL_3 << (PIN<<1)); \\r
562         GATE |= (VAL << (PIN<<1)); \\r
563 }\r
564 \r
565 \r
566 #ifdef __GNUC__\r
567 /* For Keil compatibility */\r
568 #define __irq __attribute__((interrupt))\r
569 #endif\r
570 \r
571 #endif  // __LPC21xx_H\r