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