1 /***********************************************************************/
\r
2 /* This file is part of the uVision/ARM development tools */
\r
3 /* Copyright KEIL ELEKTRONIK GmbH 2002-2005 */
\r
4 /***********************************************************************/
\r
6 /* LPC21XX.H: Header file for Philips LPC2114 / LPC2119 */
\r
7 /* LPC2124 / LPC2129 */
\r
10 /***********************************************************************/
\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
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
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
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
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
95 #define VPBDIV (*((volatile unsigned char *) 0xE01FC100))
\r
98 #define PCON (*((volatile unsigned char *) 0xE01FC0C0))
\r
99 #define PCONP (*((volatile unsigned long *) 0xE01FC0C4))
\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
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
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
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
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
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
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
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
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
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
251 /* A/D Converter */
\r
252 #define ADCR (*((volatile unsigned long *) 0xE0034000))
\r
253 #define ADDR (*((volatile unsigned long *) 0xE0034004))
\r
255 /* CAN Acceptance Filter RAM */
\r
256 #define AFRAM (*((volatile unsigned long *) 0xE0038000))
\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
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
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
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
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
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
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
384 //------------------------- added by Jiri Kubias DCE CVUT -----------------------
\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
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
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
435 #define PWMTCR_CE_m (0x01l << 0)
\r
436 #define PWMTCR_CR_m (0x01l << 1)
\r
437 #define PWMTCR_EN_m (0x01l << 3)
\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
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
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
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
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
512 // VIC Channel Assignments
\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
522 #define VIC_SPI0 10
\r
523 #define VIC_SPI1 11
\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
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
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
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
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
560 #define SET_PIN(GATE,PIN,VAL) \
\r
561 { GATE &= ~(PINSEL_3 << (PIN<<1)); \
\r
562 GATE |= (VAL << (PIN<<1)); \
\r
567 /* For Keil compatibility */
\r
568 #define __irq __attribute__((interrupt))
\r
571 #endif // __LPC21xx_H
\r