source: rtems/bsps/arm/rtl22xx/include/lpc22xx.h @ 2afb22b

5
Last change on this file since 2afb22b was 2afb22b, checked in by Chris Johns <chrisj@…>, on 12/23/17 at 07:18:56

Remove make preinstall

A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

  • The make preinstall step itself needs time and disk space.
  • Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error.
  • There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult.
  • The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit.
  • An introduction of a new build system is difficult.
  • Include paths specified by the -B option are system headers. This may suppress warnings.
  • The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

  • cpukit/include
  • cpukit/score/cpu/@RTEMS_CPU@/include
  • cpukit/libnetworking

The new BSP include directories are:

  • bsps/include
  • bsps/@RTEMS_CPU@/include
  • bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.

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