Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:05

0001 /*
0002  * Philips LPC22XX/LPC21xx Register definitions
0003  *
0004  * Copyright (c) 2006 by Ray <rayx.cn@gmail.com>
0005  *
0006  *  The license and distribution terms for this file may be
0007  *  found in the file LICENSE in this distribution or at
0008  *  http://www.rtems.org/license/LICENSE.
0009  */
0010 #ifndef __LPC22XX_H__
0011 #define __LPC22XX_H__
0012 
0013 #include <stdint.h>
0014 
0015 /* EXTERNAL MEMORY CONTROLLER (EMC) */
0016 #define BCFG0           (*((volatile unsigned int *) 0xFFE00000))       /* lpc22xx only */
0017 #define BCFG1           (*((volatile unsigned int *) 0xFFE00004))       /* lpc22xx only */
0018 #define BCFG2           (*((volatile unsigned int *) 0xFFE00008))       /* lpc22xx only */
0019 #define BCFG3           (*((volatile unsigned int *) 0xFFE0000C))       /* lpc22xx only */
0020 
0021 /* External Interrupts */
0022 #define EXTINT          (*((volatile unsigned char *) 0xE01FC140))
0023 #define EXTWAKE         (*((volatile unsigned char *) 0xE01FC144))
0024 #ifdef  CONFIG_ARCH_LPC22xx
0025 #define EXTMODE         (*((volatile unsigned char *) 0xE01FC148))      /* no in lpc210x*/
0026 #define EXTPOLAR        (*((volatile unsigned char *) 0xE01FC14C))      /* no in lpc210x*/
0027 #endif
0028 
0029 /* SMemory mapping control. */
0030 #define MEMMAP          (*((volatile unsigned char *) 0xE01FC040))
0031 
0032 /* Phase Locked Loop (PLL) */
0033 #define PLLCON          (*((volatile unsigned char *) 0xE01FC080))
0034 #define PLLCFG          (*((volatile unsigned char *) 0xE01FC084))
0035 #define PLLSTAT         (*((volatile unsigned short*) 0xE01FC088))
0036 #define PLLFEED         (*((volatile unsigned char *) 0xE01FC08C))
0037 
0038 /* Power Control */
0039 #define PCON            (*((volatile unsigned char *) 0xE01FC0C0))
0040 #define PCONP           (*((volatile unsigned long *) 0xE01FC0C4))
0041 
0042 /* VPB Divider */
0043 #define VPBDIV          (*((volatile unsigned char *) 0xE01FC100))
0044 
0045 /* Memory Accelerator Module (MAM) */
0046 #define MAMCR           (*((volatile unsigned char *) 0xE01FC000))
0047 #define MAMTIM          (*((volatile unsigned char *) 0xE01FC004))
0048 
0049 /* Vectored Interrupt Controller (VIC) */
0050 #define VICIRQStatus    (*((volatile unsigned long *) 0xFFFFF000))
0051 #define VICFIQStatus    (*((volatile unsigned long *) 0xFFFFF004))
0052 #define VICRawIntr      (*((volatile unsigned long *) 0xFFFFF008))
0053 #define VICIntSelect    (*((volatile unsigned long *) 0xFFFFF00C))
0054 #define VICIntEnable    (*((volatile unsigned long *) 0xFFFFF010))
0055 #define VICIntEnClr     (*((volatile unsigned long *) 0xFFFFF014))
0056 #define VICSoftInt      (*((volatile unsigned long *) 0xFFFFF018))
0057 #define VICSoftIntClear (*((volatile unsigned long *) 0xFFFFF01C))
0058 #define VICProtection   (*((volatile unsigned long *) 0xFFFFF020))
0059 #define VICVectAddr     (*((volatile unsigned long *) 0xFFFFF030))
0060 #define VICDefVectAddr  (*((volatile unsigned long *) 0xFFFFF034))
0061 
0062 #define VICVectAddrBase    0xFFFFF100
0063 #define VICVectAddr0    (*((volatile unsigned long *) 0xFFFFF100))
0064 #define VICVectAddr1    (*((volatile unsigned long *) 0xFFFFF104))
0065 #define VICVectAddr2    (*((volatile unsigned long *) 0xFFFFF108))
0066 #define VICVectAddr3    (*((volatile unsigned long *) 0xFFFFF10C))
0067 #define VICVectAddr4    (*((volatile unsigned long *) 0xFFFFF110))
0068 #define VICVectAddr5    (*((volatile unsigned long *) 0xFFFFF114))
0069 #define VICVectAddr6    (*((volatile unsigned long *) 0xFFFFF118))
0070 #define VICVectAddr7    (*((volatile unsigned long *) 0xFFFFF11C))
0071 #define VICVectAddr8    (*((volatile unsigned long *) 0xFFFFF120))
0072 #define VICVectAddr9    (*((volatile unsigned long *) 0xFFFFF124))
0073 #define VICVectAddr10   (*((volatile unsigned long *) 0xFFFFF128))
0074 #define VICVectAddr11   (*((volatile unsigned long *) 0xFFFFF12C))
0075 #define VICVectAddr12   (*((volatile unsigned long *) 0xFFFFF130))
0076 #define VICVectAddr13   (*((volatile unsigned long *) 0xFFFFF134))
0077 #define VICVectAddr14   (*((volatile unsigned long *) 0xFFFFF138))
0078 #define VICVectAddr15   (*((volatile unsigned long *) 0xFFFFF13C))
0079 
0080 #define VICVectCntlBase 0xFFFFF200
0081 #define VICVectCntl0    (*((volatile unsigned long *) 0xFFFFF200))
0082 #define VICVectCntl1    (*((volatile unsigned long *) 0xFFFFF204))
0083 #define VICVectCntl2    (*((volatile unsigned long *) 0xFFFFF208))
0084 #define VICVectCntl3    (*((volatile unsigned long *) 0xFFFFF20C))
0085 #define VICVectCntl4    (*((volatile unsigned long *) 0xFFFFF210))
0086 #define VICVectCntl5    (*((volatile unsigned long *) 0xFFFFF214))
0087 #define VICVectCntl6    (*((volatile unsigned long *) 0xFFFFF218))
0088 #define VICVectCntl7    (*((volatile unsigned long *) 0xFFFFF21C))
0089 #define VICVectCntl8    (*((volatile unsigned long *) 0xFFFFF220))
0090 #define VICVectCntl9    (*((volatile unsigned long *) 0xFFFFF224))
0091 #define VICVectCntl10   (*((volatile unsigned long *) 0xFFFFF228))
0092 #define VICVectCntl11   (*((volatile unsigned long *) 0xFFFFF22C))
0093 #define VICVectCntl12   (*((volatile unsigned long *) 0xFFFFF230))
0094 #define VICVectCntl13   (*((volatile unsigned long *) 0xFFFFF234))
0095 #define VICVectCntl14   (*((volatile unsigned long *) 0xFFFFF238))
0096 #define VICVectCntl15   (*((volatile unsigned long *) 0xFFFFF23C))
0097 
0098 /* Pin Connect Block */
0099 #define PINSEL0         (*((volatile unsigned long *) 0xE002C000))
0100 #define PINSEL1         (*((volatile unsigned long *) 0xE002C004))
0101 
0102 #define PINSEL2         (*((volatile unsigned long *) 0xE002C014))      /* no in lpc210x*/
0103 
0104 
0105 /* General Purpose Input/Output (GPIO) */
0106 #ifndef CONFIG_ARCH_LPC22xx
0107 
0108 #define IOPIN           (*((volatile unsigned long *) 0xE0028000))      /* lpc210x only */
0109 #define IOSET           (*((volatile unsigned long *) 0xE0028004))      /* lpc210x only */
0110 #define IODIR           (*((volatile unsigned long *) 0xE0028008))      /* lpc210x only */
0111 #define IOCLR           (*((volatile unsigned long *) 0xE002800C))      /* lpc210x only */
0112 
0113 #endif
0114 
0115 #ifdef CONFIG_ARCH_LPC22xx
0116 #define IO0PIN          (*((volatile unsigned long *) 0xE0028000))      /* no in lpc210x*/
0117 #define IO0SET          (*((volatile unsigned long *) 0xE0028004))      /* no in lpc210x*/
0118 #define IO0DIR          (*((volatile unsigned long *) 0xE0028008))      /* no in lpc210x*/
0119 #define IO0CLR          (*((volatile unsigned long *) 0xE002800C))      /* no in lpc210x*/
0120 
0121 #define IO1PIN          (*((volatile unsigned long *) 0xE0028010))      /* no in lpc210x*/
0122 #define IO1SET          (*((volatile unsigned long *) 0xE0028014))      /* no in lpc210x*/
0123 #define IO1DIR          (*((volatile unsigned long *) 0xE0028018))      /* no in lpc210x*/
0124 #define IO1CLR          (*((volatile unsigned long *) 0xE002801C))      /* no in lpc210x*/
0125 #endif
0126 
0127 #ifdef CONFIG_ARCH_LPC22xx
0128 
0129 #define IO2PIN          (*((volatile unsigned long *) 0xE0028020))      /* lpc22xx only */
0130 #define IO2SET          (*((volatile unsigned long *) 0xE0028024))      /* lpc22xx only */
0131 #define IO2DIR          (*((volatile unsigned long *) 0xE0028028))      /* lpc22xx only */
0132 #define IO2CLR          (*((volatile unsigned long *) 0xE002802C))      /* lpc22xx only */
0133 
0134 #define IO3PIN          (*((volatile unsigned long *) 0xE0028030))      /* lpc22xx only */
0135 #define IO3SET          (*((volatile unsigned long *) 0xE0028034))      /* lpc22xx only */
0136 #define IO3DIR          (*((volatile unsigned long *) 0xE0028038))      /* lpc22xx only */
0137 #define IO3CLR          (*((volatile unsigned long *) 0xE002803C))      /* lpc22xx only */
0138 
0139 #endif
0140 
0141 /* Universal Asynchronous Receiver Transmitter 0 (UART0) */
0142 #define U0RBR           (*((volatile unsigned char *) 0xE000C000))
0143 #define U0THR           (*((volatile unsigned char *) 0xE000C000))
0144 #define U0IER           (*((volatile unsigned char *) 0xE000C004))
0145 #define U0IIR           (*((volatile unsigned char *) 0xE000C008))
0146 #define U0FCR           (*((volatile unsigned char *) 0xE000C008))
0147 #define U0LCR           (*((volatile unsigned char *) 0xE000C00C))
0148 #define U0LSR           (*((volatile unsigned char *) 0xE000C014))
0149 #define U0SCR           (*((volatile unsigned char *) 0xE000C01C))
0150 #define U0DLL           (*((volatile unsigned char *) 0xE000C000))
0151 #define U0DLM           (*((volatile unsigned char *) 0xE000C004))
0152 
0153 /* Universal Asynchronous Receiver Transmitter 1 (UART1) */
0154 #define U1RBR           (*((volatile unsigned char *) 0xE0010000))
0155 #define U1THR           (*((volatile unsigned char *) 0xE0010000))
0156 #define U1IER           (*((volatile unsigned char *) 0xE0010004))
0157 #define U1IIR           (*((volatile unsigned char *) 0xE0010008))
0158 #define U1FCR           (*((volatile unsigned char *) 0xE0010008))
0159 #define U1LCR           (*((volatile unsigned char *) 0xE001000C))
0160 #define U1MCR           (*((volatile unsigned char *) 0xE0010010))
0161 #define U1LSR           (*((volatile unsigned char *) 0xE0010014))
0162 #define U1MSR           (*((volatile unsigned char *) 0xE0010018))
0163 #define U1SCR           (*((volatile unsigned char *) 0xE001001C))
0164 #define U1DLL           (*((volatile unsigned char *) 0xE0010000))
0165 #define U1DLM           (*((volatile unsigned char *) 0xE0010004))
0166 
0167 /* I2C (8/16 bit data bus) */
0168 #define I2CONSET        (*((volatile unsigned char *) 0xE001C000))
0169 #define I2STAT          (*((volatile unsigned char *) 0xE001C004))
0170 #define I2DAT           (*((volatile unsigned char *) 0xE001C008))
0171 #define I2ADR           (*((volatile unsigned char *) 0xE001C00C))
0172 #define I2SCLH          (*((volatile unsigned short *) 0xE001C010))
0173 #define I2SCLL          (*((volatile unsigned short *) 0xE001C014))
0174 #define I2CONCLR        (*((volatile unsigned char *) 0xE001C018))
0175 
0176 /* SPI (Serial Peripheral Interface) */
0177         /* only for lpc210x*/
0178 #define SPI_SPCR        (*((volatile unsigned char *) 0xE0020000))
0179 #define SPI_SPSR        (*((volatile unsigned char *) 0xE0020004))
0180 #define SPI_SPDR        (*((volatile unsigned char *) 0xE0020008))
0181 #define SPI_SPCCR       (*((volatile unsigned char *) 0xE002000C))
0182 #define SPI_SPINT       (*((volatile unsigned char *) 0xE002001C))
0183 
0184 #ifdef CONFIG_ARCH_LPC22xx
0185 #define S0PCR           (*((volatile unsigned char *) 0xE0020000))      /* no in lpc210x*/
0186 #define S0PSR           (*((volatile unsigned char *) 0xE0020004))      /* no in lpc210x*/
0187 #define S0PDR           (*((volatile unsigned char *) 0xE0020008))      /* no in lpc210x*/
0188 #define S0PCCR          (*((volatile unsigned char *) 0xE002000C))      /* no in lpc210x*/
0189 #define S0PINT          (*((volatile unsigned char *) 0xE002001C))      /* no in lpc210x*/
0190 
0191 #define S1PCR           (*((volatile unsigned char *) 0xE0030000))      /* no in lpc210x*/
0192 #define S1PSR           (*((volatile unsigned char *) 0xE0030004))      /* no in lpc210x*/
0193 #define S1PDR           (*((volatile unsigned char *) 0xE0030008))      /* no in lpc210x*/
0194 #define S1PCCR          (*((volatile unsigned char *) 0xE003000C))      /* no in lpc210x*/
0195 #define S1PINT          (*((volatile unsigned char *) 0xE003001C))      /* no in lpc210x*/
0196 #endif
0197 /* CAN CONTROLLERS AND ACCEPTANCE FILTER */
0198 #define CAN1MOD         (*((volatile unsigned long *) 0xE0044000))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0199 #define CAN1CMR         (*((volatile unsigned long *) 0xE0044004))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0200 #define CAN1GSR         (*((volatile unsigned long *) 0xE0044008))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0201 #define CAN1ICR         (*((volatile unsigned long *) 0xE004400C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0202 #define CAN1IER         (*((volatile unsigned long *) 0xE0044010))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0203 #define CAN1BTR         (*((volatile unsigned long *) 0xE0044014))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0204 #define CAN1EWL         (*((volatile unsigned long *) 0xE004401C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0205 #define CAN1SR          (*((volatile unsigned long *) 0xE0044020))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0206 #define CAN1RFS         (*((volatile unsigned long *) 0xE0044024))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0207 #define CAN1RDA         (*((volatile unsigned long *) 0xE0044028))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0208 #define CAN1RDB         (*((volatile unsigned long *) 0xE004402C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0209 #define CAN1TFI1        (*((volatile unsigned long *) 0xE0044030))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0210 #define CAN1TID1        (*((volatile unsigned long *) 0xE0044034))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0211 #define CAN1TDA1        (*((volatile unsigned long *) 0xE0044038))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0212 #define CAN1TDB1        (*((volatile unsigned long *) 0xE004403C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0213 #define CAN1TFI2        (*((volatile unsigned long *) 0xE0044040))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0214 #define CAN1TID2        (*((volatile unsigned long *) 0xE0044044))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0215 #define CAN1TDA2        (*((volatile unsigned long *) 0xE0044048))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0216 #define CAN1TDB2        (*((volatile unsigned long *) 0xE004404C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0217 #define CAN1TFI3        (*((volatile unsigned long *) 0xE0044050))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0218 #define CAN1TID3        (*((volatile unsigned long *) 0xE0044054))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0219 #define CAN1TDA3        (*((volatile unsigned long *) 0xE0044058))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0220 #define CAN1TDB3        (*((volatile unsigned long *) 0xE004405C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0221 
0222 #define CAN2MOD         (*((volatile unsigned long *) 0xE0048000))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0223 #define CAN2CMR         (*((volatile unsigned long *) 0xE0048004))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0224 #define CAN2GSR         (*((volatile unsigned long *) 0xE0048008))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0225 #define CAN2ICR         (*((volatile unsigned long *) 0xE004800C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0226 #define CAN2IER         (*((volatile unsigned long *) 0xE0048010))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0227 #define CAN2BTR         (*((volatile unsigned long *) 0xE0048014))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0228 #define CAN2EWL         (*((volatile unsigned long *) 0xE004801C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0229 #define CAN2SR          (*((volatile unsigned long *) 0xE0048020))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0230 #define CAN2RFS         (*((volatile unsigned long *) 0xE0048024))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0231 #define CAN2RDA         (*((volatile unsigned long *) 0xE0048028))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0232 #define CAN2RDB         (*((volatile unsigned long *) 0xE004802C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0233 #define CAN2TFI1        (*((volatile unsigned long *) 0xE0048030))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0234 #define CAN2TID1        (*((volatile unsigned long *) 0xE0048034))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0235 #define CAN2TDA1        (*((volatile unsigned long *) 0xE0048038))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0236 #define CAN2TDB1        (*((volatile unsigned long *) 0xE004803C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0237 #define CAN2TFI2        (*((volatile unsigned long *) 0xE0048040))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0238 #define CAN2TID2        (*((volatile unsigned long *) 0xE0048044))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0239 #define CAN2TDA2        (*((volatile unsigned long *) 0xE0048048))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0240 #define CAN2TDB2        (*((volatile unsigned long *) 0xE004804C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0241 #define CAN2TFI3        (*((volatile unsigned long *) 0xE0048050))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0242 #define CAN2TID3        (*((volatile unsigned long *) 0xE0048054))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0243 #define CAN2TDA3        (*((volatile unsigned long *) 0xE0048058))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0244 #define CAN2TDB3        (*((volatile unsigned long *) 0xE004805C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0245 
0246 #define CAN3MOD         (*((volatile unsigned long *) 0xE004C000))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0247 #define CAN3CMR         (*((volatile unsigned long *) 0xE004C004))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0248 #define CAN3GSR         (*((volatile unsigned long *) 0xE004C008))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0249 #define CAN3ICR         (*((volatile unsigned long *) 0xE004C00C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0250 #define CAN3IER         (*((volatile unsigned long *) 0xE004C010))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0251 #define CAN3BTR         (*((volatile unsigned long *) 0xE004C014))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0252 #define CAN3EWL         (*((volatile unsigned long *) 0xE004C01C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0253 #define CAN3SR          (*((volatile unsigned long *) 0xE004C020))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0254 #define CAN3RFS         (*((volatile unsigned long *) 0xE004C024))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0255 #define CAN3RDA         (*((volatile unsigned long *) 0xE004C028))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0256 #define CAN3RDB         (*((volatile unsigned long *) 0xE004C02C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0257 #define CAN3TFI1        (*((volatile unsigned long *) 0xE004C030))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0258 #define CAN3TID1        (*((volatile unsigned long *) 0xE004C034))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0259 #define CAN3TDA1        (*((volatile unsigned long *) 0xE004C038))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0260 #define CAN3TDB1        (*((volatile unsigned long *) 0xE004C03C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0261 #define CAN3TFI2        (*((volatile unsigned long *) 0xE004C040))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0262 #define CAN3TID2        (*((volatile unsigned long *) 0xE004C044))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0263 #define CAN3TDA2        (*((volatile unsigned long *) 0xE004C048))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0264 #define CAN3TDB2        (*((volatile unsigned long *) 0xE004C04C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0265 #define CAN3TFI3        (*((volatile unsigned long *) 0xE004C050))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0266 #define CAN3TID3        (*((volatile unsigned long *) 0xE004C054))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0267 #define CAN3TDA3        (*((volatile unsigned long *) 0xE004C058))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0268 #define CAN3TDB3        (*((volatile unsigned long *) 0xE004C05C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0269 
0270 #define CAN4MOD         (*((volatile unsigned long *) 0xE0050000))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0271 #define CAN4CMR         (*((volatile unsigned long *) 0xE0050004))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0272 #define CAN4GSR         (*((volatile unsigned long *) 0xE0050008))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0273 #define CAN4ICR         (*((volatile unsigned long *) 0xE005000C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0274 #define CAN4IER         (*((volatile unsigned long *) 0xE0050010))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0275 #define CAN4BTR         (*((volatile unsigned long *) 0xE0050014))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0276 #define CAN4EWL         (*((volatile unsigned long *) 0xE005001C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0277 #define CAN4SR          (*((volatile unsigned long *) 0xE0050020))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0278 #define CAN4RFS         (*((volatile unsigned long *) 0xE0050024))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0279 #define CAN4RDA         (*((volatile unsigned long *) 0xE0050028))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0280 #define CAN4RDB         (*((volatile unsigned long *) 0xE005002C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0281 #define CAN4TFI1        (*((volatile unsigned long *) 0xE0050030))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0282 #define CAN4TID1        (*((volatile unsigned long *) 0xE0050034))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0283 #define CAN4TDA1        (*((volatile unsigned long *) 0xE0050038))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0284 #define CAN4TDB1        (*((volatile unsigned long *) 0xE005003C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0285 #define CAN4TFI2        (*((volatile unsigned long *) 0xE0050040))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0286 #define CAN4TID2        (*((volatile unsigned long *) 0xE0050044))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0287 #define CAN4TDA2        (*((volatile unsigned long *) 0xE0050048))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0288 #define CAN4TDB2        (*((volatile unsigned long *) 0xE005004C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0289 #define CAN4TFI3        (*((volatile unsigned long *) 0xE0050050))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0290 #define CAN4TID3        (*((volatile unsigned long *) 0xE0050054))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0291 #define CAN4TDA3        (*((volatile unsigned long *) 0xE0050058))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0292 #define CAN4TDB3        (*((volatile unsigned long *) 0xE005005C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0293 
0294 #define CAN5MOD         (*((volatile unsigned long *) 0xE0054000))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0295 #define CAN5CMR         (*((volatile unsigned long *) 0xE0054004))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0296 #define CAN5GSR         (*((volatile unsigned long *) 0xE0054008))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0297 #define CAN5ICR         (*((volatile unsigned long *) 0xE005400C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0298 #define CAN5IER         (*((volatile unsigned long *) 0xE0054010))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0299 #define CAN5BTR         (*((volatile unsigned long *) 0xE0054014))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0300 #define CAN5EWL         (*((volatile unsigned long *) 0xE005401C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0301 #define CAN5SR          (*((volatile unsigned long *) 0xE0054020))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0302 #define CAN5RFS         (*((volatile unsigned long *) 0xE0054024))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0303 #define CAN5RDA         (*((volatile unsigned long *) 0xE0054028))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0304 #define CAN5RDB         (*((volatile unsigned long *) 0xE005402C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0305 #define CAN5TFI1        (*((volatile unsigned long *) 0xE0054030))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0306 #define CAN5TID1        (*((volatile unsigned long *) 0xE0054034))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0307 #define CAN5TDA1        (*((volatile unsigned long *) 0xE0054038))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0308 #define CAN5TDB1        (*((volatile unsigned long *) 0xE005403C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0309 #define CAN5TFI2        (*((volatile unsigned long *) 0xE0054040))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0310 #define CAN5TID2        (*((volatile unsigned long *) 0xE0054044))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0311 #define CAN5TDA2        (*((volatile unsigned long *) 0xE0054048))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0312 #define CAN5TDB2        (*((volatile unsigned long *) 0xE005404C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0313 #define CAN5TFI3        (*((volatile unsigned long *) 0xE0054050))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0314 #define CAN5TID3        (*((volatile unsigned long *) 0xE0054054))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0315 #define CAN5TDA3        (*((volatile unsigned long *) 0xE0054058))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0316 #define CAN5TDB3        (*((volatile unsigned long *) 0xE005405C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0317 
0318 #ifdef CONFIG_ARCH_LPC22xx
0319 #define CAN6MOD         (*((volatile unsigned long *) 0xE0058000))      /* lpc2292\lpc2294 only */
0320 #define CAN6CMR         (*((volatile unsigned long *) 0xE0058004))      /* lpc2292\lpc2294 only */
0321 #define CAN6GSR         (*((volatile unsigned long *) 0xE0058008))      /* lpc2292\lpc2294 only */
0322 #define CAN6ICR         (*((volatile unsigned long *) 0xE005800C))      /* lpc2292\lpc2294 only */
0323 #define CAN6IER         (*((volatile unsigned long *) 0xE0058010))      /* lpc2292\lpc2294 only */
0324 #define CAN6BTR         (*((volatile unsigned long *) 0xE0058014))      /* lpc2292\lpc2294 only */
0325 #define CAN6EWL         (*((volatile unsigned long *) 0xE005801C))      /* lpc2292\lpc2294 only */
0326 #define CAN6SR          (*((volatile unsigned long *) 0xE0058020))      /* lpc2292\lpc2294 only */
0327 #define CAN6RFS         (*((volatile unsigned long *) 0xE0058024))      /* lpc2292\lpc2294 only */
0328 #define CAN6RDA         (*((volatile unsigned long *) 0xE0058028))      /* lpc2292\lpc2294 only */
0329 #define CAN6RDB         (*((volatile unsigned long *) 0xE005802C))      /* lpc2292\lpc2294 only */
0330 #define CAN6TFI1        (*((volatile unsigned long *) 0xE0058030))      /* lpc2292\lpc2294 only */
0331 #define CAN6TID1        (*((volatile unsigned long *) 0xE0058034))      /* lpc2292\lpc2294 only */
0332 #define CAN6TDA1        (*((volatile unsigned long *) 0xE0058038))      /* lpc2292\lpc2294 only */
0333 #define CAN6TDB1        (*((volatile unsigned long *) 0xE005803C))      /* lpc2292\lpc2294 only */
0334 #define CAN6TFI2        (*((volatile unsigned long *) 0xE0058040))      /* lpc2292\lpc2294 only */
0335 #define CAN6TID2        (*((volatile unsigned long *) 0xE0058044))      /* lpc2292\lpc2294 only */
0336 #define CAN6TDA2        (*((volatile unsigned long *) 0xE0058048))      /* lpc2292\lpc2294 only */
0337 #define CAN6TDB2        (*((volatile unsigned long *) 0xE005804C))      /* lpc2292\lpc2294 only */
0338 #define CAN6TFI3        (*((volatile unsigned long *) 0xE0058050))      /* lpc2292\lpc2294 only */
0339 #define CAN6TID3        (*((volatile unsigned long *) 0xE0058054))      /* lpc2292\lpc2294 only */
0340 #define CAN6TDA3        (*((volatile unsigned long *) 0xE0058058))      /* lpc2292\lpc2294 only */
0341 #define CAN6TDB3        (*((volatile unsigned long *) 0xE005805C))      /* lpc2292\lpc2294 only */
0342 #endif
0343 
0344 #define CANTxSR         (*((volatile unsigned long *) 0xE0040000))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0345 #define CANRxSR         (*((volatile unsigned long *) 0xE0040004))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0346 #define CANMSR          (*((volatile unsigned long *) 0xE0040008))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0347 
0348 #define CANAFMR         (*((volatile unsigned long *) 0xE003C000))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0349 #define CANSFF_sa       (*((volatile unsigned long *) 0xE003C004))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0350 #define CANSFF_GRP_sa   (*((volatile unsigned long *) 0xE003C008))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0351 #define CANEFF_sa       (*((volatile unsigned long *) 0xE003C00C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0352 #define CANEFF_GRP_sa   (*((volatile unsigned long *) 0xE003C010))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0353 #define CANENDofTable   (*((volatile unsigned long *) 0xE003C014))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0354 #define CANLUTerrAd     (*((volatile unsigned long *) 0xE003C018))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0355 #define CANLUTerr       (*((volatile unsigned long *) 0xE003C01C))      /* lpc2119\lpc2129\lpc2292\lpc2294 only */
0356 /* CAN Acceptance Filter RAM */
0357 #define CANAFRAM        (*((volatile unsigned long *) 0xE0038000))
0358 
0359 
0360 /* Timer 0 */
0361 #define T0IR            (*((volatile unsigned long *) 0xE0004000))
0362 #define T0TCR           (*((volatile unsigned long *) 0xE0004004))
0363 #define T0TC            (*((volatile unsigned long *) 0xE0004008))
0364 #define T0PR            (*((volatile unsigned long *) 0xE000400C))
0365 #define T0PC            (*((volatile unsigned long *) 0xE0004010))
0366 #define T0MCR           (*((volatile unsigned long *) 0xE0004014))
0367 #define T0MR0           (*((volatile unsigned long *) 0xE0004018))
0368 #define T0MR1           (*((volatile unsigned long *) 0xE000401C))
0369 #define T0MR2           (*((volatile unsigned long *) 0xE0004020))
0370 #define T0MR3           (*((volatile unsigned long *) 0xE0004024))
0371 #define T0CCR           (*((volatile unsigned long *) 0xE0004028))
0372 #define T0CR0           (*((volatile unsigned long *) 0xE000402C))
0373 #define T0CR1           (*((volatile unsigned long *) 0xE0004030))
0374 #define T0CR2           (*((volatile unsigned long *) 0xE0004034))
0375 #define T0CR3           (*((volatile unsigned long *) 0xE0004038))
0376 #define T0EMR           (*((volatile unsigned long *) 0xE000403C))
0377 
0378 /* Timer 1 */
0379 #define T1IR            (*((volatile unsigned long *) 0xE0008000))
0380 #define T1TCR           (*((volatile unsigned long *) 0xE0008004))
0381 #define T1TC            (*((volatile unsigned long *) 0xE0008008))
0382 #define T1PR            (*((volatile unsigned long *) 0xE000800C))
0383 #define T1PC            (*((volatile unsigned long *) 0xE0008010))
0384 #define T1MCR           (*((volatile unsigned long *) 0xE0008014))
0385 #define T1MR0           (*((volatile unsigned long *) 0xE0008018))
0386 #define T1MR1           (*((volatile unsigned long *) 0xE000801C))
0387 #define T1MR2           (*((volatile unsigned long *) 0xE0008020))
0388 #define T1MR3           (*((volatile unsigned long *) 0xE0008024))
0389 #define T1CCR           (*((volatile unsigned long *) 0xE0008028))
0390 #define T1CR0           (*((volatile unsigned long *) 0xE000802C))
0391 #define T1CR1           (*((volatile unsigned long *) 0xE0008030))
0392 #define T1CR2           (*((volatile unsigned long *) 0xE0008034))
0393 #define T1CR3           (*((volatile unsigned long *) 0xE0008038))
0394 #define T1EMR           (*((volatile unsigned long *) 0xE000803C))
0395 
0396 /* Pulse Width Modulator (PWM) */
0397 #define PWMIR           (*((volatile unsigned long *) 0xE0014000))
0398 #define PWMTCR          (*((volatile unsigned long *) 0xE0014004))
0399 #define PWMTC           (*((volatile unsigned long *) 0xE0014008))
0400 #define PWMPR           (*((volatile unsigned long *) 0xE001400C))
0401 #define PWMPC           (*((volatile unsigned long *) 0xE0014010))
0402 #define PWMMCR          (*((volatile unsigned long *) 0xE0014014))
0403 #define PWMMR0          (*((volatile unsigned long *) 0xE0014018))
0404 #define PWMMR1          (*((volatile unsigned long *) 0xE001401C))
0405 #define PWMMR2          (*((volatile unsigned long *) 0xE0014020))
0406 #define PWMMR3          (*((volatile unsigned long *) 0xE0014024))
0407 #define PWMMR4          (*((volatile unsigned long *) 0xE0014040))
0408 #define PWMMR5          (*((volatile unsigned long *) 0xE0014044))
0409 #define PWMMR6          (*((volatile unsigned long *) 0xE0014048))
0410 #define PWMPCR          (*((volatile unsigned long *) 0xE001404C))
0411 #define PWMLER          (*((volatile unsigned long *) 0xE0014050))
0412 
0413 /* A/D CONVERTER */
0414 #ifndef CONFIG_ARCH_LPC2104
0415 #define ADCR            (*((volatile unsigned long *) 0xE0034000))      /* no in lpc210x*/
0416 #define ADDR            (*((volatile unsigned long *) 0xE0034004))      /* no in lpc210x*/
0417 #endif
0418 
0419 /* Real Time Clock */
0420 #define ILR             (*((volatile unsigned char *) 0xE0024000))
0421 #define CTC             (*((volatile unsigned short*) 0xE0024004))
0422 #define CCR             (*((volatile unsigned char *) 0xE0024008))
0423 #define CIIR            (*((volatile unsigned char *) 0xE002400C))
0424 #define AMR             (*((volatile unsigned char *) 0xE0024010))
0425 #define CTIME0          (*((volatile unsigned long *) 0xE0024014))
0426 #define CTIME1          (*((volatile unsigned long *) 0xE0024018))
0427 #define CTIME2          (*((volatile unsigned long *) 0xE002401C))
0428 #define SEC             (*((volatile unsigned char *) 0xE0024020))
0429 #define MIN             (*((volatile unsigned char *) 0xE0024024))
0430 #define HOUR            (*((volatile unsigned char *) 0xE0024028))
0431 #define DOM             (*((volatile unsigned char *) 0xE002402C))
0432 #define DOW             (*((volatile unsigned char *) 0xE0024030))
0433 #define DOY             (*((volatile unsigned short*) 0xE0024034))
0434 #define MONTH           (*((volatile unsigned char *) 0xE0024038))
0435 #define YEAR            (*((volatile unsigned short*) 0xE002403C))
0436 #define ALSEC           (*((volatile unsigned char *) 0xE0024060))
0437 #define ALMIN           (*((volatile unsigned char *) 0xE0024064))
0438 #define ALHOUR          (*((volatile unsigned char *) 0xE0024068))
0439 #define ALDOM           (*((volatile unsigned char *) 0xE002406C))
0440 #define ALDOW           (*((volatile unsigned char *) 0xE0024070))
0441 #define ALDOY           (*((volatile unsigned short*) 0xE0024074))
0442 #define ALMON           (*((volatile unsigned char *) 0xE0024078))
0443 #define ALYEAR          (*((volatile unsigned short*) 0xE002407C))
0444 #define PREINT          (*((volatile unsigned short*) 0xE0024080))
0445 #define PREFRAC         (*((volatile unsigned short*) 0xE0024084))
0446 
0447 /* Watchdog */
0448 #define WDMOD           (*((volatile unsigned char *) 0xE0000000))
0449 #define WDTC            (*((volatile unsigned long *) 0xE0000004))
0450 #define WDFEED          (*((volatile unsigned char *) 0xE0000008))
0451 #define WDTV            (*((volatile unsigned long *) 0xE000000C))
0452 
0453 /*
0454     Register define for constant
0455 */
0456 #define REG_U0RBR               0xE000C000
0457 #define REG_U1RBR               0xE0010000
0458 
0459 /* PLL */
0460 #define REG_PLLCON              0xE01FC080
0461 #define REG_PLLCFG              0xE01FC084
0462 #define REG_PLLSTAT             0xE01FC088
0463 #define REG_PLLFEED             0xE01FC08C
0464 
0465 /* Power Control */
0466 
0467 #define REG_PCON                0xE01FC0C0
0468 #define REG_PCOMP               0xE01FC0C4
0469 #define REG_PINSEL0             0xE002C000
0470 #define REG_MEMMAP              0xE01FC040
0471 #define REG_PLLSTAT             0xE01FC088
0472 #define REG_VPBDIV              0xE01FC100
0473 
0474 
0475 #endif /* __LPC22XX_H__ */