MOXA linux-2.6.x / linux-2.6.19-uc1 from UC-7110-LX-BOOTLOADER-1.9_VERSION-4.2.tgz
[linux-2.6.19-moxart.git] / include / asm-arm / arch-lpc22xx / lpc22xx.h
blob30bc0a3dbcf9bbbb8304815106a2f64f95c218ba
2 #ifndef __ASM_ARCH_LPC22xx_H
3 #define __ASM_ARCH_LPC22xx_H
5 /* EXTERNAL MEMORY CONTROLLER (EMC) */
6 #define BCFG0 (*((volatile unsigned int *) 0xFFE00000)) /* lpc22xx only */
7 #define BCFG1 (*((volatile unsigned int *) 0xFFE00004)) /* lpc22xx only */
8 #define BCFG2 (*((volatile unsigned int *) 0xFFE00008)) /* lpc22xx only */
9 #define BCFG3 (*((volatile unsigned int *) 0xFFE0000C)) /* lpc22xx only */
11 /* External Interrupts */
12 #define EXTINT (*((volatile unsigned char *) 0xE01FC140))
13 #define EXTWAKE (*((volatile unsigned char *) 0xE01FC144))
14 #ifdef CONFIG_ARCH_LPC22xx
15 #define EXTMODE (*((volatile unsigned char *) 0xE01FC148)) /* no in lpc210x*/
16 #define EXTPOLAR (*((volatile unsigned char *) 0xE01FC14C)) /* no in lpc210x*/
17 #endif
19 /* SMemory mapping control. */
20 #define MEMMAP (*((volatile unsigned char *) 0xE01FC040))
22 /* Phase Locked Loop (PLL) */
23 #define PLLCON (*((volatile unsigned char *) 0xE01FC080))
24 #define PLLCFG (*((volatile unsigned char *) 0xE01FC084))
25 #define PLLSTAT (*((volatile unsigned short*) 0xE01FC088))
26 #define PLLFEED (*((volatile unsigned char *) 0xE01FC08C))
28 /* Power Control */
29 #define PCON (*((volatile unsigned char *) 0xE01FC0C0))
30 #define PCONP (*((volatile unsigned long *) 0xE01FC0C4))
32 /* VPB Divider */
33 #define VPBDIV (*((volatile unsigned char *) 0xE01FC100))
35 /* Memory Accelerator Module (MAM) */
36 #define MAMCR (*((volatile unsigned char *) 0xE01FC000))
37 #define MAMTIM (*((volatile unsigned char *) 0xE01FC004))
39 /* Vectored Interrupt Controller (VIC) */
40 #define VICIRQStatus (*((volatile unsigned long *) 0xFFFFF000))
41 #define VICFIQStatus (*((volatile unsigned long *) 0xFFFFF004))
42 #define VICRawIntr (*((volatile unsigned long *) 0xFFFFF008))
43 #define VICIntSelect (*((volatile unsigned long *) 0xFFFFF00C))
44 #define VICIntEnable (*((volatile unsigned long *) 0xFFFFF010))
45 #define VICIntEnClr (*((volatile unsigned long *) 0xFFFFF014))
46 #define VICSoftInt (*((volatile unsigned long *) 0xFFFFF018))
47 #define VICSoftIntClear (*((volatile unsigned long *) 0xFFFFF01C))
48 #define VICProtection (*((volatile unsigned long *) 0xFFFFF020))
49 #define VICVectAddr (*((volatile unsigned long *) 0xFFFFF030))
50 #define VICDefVectAddr (*((volatile unsigned long *) 0xFFFFF034))
51 #define VICVectAddr0 (*((volatile unsigned long *) 0xFFFFF100))
52 #define VICVectAddr1 (*((volatile unsigned long *) 0xFFFFF104))
53 #define VICVectAddr2 (*((volatile unsigned long *) 0xFFFFF108))
54 #define VICVectAddr3 (*((volatile unsigned long *) 0xFFFFF10C))
55 #define VICVectAddr4 (*((volatile unsigned long *) 0xFFFFF110))
56 #define VICVectAddr5 (*((volatile unsigned long *) 0xFFFFF114))
57 #define VICVectAddr6 (*((volatile unsigned long *) 0xFFFFF118))
58 #define VICVectAddr7 (*((volatile unsigned long *) 0xFFFFF11C))
59 #define VICVectAddr8 (*((volatile unsigned long *) 0xFFFFF120))
60 #define VICVectAddr9 (*((volatile unsigned long *) 0xFFFFF124))
61 #define VICVectAddr10 (*((volatile unsigned long *) 0xFFFFF128))
62 #define VICVectAddr11 (*((volatile unsigned long *) 0xFFFFF12C))
63 #define VICVectAddr12 (*((volatile unsigned long *) 0xFFFFF130))
64 #define VICVectAddr13 (*((volatile unsigned long *) 0xFFFFF134))
65 #define VICVectAddr14 (*((volatile unsigned long *) 0xFFFFF138))
66 #define VICVectAddr15 (*((volatile unsigned long *) 0xFFFFF13C))
67 #define VICVectCntl0 (*((volatile unsigned long *) 0xFFFFF200))
68 #define VICVectCntl1 (*((volatile unsigned long *) 0xFFFFF204))
69 #define VICVectCntl2 (*((volatile unsigned long *) 0xFFFFF208))
70 #define VICVectCntl3 (*((volatile unsigned long *) 0xFFFFF20C))
71 #define VICVectCntl4 (*((volatile unsigned long *) 0xFFFFF210))
72 #define VICVectCntl5 (*((volatile unsigned long *) 0xFFFFF214))
73 #define VICVectCntl6 (*((volatile unsigned long *) 0xFFFFF218))
74 #define VICVectCntl7 (*((volatile unsigned long *) 0xFFFFF21C))
75 #define VICVectCntl8 (*((volatile unsigned long *) 0xFFFFF220))
76 #define VICVectCntl9 (*((volatile unsigned long *) 0xFFFFF224))
77 #define VICVectCntl10 (*((volatile unsigned long *) 0xFFFFF228))
78 #define VICVectCntl11 (*((volatile unsigned long *) 0xFFFFF22C))
79 #define VICVectCntl12 (*((volatile unsigned long *) 0xFFFFF230))
80 #define VICVectCntl13 (*((volatile unsigned long *) 0xFFFFF234))
81 #define VICVectCntl14 (*((volatile unsigned long *) 0xFFFFF238))
82 #define VICVectCntl15 (*((volatile unsigned long *) 0xFFFFF23C))
84 /* Pin Connect Block */
85 #define PINSEL0 (*((volatile unsigned long *) 0xE002C000))
86 #define PINSEL1 (*((volatile unsigned long *) 0xE002C004))
87 #ifdef CONFIG_ARCH_LPC22xx
88 #define PINSEL2 (*((volatile unsigned long *) 0xE002C014)) /* no in lpc210x*/
89 #endif
91 /* General Purpose Input/Output (GPIO) */
92 #ifndef CONFIG_ARCH_LPC22xx
94 #define IOPIN (*((volatile unsigned long *) 0xE0028000)) /* lpc210x only */
95 #define IOSET (*((volatile unsigned long *) 0xE0028004)) /* lpc210x only */
96 #define IODIR (*((volatile unsigned long *) 0xE0028008)) /* lpc210x only */
97 #define IOCLR (*((volatile unsigned long *) 0xE002800C)) /* lpc210x only */
99 #endif
101 #ifdef CONFIG_ARCH_LPC22xx
102 #define IO0PIN (*((volatile unsigned long *) 0xE0028000)) /* no in lpc210x*/
103 #define IO0SET (*((volatile unsigned long *) 0xE0028004)) /* no in lpc210x*/
104 #define IO0DIR (*((volatile unsigned long *) 0xE0028008)) /* no in lpc210x*/
105 #define IO0CLR (*((volatile unsigned long *) 0xE002800C)) /* no in lpc210x*/
107 #define IO1PIN (*((volatile unsigned long *) 0xE0028010)) /* no in lpc210x*/
108 #define IO1SET (*((volatile unsigned long *) 0xE0028014)) /* no in lpc210x*/
109 #define IO1DIR (*((volatile unsigned long *) 0xE0028018)) /* no in lpc210x*/
110 #define IO1CLR (*((volatile unsigned long *) 0xE002801C)) /* no in lpc210x*/
111 #endif
113 #ifdef CONFIG_ARCH_LPC22xx
115 #define IO2PIN (*((volatile unsigned long *) 0xE0028020)) /* lpc22xx only */
116 #define IO2SET (*((volatile unsigned long *) 0xE0028024)) /* lpc22xx only */
117 #define IO2DIR (*((volatile unsigned long *) 0xE0028028)) /* lpc22xx only */
118 #define IO2CLR (*((volatile unsigned long *) 0xE002802C)) /* lpc22xx only */
120 #define IO3PIN (*((volatile unsigned long *) 0xE0028030)) /* lpc22xx only */
121 #define IO3SET (*((volatile unsigned long *) 0xE0028034)) /* lpc22xx only */
122 #define IO3DIR (*((volatile unsigned long *) 0xE0028038)) /* lpc22xx only */
123 #define IO3CLR (*((volatile unsigned long *) 0xE002803C)) /* lpc22xx only */
125 #endif
127 /* Universal Asynchronous Receiver Transmitter 0 (UART0) */
128 #define U0RBR (*((volatile unsigned char *) 0xE000C000))
129 #define U0THR (*((volatile unsigned char *) 0xE000C000))
130 #define U0IER (*((volatile unsigned char *) 0xE000C004))
131 #define U0IIR (*((volatile unsigned char *) 0xE000C008))
132 #define U0FCR (*((volatile unsigned char *) 0xE000C008))
133 #define U0LCR (*((volatile unsigned char *) 0xE000C00C))
134 #define U0LSR (*((volatile unsigned char *) 0xE000C014))
135 #define U0SCR (*((volatile unsigned char *) 0xE000C01C))
136 #define U0DLL (*((volatile unsigned char *) 0xE000C000))
137 #define U0DLM (*((volatile unsigned char *) 0xE000C004))
139 /* Universal Asynchronous Receiver Transmitter 1 (UART1) */
140 #define U1RBR (*((volatile unsigned char *) 0xE0010000))
141 #define U1THR (*((volatile unsigned char *) 0xE0010000))
142 #define U1IER (*((volatile unsigned char *) 0xE0010004))
143 #define U1IIR (*((volatile unsigned char *) 0xE0010008))
144 #define U1FCR (*((volatile unsigned char *) 0xE0010008))
145 #define U1LCR (*((volatile unsigned char *) 0xE001000C))
146 #define U1MCR (*((volatile unsigned char *) 0xE0010010))
147 #define U1LSR (*((volatile unsigned char *) 0xE0010014))
148 #define U1MSR (*((volatile unsigned char *) 0xE0010018))
149 #define U1SCR (*((volatile unsigned char *) 0xE001001C))
150 #define U1DLL (*((volatile unsigned char *) 0xE0010000))
151 #define U1DLM (*((volatile unsigned char *) 0xE0010004))
153 /* I2C (8/16 bit data bus) */
154 #define I2CONSET (*((volatile unsigned char *) 0xE001C000))
155 #define I2STAT (*((volatile unsigned char *) 0xE001C004))
156 #define I2DAT (*((volatile unsigned char *) 0xE001C008))
157 #define I2ADR (*((volatile unsigned char *) 0xE001C00C))
158 #define I2SCLH (*((volatile unsigned short *) 0xE001C010))
159 #define I2SCLL (*((volatile unsigned short *) 0xE001C014))
160 #define I2CONCLR (*((volatile unsigned char *) 0xE001C018))
162 /* SPI (Serial Peripheral Interface) */
163 /* only for lpc210x*/
164 #define SPI_SPCR (*((volatile unsigned char *) 0xE0020000))
165 #define SPI_SPSR (*((volatile unsigned char *) 0xE0020004))
166 #define SPI_SPDR (*((volatile unsigned char *) 0xE0020008))
167 #define SPI_SPCCR (*((volatile unsigned char *) 0xE002000C))
168 #define SPI_SPINT (*((volatile unsigned char *) 0xE002001C))
170 #ifdef CONFIG_ARCH_LPC22xx
171 #define S0PCR (*((volatile unsigned char *) 0xE0020000)) /* no in lpc210x*/
172 #define S0PSR (*((volatile unsigned char *) 0xE0020004)) /* no in lpc210x*/
173 #define S0PDR (*((volatile unsigned char *) 0xE0020008)) /* no in lpc210x*/
174 #define S0PCCR (*((volatile unsigned char *) 0xE002000C)) /* no in lpc210x*/
175 #define S0PINT (*((volatile unsigned char *) 0xE002001C)) /* no in lpc210x*/
177 #define S1PCR (*((volatile unsigned char *) 0xE0030000)) /* no in lpc210x*/
178 #define S1PSR (*((volatile unsigned char *) 0xE0030004)) /* no in lpc210x*/
179 #define S1PDR (*((volatile unsigned char *) 0xE0030008)) /* no in lpc210x*/
180 #define S1PCCR (*((volatile unsigned char *) 0xE003000C)) /* no in lpc210x*/
181 #define S1PINT (*((volatile unsigned char *) 0xE003001C)) /* no in lpc210x*/
182 #endif
183 /* CAN CONTROLLERS AND ACCEPTANCE FILTER */
184 #define CAN1MOD (*((volatile unsigned long *) 0xE0044000)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
185 #define CAN1CMR (*((volatile unsigned long *) 0xE0044004)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
186 #define CAN1GSR (*((volatile unsigned long *) 0xE0044008)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
187 #define CAN1ICR (*((volatile unsigned long *) 0xE004400C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
188 #define CAN1IER (*((volatile unsigned long *) 0xE0044010)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
189 #define CAN1BTR (*((volatile unsigned long *) 0xE0044014)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
190 #define CAN1EWL (*((volatile unsigned long *) 0xE004401C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
191 #define CAN1SR (*((volatile unsigned long *) 0xE0044020)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
192 #define CAN1RFS (*((volatile unsigned long *) 0xE0044024)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
193 #define CAN1RDA (*((volatile unsigned long *) 0xE0044028)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
194 #define CAN1RDB (*((volatile unsigned long *) 0xE004402C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
195 #define CAN1TFI1 (*((volatile unsigned long *) 0xE0044030)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
196 #define CAN1TID1 (*((volatile unsigned long *) 0xE0044034)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
197 #define CAN1TDA1 (*((volatile unsigned long *) 0xE0044038)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
198 #define CAN1TDB1 (*((volatile unsigned long *) 0xE004403C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
199 #define CAN1TFI2 (*((volatile unsigned long *) 0xE0044040)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
200 #define CAN1TID2 (*((volatile unsigned long *) 0xE0044044)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
201 #define CAN1TDA2 (*((volatile unsigned long *) 0xE0044048)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
202 #define CAN1TDB2 (*((volatile unsigned long *) 0xE004404C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
203 #define CAN1TFI3 (*((volatile unsigned long *) 0xE0044050)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
204 #define CAN1TID3 (*((volatile unsigned long *) 0xE0044054)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
205 #define CAN1TDA3 (*((volatile unsigned long *) 0xE0044058)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
206 #define CAN1TDB3 (*((volatile unsigned long *) 0xE004405C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
208 #define CAN2MOD (*((volatile unsigned long *) 0xE0048000)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
209 #define CAN2CMR (*((volatile unsigned long *) 0xE0048004)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
210 #define CAN2GSR (*((volatile unsigned long *) 0xE0048008)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
211 #define CAN2ICR (*((volatile unsigned long *) 0xE004800C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
212 #define CAN2IER (*((volatile unsigned long *) 0xE0048010)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
213 #define CAN2BTR (*((volatile unsigned long *) 0xE0048014)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
214 #define CAN2EWL (*((volatile unsigned long *) 0xE004801C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
215 #define CAN2SR (*((volatile unsigned long *) 0xE0048020)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
216 #define CAN2RFS (*((volatile unsigned long *) 0xE0048024)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
217 #define CAN2RDA (*((volatile unsigned long *) 0xE0048028)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
218 #define CAN2RDB (*((volatile unsigned long *) 0xE004802C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
219 #define CAN2TFI1 (*((volatile unsigned long *) 0xE0048030)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
220 #define CAN2TID1 (*((volatile unsigned long *) 0xE0048034)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
221 #define CAN2TDA1 (*((volatile unsigned long *) 0xE0048038)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
222 #define CAN2TDB1 (*((volatile unsigned long *) 0xE004803C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
223 #define CAN2TFI2 (*((volatile unsigned long *) 0xE0048040)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
224 #define CAN2TID2 (*((volatile unsigned long *) 0xE0048044)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
225 #define CAN2TDA2 (*((volatile unsigned long *) 0xE0048048)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
226 #define CAN2TDB2 (*((volatile unsigned long *) 0xE004804C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
227 #define CAN2TFI3 (*((volatile unsigned long *) 0xE0048050)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
228 #define CAN2TID3 (*((volatile unsigned long *) 0xE0048054)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
229 #define CAN2TDA3 (*((volatile unsigned long *) 0xE0048058)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
230 #define CAN2TDB3 (*((volatile unsigned long *) 0xE004805C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
232 #define CAN3MOD (*((volatile unsigned long *) 0xE004C000)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
233 #define CAN3CMR (*((volatile unsigned long *) 0xE004C004)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
234 #define CAN3GSR (*((volatile unsigned long *) 0xE004C008)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
235 #define CAN3ICR (*((volatile unsigned long *) 0xE004C00C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
236 #define CAN3IER (*((volatile unsigned long *) 0xE004C010)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
237 #define CAN3BTR (*((volatile unsigned long *) 0xE004C014)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
238 #define CAN3EWL (*((volatile unsigned long *) 0xE004C01C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
239 #define CAN3SR (*((volatile unsigned long *) 0xE004C020)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
240 #define CAN3RFS (*((volatile unsigned long *) 0xE004C024)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
241 #define CAN3RDA (*((volatile unsigned long *) 0xE004C028)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
242 #define CAN3RDB (*((volatile unsigned long *) 0xE004C02C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
243 #define CAN3TFI1 (*((volatile unsigned long *) 0xE004C030)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
244 #define CAN3TID1 (*((volatile unsigned long *) 0xE004C034)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
245 #define CAN3TDA1 (*((volatile unsigned long *) 0xE004C038)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
246 #define CAN3TDB1 (*((volatile unsigned long *) 0xE004C03C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
247 #define CAN3TFI2 (*((volatile unsigned long *) 0xE004C040)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
248 #define CAN3TID2 (*((volatile unsigned long *) 0xE004C044)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
249 #define CAN3TDA2 (*((volatile unsigned long *) 0xE004C048)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
250 #define CAN3TDB2 (*((volatile unsigned long *) 0xE004C04C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
251 #define CAN3TFI3 (*((volatile unsigned long *) 0xE004C050)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
252 #define CAN3TID3 (*((volatile unsigned long *) 0xE004C054)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
253 #define CAN3TDA3 (*((volatile unsigned long *) 0xE004C058)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
254 #define CAN3TDB3 (*((volatile unsigned long *) 0xE004C05C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
256 #define CAN4MOD (*((volatile unsigned long *) 0xE0050000)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
257 #define CAN4CMR (*((volatile unsigned long *) 0xE0050004)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
258 #define CAN4GSR (*((volatile unsigned long *) 0xE0050008)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
259 #define CAN4ICR (*((volatile unsigned long *) 0xE005000C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
260 #define CAN4IER (*((volatile unsigned long *) 0xE0050010)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
261 #define CAN4BTR (*((volatile unsigned long *) 0xE0050014)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
262 #define CAN4EWL (*((volatile unsigned long *) 0xE005001C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
263 #define CAN4SR (*((volatile unsigned long *) 0xE0050020)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
264 #define CAN4RFS (*((volatile unsigned long *) 0xE0050024)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
265 #define CAN4RDA (*((volatile unsigned long *) 0xE0050028)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
266 #define CAN4RDB (*((volatile unsigned long *) 0xE005002C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
267 #define CAN4TFI1 (*((volatile unsigned long *) 0xE0050030)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
268 #define CAN4TID1 (*((volatile unsigned long *) 0xE0050034)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
269 #define CAN4TDA1 (*((volatile unsigned long *) 0xE0050038)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
270 #define CAN4TDB1 (*((volatile unsigned long *) 0xE005003C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
271 #define CAN4TFI2 (*((volatile unsigned long *) 0xE0050040)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
272 #define CAN4TID2 (*((volatile unsigned long *) 0xE0050044)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
273 #define CAN4TDA2 (*((volatile unsigned long *) 0xE0050048)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
274 #define CAN4TDB2 (*((volatile unsigned long *) 0xE005004C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
275 #define CAN4TFI3 (*((volatile unsigned long *) 0xE0050050)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
276 #define CAN4TID3 (*((volatile unsigned long *) 0xE0050054)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
277 #define CAN4TDA3 (*((volatile unsigned long *) 0xE0050058)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
278 #define CAN4TDB3 (*((volatile unsigned long *) 0xE005005C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
280 #define CAN5MOD (*((volatile unsigned long *) 0xE0054000)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
281 #define CAN5CMR (*((volatile unsigned long *) 0xE0054004)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
282 #define CAN5GSR (*((volatile unsigned long *) 0xE0054008)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
283 #define CAN5ICR (*((volatile unsigned long *) 0xE005400C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
284 #define CAN5IER (*((volatile unsigned long *) 0xE0054010)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
285 #define CAN5BTR (*((volatile unsigned long *) 0xE0054014)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
286 #define CAN5EWL (*((volatile unsigned long *) 0xE005401C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
287 #define CAN5SR (*((volatile unsigned long *) 0xE0054020)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
288 #define CAN5RFS (*((volatile unsigned long *) 0xE0054024)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
289 #define CAN5RDA (*((volatile unsigned long *) 0xE0054028)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
290 #define CAN5RDB (*((volatile unsigned long *) 0xE005402C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
291 #define CAN5TFI1 (*((volatile unsigned long *) 0xE0054030)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
292 #define CAN5TID1 (*((volatile unsigned long *) 0xE0054034)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
293 #define CAN5TDA1 (*((volatile unsigned long *) 0xE0054038)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
294 #define CAN5TDB1 (*((volatile unsigned long *) 0xE005403C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
295 #define CAN5TFI2 (*((volatile unsigned long *) 0xE0054040)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
296 #define CAN5TID2 (*((volatile unsigned long *) 0xE0054044)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
297 #define CAN5TDA2 (*((volatile unsigned long *) 0xE0054048)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
298 #define CAN5TDB2 (*((volatile unsigned long *) 0xE005404C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
299 #define CAN5TFI3 (*((volatile unsigned long *) 0xE0054050)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
300 #define CAN5TID3 (*((volatile unsigned long *) 0xE0054054)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
301 #define CAN5TDA3 (*((volatile unsigned long *) 0xE0054058)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
302 #define CAN5TDB3 (*((volatile unsigned long *) 0xE005405C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
304 #ifdef CONFIG_ARCH_LPC22xx
305 #define CAN6MOD (*((volatile unsigned long *) 0xE0058000)) /* lpc2292\lpc2294 only */
306 #define CAN6CMR (*((volatile unsigned long *) 0xE0058004)) /* lpc2292\lpc2294 only */
307 #define CAN6GSR (*((volatile unsigned long *) 0xE0058008)) /* lpc2292\lpc2294 only */
308 #define CAN6ICR (*((volatile unsigned long *) 0xE005800C)) /* lpc2292\lpc2294 only */
309 #define CAN6IER (*((volatile unsigned long *) 0xE0058010)) /* lpc2292\lpc2294 only */
310 #define CAN6BTR (*((volatile unsigned long *) 0xE0058014)) /* lpc2292\lpc2294 only */
311 #define CAN6EWL (*((volatile unsigned long *) 0xE005801C)) /* lpc2292\lpc2294 only */
312 #define CAN6SR (*((volatile unsigned long *) 0xE0058020)) /* lpc2292\lpc2294 only */
313 #define CAN6RFS (*((volatile unsigned long *) 0xE0058024)) /* lpc2292\lpc2294 only */
314 #define CAN6RDA (*((volatile unsigned long *) 0xE0058028)) /* lpc2292\lpc2294 only */
315 #define CAN6RDB (*((volatile unsigned long *) 0xE005802C)) /* lpc2292\lpc2294 only */
316 #define CAN6TFI1 (*((volatile unsigned long *) 0xE0058030)) /* lpc2292\lpc2294 only */
317 #define CAN6TID1 (*((volatile unsigned long *) 0xE0058034)) /* lpc2292\lpc2294 only */
318 #define CAN6TDA1 (*((volatile unsigned long *) 0xE0058038)) /* lpc2292\lpc2294 only */
319 #define CAN6TDB1 (*((volatile unsigned long *) 0xE005803C)) /* lpc2292\lpc2294 only */
320 #define CAN6TFI2 (*((volatile unsigned long *) 0xE0058040)) /* lpc2292\lpc2294 only */
321 #define CAN6TID2 (*((volatile unsigned long *) 0xE0058044)) /* lpc2292\lpc2294 only */
322 #define CAN6TDA2 (*((volatile unsigned long *) 0xE0058048)) /* lpc2292\lpc2294 only */
323 #define CAN6TDB2 (*((volatile unsigned long *) 0xE005804C)) /* lpc2292\lpc2294 only */
324 #define CAN6TFI3 (*((volatile unsigned long *) 0xE0058050)) /* lpc2292\lpc2294 only */
325 #define CAN6TID3 (*((volatile unsigned long *) 0xE0058054)) /* lpc2292\lpc2294 only */
326 #define CAN6TDA3 (*((volatile unsigned long *) 0xE0058058)) /* lpc2292\lpc2294 only */
327 #define CAN6TDB3 (*((volatile unsigned long *) 0xE005805C)) /* lpc2292\lpc2294 only */
328 #endif
330 #define CANTxSR (*((volatile unsigned long *) 0xE0040000)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
331 #define CANRxSR (*((volatile unsigned long *) 0xE0040004)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
332 #define CANMSR (*((volatile unsigned long *) 0xE0040008)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
334 #define CANAFMR (*((volatile unsigned long *) 0xE003C000)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
335 #define CANSFF_sa (*((volatile unsigned long *) 0xE003C004)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
336 #define CANSFF_GRP_sa (*((volatile unsigned long *) 0xE003C008)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
337 #define CANEFF_sa (*((volatile unsigned long *) 0xE003C00C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
338 #define CANEFF_GRP_sa (*((volatile unsigned long *) 0xE003C010)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
339 #define CANENDofTable (*((volatile unsigned long *) 0xE003C014)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
340 #define CANLUTerrAd (*((volatile unsigned long *) 0xE003C018)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
341 #define CANLUTerr (*((volatile unsigned long *) 0xE003C01C)) /* lpc2119\lpc2129\lpc2292\lpc2294 only */
342 /* CAN Acceptance Filter RAM */
343 #define CANAFRAM (*((volatile unsigned long *) 0xE0038000))
346 /* Timer 0 */
347 #define T0IR (*((volatile unsigned long *) 0xE0004000))
348 #define T0TCR (*((volatile unsigned long *) 0xE0004004))
349 #define T0TC (*((volatile unsigned long *) 0xE0004008))
350 #define T0PR (*((volatile unsigned long *) 0xE000400C))
351 #define T0PC (*((volatile unsigned long *) 0xE0004010))
352 #define T0MCR (*((volatile unsigned long *) 0xE0004014))
353 #define T0MR0 (*((volatile unsigned long *) 0xE0004018))
354 #define T0MR1 (*((volatile unsigned long *) 0xE000401C))
355 #define T0MR2 (*((volatile unsigned long *) 0xE0004020))
356 #define T0MR3 (*((volatile unsigned long *) 0xE0004024))
357 #define T0CCR (*((volatile unsigned long *) 0xE0004028))
358 #define T0CR0 (*((volatile unsigned long *) 0xE000402C))
359 #define T0CR1 (*((volatile unsigned long *) 0xE0004030))
360 #define T0CR2 (*((volatile unsigned long *) 0xE0004034))
361 #define T0CR3 (*((volatile unsigned long *) 0xE0004038))
362 #define T0EMR (*((volatile unsigned long *) 0xE000403C))
364 /* Timer 1 */
365 #define T1IR (*((volatile unsigned long *) 0xE0008000))
366 #define T1TCR (*((volatile unsigned long *) 0xE0008004))
367 #define T1TC (*((volatile unsigned long *) 0xE0008008))
368 #define T1PR (*((volatile unsigned long *) 0xE000800C))
369 #define T1PC (*((volatile unsigned long *) 0xE0008010))
370 #define T1MCR (*((volatile unsigned long *) 0xE0008014))
371 #define T1MR0 (*((volatile unsigned long *) 0xE0008018))
372 #define T1MR1 (*((volatile unsigned long *) 0xE000801C))
373 #define T1MR2 (*((volatile unsigned long *) 0xE0008020))
374 #define T1MR3 (*((volatile unsigned long *) 0xE0008024))
375 #define T1CCR (*((volatile unsigned long *) 0xE0008028))
376 #define T1CR0 (*((volatile unsigned long *) 0xE000802C))
377 #define T1CR1 (*((volatile unsigned long *) 0xE0008030))
378 #define T1CR2 (*((volatile unsigned long *) 0xE0008034))
379 #define T1CR3 (*((volatile unsigned long *) 0xE0008038))
380 #define T1EMR (*((volatile unsigned long *) 0xE000803C))
382 /* Pulse Width Modulator (PWM) */
383 #define PWMIR (*((volatile unsigned long *) 0xE0014000))
384 #define PWMTCR (*((volatile unsigned long *) 0xE0014004))
385 #define PWMTC (*((volatile unsigned long *) 0xE0014008))
386 #define PWMPR (*((volatile unsigned long *) 0xE001400C))
387 #define PWMPC (*((volatile unsigned long *) 0xE0014010))
388 #define PWMMCR (*((volatile unsigned long *) 0xE0014014))
389 #define PWMMR0 (*((volatile unsigned long *) 0xE0014018))
390 #define PWMMR1 (*((volatile unsigned long *) 0xE001401C))
391 #define PWMMR2 (*((volatile unsigned long *) 0xE0014020))
392 #define PWMMR3 (*((volatile unsigned long *) 0xE0014024))
393 #define PWMMR4 (*((volatile unsigned long *) 0xE0014040))
394 #define PWMMR5 (*((volatile unsigned long *) 0xE0014044))
395 #define PWMMR6 (*((volatile unsigned long *) 0xE0014048))
396 #define PWMPCR (*((volatile unsigned long *) 0xE001404C))
397 #define PWMLER (*((volatile unsigned long *) 0xE0014050))
399 /* A/D CONVERTER */
400 #ifndef CONFIG_ARCH_LPC2104
401 #define ADCR (*((volatile unsigned long *) 0xE0034000)) /* no in lpc210x*/
402 #define ADDR (*((volatile unsigned long *) 0xE0034004)) /* no in lpc210x*/
403 #endif
405 /* Real Time Clock */
406 #define ILR (*((volatile unsigned char *) 0xE0024000))
407 #define CTC (*((volatile unsigned short*) 0xE0024004))
408 #define CCR (*((volatile unsigned char *) 0xE0024008))
409 #define CIIR (*((volatile unsigned char *) 0xE002400C))
410 #define AMR (*((volatile unsigned char *) 0xE0024010))
411 #define CTIME0 (*((volatile unsigned long *) 0xE0024014))
412 #define CTIME1 (*((volatile unsigned long *) 0xE0024018))
413 #define CTIME2 (*((volatile unsigned long *) 0xE002401C))
414 #define SEC (*((volatile unsigned char *) 0xE0024020))
415 #define MIN (*((volatile unsigned char *) 0xE0024024))
416 #define HOUR (*((volatile unsigned char *) 0xE0024028))
417 #define DOM (*((volatile unsigned char *) 0xE002402C))
418 #define DOW (*((volatile unsigned char *) 0xE0024030))
419 #define DOY (*((volatile unsigned short*) 0xE0024034))
420 #define MONTH (*((volatile unsigned char *) 0xE0024038))
421 #define YEAR (*((volatile unsigned short*) 0xE002403C))
422 #define ALSEC (*((volatile unsigned char *) 0xE0024060))
423 #define ALMIN (*((volatile unsigned char *) 0xE0024064))
424 #define ALHOUR (*((volatile unsigned char *) 0xE0024068))
425 #define ALDOM (*((volatile unsigned char *) 0xE002406C))
426 #define ALDOW (*((volatile unsigned char *) 0xE0024070))
427 #define ALDOY (*((volatile unsigned short*) 0xE0024074))
428 #define ALMON (*((volatile unsigned char *) 0xE0024078))
429 #define ALYEAR (*((volatile unsigned short*) 0xE002407C))
430 #define PREINT (*((volatile unsigned short*) 0xE0024080))
431 #define PREFRAC (*((volatile unsigned short*) 0xE0024084))
433 /* Watchdog */
434 #define WDMOD (*((volatile unsigned char *) 0xE0000000))
435 #define WDTC (*((volatile unsigned long *) 0xE0000004))
436 #define WDFEED (*((volatile unsigned char *) 0xE0000008))
437 #define WDTV (*((volatile unsigned long *) 0xE000000C))
440 Register define for constant
442 #define REG_U0RBR 0xE000C000
443 #define REG_U1RBR 0xE0010000
445 /* PLL */
446 #define REG_PLLCON 0xE01FC080
447 #define REG_PLLCFG 0xE01FC084
448 #define REG_PLLSTAT 0xE01FC088
449 #define REG_PLLFEED 0xE01FC08C
451 /* Power Control */
453 #define REG_PCON 0xE01FC0C0
454 #define REG_PCOMP 0xE01FC0C4
455 #define REG_PINSEL0 0xE002C000
456 #define REG_MEMMAP 0xE01FC040
457 #define REG_PLLSTAT 0xE01FC088
458 #define REG_VPBDIV 0xE01FC100
462 #define LPC22xx_Fcclk CONFIG_ARM_CLK /* system clk frequecy,<=60Mhz, defined in system configuration */
463 #define LPC22xx_Fcco LPC22xx_Fcclk * 4
464 #define LPC22xx_Fpclk (LPC22xx_Fcclk /4) *1 /*VPB clk frequency,1,1/2,1/4 times of Fcclk */
466 #endif
467 /*********************************************************************************************************
468 ** End Of File
469 ********************************************************************************************************/