LPC23xx_HOST_MODE.h

00001 /******************************************************************************
00002  *   LPC23xx.h:  Header file for NXP LPC23xx/24xx Family Microprocessors
00003  *   The header file is the super set of all hardware definition of the
00004  *   peripherals for the LPC23xx/24xx family microprocessor.
00005  *
00006  *   Copyright(C) 2006, NXP Semiconductor
00007  *   All rights reserved.
00008  *
00009  *   History
00010  *   2005.10.01  ver 1.00    Prelimnary version, first Release
00011  *
00012  ******************************************************************************/
00013 
00014 /* Modified by Martin Thomas */
00015 /* Modified by David Ackley - generic UART offsets */
00016 
00017 #ifdef HOST_MODE
00018 #define LONG_REG(addr)  hostRegisters.registerAt(addr)
00019 #define SHORT_REG(addr) hostRegisters.registerAtU16(addr)
00020 #define BYTE_REG(addr)  hostRegisters.registerAtU8(addr)
00021 #else
00022 #define LONG_REG(addr)  (*(volatile unsigned long *)(addr))
00023 #define SHORT_REG(addr) (*(volatile unsigned short *)(addr))
00024 #define BYTE_REG(addr)  (*(volatile unsigned char *)(addr))
00025 #endif
00026 
00027 
00028 #ifndef __LPC23xx_H
00029 #define __LPC23xx_H
00030 
00031 /* Vectored Interrupt Controller (VIC) */
00032 #define VIC_BASE_ADDR   0xFFFFF000
00033 #define VICIRQStatus   LONG_REG(VIC_BASE_ADDR + 0x000)
00034 #define VICFIQStatus   LONG_REG(VIC_BASE_ADDR + 0x004)
00035 #define VICRawIntr     LONG_REG(VIC_BASE_ADDR + 0x008)
00036 #define VICIntSelect   LONG_REG(VIC_BASE_ADDR + 0x00C)
00037 #define VICIntEnable   LONG_REG(VIC_BASE_ADDR + 0x010)
00038 #define VICIntEnClr    LONG_REG(VIC_BASE_ADDR + 0x014)
00039 #define VICSoftInt     LONG_REG(VIC_BASE_ADDR + 0x018)
00040 #define VICSoftIntClr  LONG_REG(VIC_BASE_ADDR + 0x01C)
00041 #define VICProtection  LONG_REG(VIC_BASE_ADDR + 0x020)
00042 #define VICSWPrioMask  LONG_REG(VIC_BASE_ADDR + 0x024)
00043 
00044 #define VICVectAddr0   LONG_REG(VIC_BASE_ADDR + 0x100)
00045 #define VICVectAddr1   LONG_REG(VIC_BASE_ADDR + 0x104)
00046 #define VICVectAddr2   LONG_REG(VIC_BASE_ADDR + 0x108)
00047 #define VICVectAddr3   LONG_REG(VIC_BASE_ADDR + 0x10C)
00048 #define VICVectAddr4   LONG_REG(VIC_BASE_ADDR + 0x110)
00049 #define VICVectAddr5   LONG_REG(VIC_BASE_ADDR + 0x114)
00050 #define VICVectAddr6   LONG_REG(VIC_BASE_ADDR + 0x118)
00051 #define VICVectAddr7   LONG_REG(VIC_BASE_ADDR + 0x11C)
00052 #define VICVectAddr8   LONG_REG(VIC_BASE_ADDR + 0x120)
00053 #define VICVectAddr9   LONG_REG(VIC_BASE_ADDR + 0x124)
00054 #define VICVectAddr10  LONG_REG(VIC_BASE_ADDR + 0x128)
00055 #define VICVectAddr11  LONG_REG(VIC_BASE_ADDR + 0x12C)
00056 #define VICVectAddr12  LONG_REG(VIC_BASE_ADDR + 0x130)
00057 #define VICVectAddr13  LONG_REG(VIC_BASE_ADDR + 0x134)
00058 #define VICVectAddr14  LONG_REG(VIC_BASE_ADDR + 0x138)
00059 #define VICVectAddr15  LONG_REG(VIC_BASE_ADDR + 0x13C)
00060 #define VICVectAddr16  LONG_REG(VIC_BASE_ADDR + 0x140)
00061 #define VICVectAddr17  LONG_REG(VIC_BASE_ADDR + 0x144)
00062 #define VICVectAddr18  LONG_REG(VIC_BASE_ADDR + 0x148)
00063 #define VICVectAddr19  LONG_REG(VIC_BASE_ADDR + 0x14C)
00064 #define VICVectAddr20  LONG_REG(VIC_BASE_ADDR + 0x150)
00065 #define VICVectAddr21  LONG_REG(VIC_BASE_ADDR + 0x154)
00066 #define VICVectAddr22  LONG_REG(VIC_BASE_ADDR + 0x158)
00067 #define VICVectAddr23  LONG_REG(VIC_BASE_ADDR + 0x15C)
00068 #define VICVectAddr24  LONG_REG(VIC_BASE_ADDR + 0x160)
00069 #define VICVectAddr25  LONG_REG(VIC_BASE_ADDR + 0x164)
00070 #define VICVectAddr26  LONG_REG(VIC_BASE_ADDR + 0x168)
00071 #define VICVectAddr27  LONG_REG(VIC_BASE_ADDR + 0x16C)
00072 #define VICVectAddr28  LONG_REG(VIC_BASE_ADDR + 0x170)
00073 #define VICVectAddr29  LONG_REG(VIC_BASE_ADDR + 0x174)
00074 #define VICVectAddr30  LONG_REG(VIC_BASE_ADDR + 0x178)
00075 #define VICVectAddr31  LONG_REG(VIC_BASE_ADDR + 0x17C)
00076 
00077 /* The name convention below is from previous LPC2000 family MCUs, in LPC23xx/24xx,
00078 these registers are known as "VICVectPriority(x)". */
00079 #define VICVectCntl0   LONG_REG(VIC_BASE_ADDR + 0x200)
00080 #define VICVectCntl1   LONG_REG(VIC_BASE_ADDR + 0x204)
00081 #define VICVectCntl2   LONG_REG(VIC_BASE_ADDR + 0x208)
00082 #define VICVectCntl3   LONG_REG(VIC_BASE_ADDR + 0x20C)
00083 #define VICVectCntl4   LONG_REG(VIC_BASE_ADDR + 0x210)
00084 #define VICVectCntl5   LONG_REG(VIC_BASE_ADDR + 0x214)
00085 #define VICVectCntl6   LONG_REG(VIC_BASE_ADDR + 0x218)
00086 #define VICVectCntl7   LONG_REG(VIC_BASE_ADDR + 0x21C)
00087 #define VICVectCntl8   LONG_REG(VIC_BASE_ADDR + 0x220)
00088 #define VICVectCntl9   LONG_REG(VIC_BASE_ADDR + 0x224)
00089 #define VICVectCntl10  LONG_REG(VIC_BASE_ADDR + 0x228)
00090 #define VICVectCntl11  LONG_REG(VIC_BASE_ADDR + 0x22C)
00091 #define VICVectCntl12  LONG_REG(VIC_BASE_ADDR + 0x230)
00092 #define VICVectCntl13  LONG_REG(VIC_BASE_ADDR + 0x234)
00093 #define VICVectCntl14  LONG_REG(VIC_BASE_ADDR + 0x238)
00094 #define VICVectCntl15  LONG_REG(VIC_BASE_ADDR + 0x23C)
00095 #define VICVectCntl16  LONG_REG(VIC_BASE_ADDR + 0x240)
00096 #define VICVectCntl17  LONG_REG(VIC_BASE_ADDR + 0x244)
00097 #define VICVectCntl18  LONG_REG(VIC_BASE_ADDR + 0x248)
00098 #define VICVectCntl19  LONG_REG(VIC_BASE_ADDR + 0x24C)
00099 #define VICVectCntl20  LONG_REG(VIC_BASE_ADDR + 0x250)
00100 #define VICVectCntl21  LONG_REG(VIC_BASE_ADDR + 0x254)
00101 #define VICVectCntl22  LONG_REG(VIC_BASE_ADDR + 0x258)
00102 #define VICVectCntl23  LONG_REG(VIC_BASE_ADDR + 0x25C)
00103 #define VICVectCntl24  LONG_REG(VIC_BASE_ADDR + 0x260)
00104 #define VICVectCntl25  LONG_REG(VIC_BASE_ADDR + 0x264)
00105 #define VICVectCntl26  LONG_REG(VIC_BASE_ADDR + 0x268)
00106 #define VICVectCntl27  LONG_REG(VIC_BASE_ADDR + 0x26C)
00107 #define VICVectCntl28  LONG_REG(VIC_BASE_ADDR + 0x270)
00108 #define VICVectCntl29  LONG_REG(VIC_BASE_ADDR + 0x274)
00109 #define VICVectCntl30  LONG_REG(VIC_BASE_ADDR + 0x278)
00110 #define VICVectCntl31  LONG_REG(VIC_BASE_ADDR + 0x27C)
00111 
00112 /* mthomas - added "real" names */
00113 #define VICVectPriority0   LONG_REG(VIC_BASE_ADDR + 0x200)
00114 #define VICVectPriority1   LONG_REG(VIC_BASE_ADDR + 0x204)
00115 #define VICVectPriority2   LONG_REG(VIC_BASE_ADDR + 0x208)
00116 #define VICVectPriority3   LONG_REG(VIC_BASE_ADDR + 0x20C)
00117 #define VICVectPriority4   LONG_REG(VIC_BASE_ADDR + 0x210)
00118 #define VICVectPriority5   LONG_REG(VIC_BASE_ADDR + 0x214)
00119 #define VICVectPriority6   LONG_REG(VIC_BASE_ADDR + 0x218)
00120 #define VICVectPriority7   LONG_REG(VIC_BASE_ADDR + 0x21C)
00121 #define VICVectPriority8   LONG_REG(VIC_BASE_ADDR + 0x220)
00122 #define VICVectPriority9   LONG_REG(VIC_BASE_ADDR + 0x224)
00123 #define VICVectPriority10  LONG_REG(VIC_BASE_ADDR + 0x228)
00124 #define VICVectPriority11  LONG_REG(VIC_BASE_ADDR + 0x22C)
00125 #define VICVectPriority12  LONG_REG(VIC_BASE_ADDR + 0x230)
00126 #define VICVectPriority13  LONG_REG(VIC_BASE_ADDR + 0x234)
00127 #define VICVectPriority14  LONG_REG(VIC_BASE_ADDR + 0x238)
00128 #define VICVectPriority15  LONG_REG(VIC_BASE_ADDR + 0x23C)
00129 #define VICVectPriority16  LONG_REG(VIC_BASE_ADDR + 0x240)
00130 #define VICVectPriority17  LONG_REG(VIC_BASE_ADDR + 0x244)
00131 #define VICVectPriority18  LONG_REG(VIC_BASE_ADDR + 0x248)
00132 #define VICVectPriority19  LONG_REG(VIC_BASE_ADDR + 0x24C)
00133 #define VICVectPriority20  LONG_REG(VIC_BASE_ADDR + 0x250)
00134 #define VICVectPriority21  LONG_REG(VIC_BASE_ADDR + 0x254)
00135 #define VICVectPriority22  LONG_REG(VIC_BASE_ADDR + 0x258)
00136 #define VICVectPriority23  LONG_REG(VIC_BASE_ADDR + 0x25C)
00137 #define VICVectPriority24  LONG_REG(VIC_BASE_ADDR + 0x260)
00138 #define VICVectPriority25  LONG_REG(VIC_BASE_ADDR + 0x264)
00139 #define VICVectPriority26  LONG_REG(VIC_BASE_ADDR + 0x268)
00140 #define VICVectPriority27  LONG_REG(VIC_BASE_ADDR + 0x26C)
00141 #define VICVectPriority28  LONG_REG(VIC_BASE_ADDR + 0x270)
00142 #define VICVectPriority29  LONG_REG(VIC_BASE_ADDR + 0x274)
00143 #define VICVectPriority30  LONG_REG(VIC_BASE_ADDR + 0x278)
00144 #define VICVectPriority31  LONG_REG(VIC_BASE_ADDR + 0x27C)
00145 
00146 
00147 #define VICVectAddr    LONG_REG(VIC_BASE_ADDR + 0xF00)
00148 
00149 
00150 /* Pin Connect Block */
00151 #define PINSEL_BASE_ADDR        0xE002C000
00152 #define PINSEL0        LONG_REG(PINSEL_BASE_ADDR + 0x00)
00153 #define PINSEL1        LONG_REG(PINSEL_BASE_ADDR + 0x04)
00154 #define PINSEL2        LONG_REG(PINSEL_BASE_ADDR + 0x08)
00155 #define PINSEL3        LONG_REG(PINSEL_BASE_ADDR + 0x0C)
00156 #define PINSEL4        LONG_REG(PINSEL_BASE_ADDR + 0x10)
00157 #define PINSEL5        LONG_REG(PINSEL_BASE_ADDR + 0x14)
00158 #define PINSEL6        LONG_REG(PINSEL_BASE_ADDR + 0x18)
00159 #define PINSEL7        LONG_REG(PINSEL_BASE_ADDR + 0x1C)
00160 #define PINSEL8        LONG_REG(PINSEL_BASE_ADDR + 0x20)
00161 #define PINSEL9        LONG_REG(PINSEL_BASE_ADDR + 0x24)
00162 #define PINSEL10       LONG_REG(PINSEL_BASE_ADDR + 0x28)
00163 
00164 #define PINMODE_BASE_ADDR       (PINSEL_BASE_ADDR+0x40)
00165 #define PINMODE0        LONG_REG(PINSEL_BASE_ADDR + 0x40)
00166 #define PINMODE1        LONG_REG(PINSEL_BASE_ADDR + 0x44)
00167 #define PINMODE2        LONG_REG(PINSEL_BASE_ADDR + 0x48)
00168 #define PINMODE3        LONG_REG(PINSEL_BASE_ADDR + 0x4C)
00169 #define PINMODE4        LONG_REG(PINSEL_BASE_ADDR + 0x50)
00170 #define PINMODE5        LONG_REG(PINSEL_BASE_ADDR + 0x54)
00171 #define PINMODE6        LONG_REG(PINSEL_BASE_ADDR + 0x58)
00172 #define PINMODE7        LONG_REG(PINSEL_BASE_ADDR + 0x5C)
00173 #define PINMODE8        LONG_REG(PINSEL_BASE_ADDR + 0x60)
00174 #define PINMODE9        LONG_REG(PINSEL_BASE_ADDR + 0x64)
00175 
00176 /* General Purpose Input/Output (GPIO) */
00177 #define GPIO_BASE_ADDR          0xE0028000
00178 #define IOPIN0         LONG_REG(GPIO_BASE_ADDR + 0x00)
00179 #define IOSET0         LONG_REG(GPIO_BASE_ADDR + 0x04)
00180 #define IODIR0         LONG_REG(GPIO_BASE_ADDR + 0x08)
00181 #define IOCLR0         LONG_REG(GPIO_BASE_ADDR + 0x0C)
00182 #define IOPIN1         LONG_REG(GPIO_BASE_ADDR + 0x10)
00183 #define IOSET1         LONG_REG(GPIO_BASE_ADDR + 0x14)
00184 #define IODIR1         LONG_REG(GPIO_BASE_ADDR + 0x18)
00185 #define IOCLR1         LONG_REG(GPIO_BASE_ADDR + 0x1C)
00186 
00187 /* mthomas - alias */
00188 #define IO0PIN         LONG_REG(GPIO_BASE_ADDR + 0x00)
00189 #define IO0SET         LONG_REG(GPIO_BASE_ADDR + 0x04)
00190 #define IO0DIR         LONG_REG(GPIO_BASE_ADDR + 0x08)
00191 #define IO0CLR         LONG_REG(GPIO_BASE_ADDR + 0x0C)
00192 #define IO1PIN         LONG_REG(GPIO_BASE_ADDR + 0x10)
00193 #define IO1SET         LONG_REG(GPIO_BASE_ADDR + 0x14)
00194 #define IO1DIR         LONG_REG(GPIO_BASE_ADDR + 0x18)
00195 #define IO1CLR         LONG_REG(GPIO_BASE_ADDR + 0x1C)
00196 
00197 
00198 /* GPIO Interrupt Registers */
00199 #define IO0_INT_EN_R    LONG_REG(GPIO_BASE_ADDR + 0x90)
00200 #define IO0_INT_EN_F    LONG_REG(GPIO_BASE_ADDR + 0x94)
00201 #define IO0_INT_STAT_R  LONG_REG(GPIO_BASE_ADDR + 0x84)
00202 #define IO0_INT_STAT_F  LONG_REG(GPIO_BASE_ADDR + 0x88)
00203 #define IO0_INT_CLR     LONG_REG(GPIO_BASE_ADDR + 0x8C)
00204 
00205 #define IO2_INT_EN_R    LONG_REG(GPIO_BASE_ADDR + 0xB0)
00206 #define IO2_INT_EN_F    LONG_REG(GPIO_BASE_ADDR + 0xB4)
00207 #define IO2_INT_STAT_R  LONG_REG(GPIO_BASE_ADDR + 0xA4)
00208 #define IO2_INT_STAT_F  LONG_REG(GPIO_BASE_ADDR + 0xA8)
00209 #define IO2_INT_CLR     LONG_REG(GPIO_BASE_ADDR + 0xAC)
00210 
00211 #define IO_INT_STAT     LONG_REG(GPIO_BASE_ADDR + 0x80)
00212 
00213 #define PARTCFG_BASE_ADDR               0x3FFF8000
00214 #define PARTCFG        LONG_REG(PARTCFG_BASE_ADDR + 0x00)
00215 
00216 /* Fast I/O setup */
00217 #define FIO_BASE_ADDR           0x3FFFC000
00218 #define FIO0DIR        LONG_REG(FIO_BASE_ADDR + 0x00)
00219 #define FIO0MASK       LONG_REG(FIO_BASE_ADDR + 0x10)
00220 #define FIO0PIN        LONG_REG(FIO_BASE_ADDR + 0x14)
00221 #define FIO0SET        LONG_REG(FIO_BASE_ADDR + 0x18)
00222 #define FIO0CLR        LONG_REG(FIO_BASE_ADDR + 0x1C)
00223 
00224 #define FIO1DIR        LONG_REG(FIO_BASE_ADDR + 0x20)
00225 #define FIO1MASK       LONG_REG(FIO_BASE_ADDR + 0x30)
00226 #define FIO1PIN        LONG_REG(FIO_BASE_ADDR + 0x34)
00227 #define FIO1SET        LONG_REG(FIO_BASE_ADDR + 0x38)
00228 #define FIO1CLR        LONG_REG(FIO_BASE_ADDR + 0x3C)
00229 
00230 #define FIO2DIR        LONG_REG(FIO_BASE_ADDR + 0x40)
00231 #define FIO2MASK       LONG_REG(FIO_BASE_ADDR + 0x50)
00232 #define FIO2PIN        LONG_REG(FIO_BASE_ADDR + 0x54)
00233 #define FIO2SET        LONG_REG(FIO_BASE_ADDR + 0x58)
00234 #define FIO2CLR        LONG_REG(FIO_BASE_ADDR + 0x5C)
00235 
00236 #define FIO3DIR        LONG_REG(FIO_BASE_ADDR + 0x60)
00237 #define FIO3MASK       LONG_REG(FIO_BASE_ADDR + 0x70)
00238 #define FIO3PIN        LONG_REG(FIO_BASE_ADDR + 0x74)
00239 #define FIO3SET        LONG_REG(FIO_BASE_ADDR + 0x78)
00240 #define FIO3CLR        LONG_REG(FIO_BASE_ADDR + 0x7C)
00241 
00242 #define FIO4DIR        LONG_REG(FIO_BASE_ADDR + 0x80)
00243 #define FIO4MASK       LONG_REG(FIO_BASE_ADDR + 0x90)
00244 #define FIO4PIN        LONG_REG(FIO_BASE_ADDR + 0x94)
00245 #define FIO4SET        LONG_REG(FIO_BASE_ADDR + 0x98)
00246 #define FIO4CLR        LONG_REG(FIO_BASE_ADDR + 0x9C)
00247 
00248 /* FIOs can be accessed through WORD, HALF-WORD or BYTE. */
00249 #define FIO0DIR0       BYTE_REG(FIO_BASE_ADDR + 0x00)
00250 #define FIO1DIR0       BYTE_REG(FIO_BASE_ADDR + 0x20)
00251 #define FIO2DIR0       BYTE_REG(FIO_BASE_ADDR + 0x40)
00252 #define FIO3DIR0       BYTE_REG(FIO_BASE_ADDR + 0x60)
00253 #define FIO4DIR0       BYTE_REG(FIO_BASE_ADDR + 0x80)
00254 
00255 #define FIO0DIR1       BYTE_REG(FIO_BASE_ADDR + 0x01)
00256 #define FIO1DIR1       BYTE_REG(FIO_BASE_ADDR + 0x21)
00257 #define FIO2DIR1       BYTE_REG(FIO_BASE_ADDR + 0x41)
00258 #define FIO3DIR1       BYTE_REG(FIO_BASE_ADDR + 0x61)
00259 #define FIO4DIR1       BYTE_REG(FIO_BASE_ADDR + 0x81)
00260 
00261 #define FIO0DIR2       BYTE_REG(FIO_BASE_ADDR + 0x02)
00262 #define FIO1DIR2       BYTE_REG(FIO_BASE_ADDR + 0x22)
00263 #define FIO2DIR2       BYTE_REG(FIO_BASE_ADDR + 0x42)
00264 #define FIO3DIR2       BYTE_REG(FIO_BASE_ADDR + 0x62)
00265 #define FIO4DIR2       BYTE_REG(FIO_BASE_ADDR + 0x82)
00266 
00267 #define FIO0DIR3       BYTE_REG(FIO_BASE_ADDR + 0x03)
00268 #define FIO1DIR3       BYTE_REG(FIO_BASE_ADDR + 0x23)
00269 #define FIO2DIR3       BYTE_REG(FIO_BASE_ADDR + 0x43)
00270 #define FIO3DIR3       BYTE_REG(FIO_BASE_ADDR + 0x63)
00271 #define FIO4DIR3       BYTE_REG(FIO_BASE_ADDR + 0x83)
00272 
00273 #define FIO0DIRL       SHORT_REG(FIO_BASE_ADDR + 0x00)
00274 #define FIO1DIRL       SHORT_REG(FIO_BASE_ADDR + 0x20)
00275 #define FIO2DIRL       SHORT_REG(FIO_BASE_ADDR + 0x40)
00276 #define FIO3DIRL       SHORT_REG(FIO_BASE_ADDR + 0x60)
00277 #define FIO4DIRL       SHORT_REG(FIO_BASE_ADDR + 0x80)
00278 
00279 #define FIO0DIRU       SHORT_REG(FIO_BASE_ADDR + 0x02)
00280 #define FIO1DIRU       SHORT_REG(FIO_BASE_ADDR + 0x22)
00281 #define FIO2DIRU       SHORT_REG(FIO_BASE_ADDR + 0x42)
00282 #define FIO3DIRU       SHORT_REG(FIO_BASE_ADDR + 0x62)
00283 #define FIO4DIRU       SHORT_REG(FIO_BASE_ADDR + 0x82)
00284 
00285 #define FIO0MASK0      BYTE_REG(FIO_BASE_ADDR + 0x10)
00286 #define FIO1MASK0      BYTE_REG(FIO_BASE_ADDR + 0x30)
00287 #define FIO2MASK0      BYTE_REG(FIO_BASE_ADDR + 0x50)
00288 #define FIO3MASK0      BYTE_REG(FIO_BASE_ADDR + 0x70)
00289 #define FIO4MASK0      BYTE_REG(FIO_BASE_ADDR + 0x90)
00290 
00291 #define FIO0MASK1      BYTE_REG(FIO_BASE_ADDR + 0x11)
00292 #define FIO1MASK1      BYTE_REG(FIO_BASE_ADDR + 0x21)
00293 #define FIO2MASK1      BYTE_REG(FIO_BASE_ADDR + 0x51)
00294 #define FIO3MASK1      BYTE_REG(FIO_BASE_ADDR + 0x71)
00295 #define FIO4MASK1      BYTE_REG(FIO_BASE_ADDR + 0x91)
00296 
00297 #define FIO0MASK2      BYTE_REG(FIO_BASE_ADDR + 0x12)
00298 #define FIO1MASK2      BYTE_REG(FIO_BASE_ADDR + 0x32)
00299 #define FIO2MASK2      BYTE_REG(FIO_BASE_ADDR + 0x52)
00300 #define FIO3MASK2      BYTE_REG(FIO_BASE_ADDR + 0x72)
00301 #define FIO4MASK2      BYTE_REG(FIO_BASE_ADDR + 0x92)
00302 
00303 #define FIO0MASK3      BYTE_REG(FIO_BASE_ADDR + 0x13)
00304 #define FIO1MASK3      BYTE_REG(FIO_BASE_ADDR + 0x33)
00305 #define FIO2MASK3      BYTE_REG(FIO_BASE_ADDR + 0x53)
00306 #define FIO3MASK3      BYTE_REG(FIO_BASE_ADDR + 0x73)
00307 #define FIO4MASK3      BYTE_REG(FIO_BASE_ADDR + 0x93)
00308 
00309 #define FIO0MASKL      SHORT_REG(FIO_BASE_ADDR + 0x10)
00310 #define FIO1MASKL      SHORT_REG(FIO_BASE_ADDR + 0x30)
00311 #define FIO2MASKL      SHORT_REG(FIO_BASE_ADDR + 0x50)
00312 #define FIO3MASKL      SHORT_REG(FIO_BASE_ADDR + 0x70)
00313 #define FIO4MASKL      SHORT_REG(FIO_BASE_ADDR + 0x90)
00314 
00315 #define FIO0MASKU      SHORT_REG(FIO_BASE_ADDR + 0x12)
00316 #define FIO1MASKU      SHORT_REG(FIO_BASE_ADDR + 0x32)
00317 #define FIO2MASKU      SHORT_REG(FIO_BASE_ADDR + 0x52)
00318 #define FIO3MASKU      SHORT_REG(FIO_BASE_ADDR + 0x72)
00319 #define FIO4MASKU      SHORT_REG(FIO_BASE_ADDR + 0x92)
00320 
00321 #define FIO0PIN0       BYTE_REG(FIO_BASE_ADDR + 0x14)
00322 #define FIO1PIN0       BYTE_REG(FIO_BASE_ADDR + 0x34)
00323 #define FIO2PIN0       BYTE_REG(FIO_BASE_ADDR + 0x54)
00324 #define FIO3PIN0       BYTE_REG(FIO_BASE_ADDR + 0x74)
00325 #define FIO4PIN0       BYTE_REG(FIO_BASE_ADDR + 0x94)
00326 
00327 #define FIO0PIN1       BYTE_REG(FIO_BASE_ADDR + 0x15)
00328 #define FIO1PIN1       BYTE_REG(FIO_BASE_ADDR + 0x25)
00329 #define FIO2PIN1       BYTE_REG(FIO_BASE_ADDR + 0x55)
00330 #define FIO3PIN1       BYTE_REG(FIO_BASE_ADDR + 0x75)
00331 #define FIO4PIN1       BYTE_REG(FIO_BASE_ADDR + 0x95)
00332 
00333 #define FIO0PIN2       BYTE_REG(FIO_BASE_ADDR + 0x16)
00334 #define FIO1PIN2       BYTE_REG(FIO_BASE_ADDR + 0x36)
00335 #define FIO2PIN2       BYTE_REG(FIO_BASE_ADDR + 0x56)
00336 #define FIO3PIN2       BYTE_REG(FIO_BASE_ADDR + 0x76)
00337 #define FIO4PIN2       BYTE_REG(FIO_BASE_ADDR + 0x96)
00338 
00339 #define FIO0PIN3       BYTE_REG(FIO_BASE_ADDR + 0x17)
00340 #define FIO1PIN3       BYTE_REG(FIO_BASE_ADDR + 0x37)
00341 #define FIO2PIN3       BYTE_REG(FIO_BASE_ADDR + 0x57)
00342 #define FIO3PIN3       BYTE_REG(FIO_BASE_ADDR + 0x77)
00343 #define FIO4PIN3       BYTE_REG(FIO_BASE_ADDR + 0x97)
00344 
00345 #define FIO0PINL       SHORT_REG(FIO_BASE_ADDR + 0x14)
00346 #define FIO1PINL       SHORT_REG(FIO_BASE_ADDR + 0x34)
00347 #define FIO2PINL       SHORT_REG(FIO_BASE_ADDR + 0x54)
00348 #define FIO3PINL       SHORT_REG(FIO_BASE_ADDR + 0x74)
00349 #define FIO4PINL       SHORT_REG(FIO_BASE_ADDR + 0x94)
00350 
00351 #define FIO0PINU       SHORT_REG(FIO_BASE_ADDR + 0x16)
00352 #define FIO1PINU       SHORT_REG(FIO_BASE_ADDR + 0x36)
00353 #define FIO2PINU       SHORT_REG(FIO_BASE_ADDR + 0x56)
00354 #define FIO3PINU       SHORT_REG(FIO_BASE_ADDR + 0x76)
00355 #define FIO4PINU       SHORT_REG(FIO_BASE_ADDR + 0x96)
00356 
00357 #define FIO0SET0       BYTE_REG(FIO_BASE_ADDR + 0x18)
00358 #define FIO1SET0       BYTE_REG(FIO_BASE_ADDR + 0x38)
00359 #define FIO2SET0       BYTE_REG(FIO_BASE_ADDR + 0x58)
00360 #define FIO3SET0       BYTE_REG(FIO_BASE_ADDR + 0x78)
00361 #define FIO4SET0       BYTE_REG(FIO_BASE_ADDR + 0x98)
00362 
00363 #define FIO0SET1       BYTE_REG(FIO_BASE_ADDR + 0x19)
00364 #define FIO1SET1       BYTE_REG(FIO_BASE_ADDR + 0x29)
00365 #define FIO2SET1       BYTE_REG(FIO_BASE_ADDR + 0x59)
00366 #define FIO3SET1       BYTE_REG(FIO_BASE_ADDR + 0x79)
00367 #define FIO4SET1       BYTE_REG(FIO_BASE_ADDR + 0x99)
00368 
00369 #define FIO0SET2       BYTE_REG(FIO_BASE_ADDR + 0x1A)
00370 #define FIO1SET2       BYTE_REG(FIO_BASE_ADDR + 0x3A)
00371 #define FIO2SET2       BYTE_REG(FIO_BASE_ADDR + 0x5A)
00372 #define FIO3SET2       BYTE_REG(FIO_BASE_ADDR + 0x7A)
00373 #define FIO4SET2       BYTE_REG(FIO_BASE_ADDR + 0x9A)
00374 
00375 #define FIO0SET3       BYTE_REG(FIO_BASE_ADDR + 0x1B)
00376 #define FIO1SET3       BYTE_REG(FIO_BASE_ADDR + 0x3B)
00377 #define FIO2SET3       BYTE_REG(FIO_BASE_ADDR + 0x5B)
00378 #define FIO3SET3       BYTE_REG(FIO_BASE_ADDR + 0x7B)
00379 #define FIO4SET3       BYTE_REG(FIO_BASE_ADDR + 0x9B)
00380 
00381 #define FIO0SETL       SHORT_REG(FIO_BASE_ADDR + 0x18)
00382 #define FIO1SETL       SHORT_REG(FIO_BASE_ADDR + 0x38)
00383 #define FIO2SETL       SHORT_REG(FIO_BASE_ADDR + 0x58)
00384 #define FIO3SETL       SHORT_REG(FIO_BASE_ADDR + 0x78)
00385 #define FIO4SETL       SHORT_REG(FIO_BASE_ADDR + 0x98)
00386 
00387 #define FIO0SETU       SHORT_REG(FIO_BASE_ADDR + 0x1A)
00388 #define FIO1SETU       SHORT_REG(FIO_BASE_ADDR + 0x3A)
00389 #define FIO2SETU       SHORT_REG(FIO_BASE_ADDR + 0x5A)
00390 #define FIO3SETU       SHORT_REG(FIO_BASE_ADDR + 0x7A)
00391 #define FIO4SETU       SHORT_REG(FIO_BASE_ADDR + 0x9A)
00392 
00393 #define FIO0CLR0       BYTE_REG(FIO_BASE_ADDR + 0x1C)
00394 #define FIO1CLR0       BYTE_REG(FIO_BASE_ADDR + 0x3C)
00395 #define FIO2CLR0       BYTE_REG(FIO_BASE_ADDR + 0x5C)
00396 #define FIO3CLR0       BYTE_REG(FIO_BASE_ADDR + 0x7C)
00397 #define FIO4CLR0       BYTE_REG(FIO_BASE_ADDR + 0x9C)
00398 
00399 #define FIO0CLR1       BYTE_REG(FIO_BASE_ADDR + 0x1D)
00400 #define FIO1CLR1       BYTE_REG(FIO_BASE_ADDR + 0x2D)
00401 #define FIO2CLR1       BYTE_REG(FIO_BASE_ADDR + 0x5D)
00402 #define FIO3CLR1       BYTE_REG(FIO_BASE_ADDR + 0x7D)
00403 #define FIO4CLR1       BYTE_REG(FIO_BASE_ADDR + 0x9D)
00404 
00405 #define FIO0CLR2       BYTE_REG(FIO_BASE_ADDR + 0x1E)
00406 #define FIO1CLR2       BYTE_REG(FIO_BASE_ADDR + 0x3E)
00407 #define FIO2CLR2       BYTE_REG(FIO_BASE_ADDR + 0x5E)
00408 #define FIO3CLR2       BYTE_REG(FIO_BASE_ADDR + 0x7E)
00409 #define FIO4CLR2       BYTE_REG(FIO_BASE_ADDR + 0x9E)
00410 
00411 #define FIO0CLR3       BYTE_REG(FIO_BASE_ADDR + 0x1F)
00412 #define FIO1CLR3       BYTE_REG(FIO_BASE_ADDR + 0x3F)
00413 #define FIO2CLR3       BYTE_REG(FIO_BASE_ADDR + 0x5F)
00414 #define FIO3CLR3       BYTE_REG(FIO_BASE_ADDR + 0x7F)
00415 #define FIO4CLR3       BYTE_REG(FIO_BASE_ADDR + 0x9F)
00416 
00417 #define FIO0CLRL       SHORT_REG(FIO_BASE_ADDR + 0x1C)
00418 #define FIO1CLRL       SHORT_REG(FIO_BASE_ADDR + 0x3C)
00419 #define FIO2CLRL       SHORT_REG(FIO_BASE_ADDR + 0x5C)
00420 #define FIO3CLRL       SHORT_REG(FIO_BASE_ADDR + 0x7C)
00421 #define FIO4CLRL       SHORT_REG(FIO_BASE_ADDR + 0x9C)
00422 
00423 #define FIO0CLRU       SHORT_REG(FIO_BASE_ADDR + 0x1E)
00424 #define FIO1CLRU       SHORT_REG(FIO_BASE_ADDR + 0x3E)
00425 #define FIO2CLRU       SHORT_REG(FIO_BASE_ADDR + 0x5E)
00426 #define FIO3CLRU       SHORT_REG(FIO_BASE_ADDR + 0x7E)
00427 #define FIO4CLRU       SHORT_REG(FIO_BASE_ADDR + 0x9E)
00428 
00429 /* bit 0 in SCS register, port 0/1 are regular ports when bit 0 
00430 is 0,  fast ports when bit 0 is 1. */
00431 #define GPIOM         0x00000001
00432 
00433 /* System Control Block(SCB) modules include Memory Accelerator Module,
00434 Phase Locked Loop, VPB divider, Power Control, External Interrupt,
00435 Reset, and Code Security/Debugging */
00436 #define SCB_BASE_ADDR   0xE01FC000
00437 
00438 /* Memory Accelerator Module (MAM) */
00439 #define MAMCR          LONG_REG(SCB_BASE_ADDR + 0x000)
00440 #define MAMTIM         LONG_REG(SCB_BASE_ADDR + 0x004)
00441 #define MEMMAP         LONG_REG(SCB_BASE_ADDR + 0x040)
00442 
00443 /* MEMMAP defines */
00444 #define MEMMAP_BBLK   0  /* Interrupt Vectors in Boot Block */
00445 #define MEMMAP_FLASH  1  /* Interrupt Vectors in Flash */
00446 #define MEMMAP_SRAM   2  /* Interrupt Vectors in SRAM */
00447 
00448 /* Phase Locked Loop (PLL) */
00449 #define PLLCON         LONG_REG(SCB_BASE_ADDR + 0x080)
00450 #define PLLCFG         LONG_REG(SCB_BASE_ADDR + 0x084)
00451 #define PLLSTAT        LONG_REG(SCB_BASE_ADDR + 0x088)
00452 #define PLLFEED        LONG_REG(SCB_BASE_ADDR + 0x08C)
00453 
00454 /* Power Control */
00455 #define PCON           LONG_REG(SCB_BASE_ADDR + 0x0C0)
00456 #define PCONP          LONG_REG(SCB_BASE_ADDR + 0x0C4)
00457 
00458 /* Ackley: Added PCONP bit definitions */
00459                        /* bit 0 unused */
00460 #define PCTIM0         (1UL<<1)  /* Timer/counter 0 power/clock control bit */
00461 #define PCTIM1         (1UL<<2)  /* Timer/counter 1 power/clock control bit */
00462 #define PCUART0        (1UL<<3)  /* UART0 power/clock control bit */
00463 #define PCUART1        (1UL<<4)  /* UART1 power/clock control bit */
00464                        /* bit 5 unused */
00465 #define PCPWM1         (1UL<<6)  /* PWM1 power/clock control bit */
00466 #define PCI2C0         (1UL<<7)  /* I2C0 power/clock control bit */
00467 #define PCSPI          (1UL<<8)  /* SPI power/clock control bit */
00468 #define PCRTC          (1UL<<9)  /* RTC power/clock control bit */
00469 #define PCSSP1         (1UL<<10) /* SSP1 power/clock control bit */
00470 #define PCEMC          (1UL<<11) /* External Memory controller */
00471 #define PCAD           (1UL<<12) /* A/D converter power/clock control bit (needs special handling) */
00472 #define PCAN1          (1UL<<13) /* CAN Controller 1 power/clock control bit */
00473 #define PCAN2          (1UL<<14) /* CAN Controller 2 power/clock control bit */
00474                        /* bit 15 unused */
00475                        /* bit 16 unused */
00476                        /* bit 17 unused */
00477                        /* bit 18 unused */
00478 #define PCI2C1         (1UL<<19) /* I2C1 power/clock control bit */
00479                        /* bit 20 unused */
00480 #define PCSSP0         (1UL<<21) /* SSP0 power/clock control bit */
00481 #define PCTIM2         (1UL<<22) /* Timer 2 power/clock control bit */
00482 #define PCTIM3         (1UL<<23) /* Timer 3 power/clock control bit */
00483 #define PCUART2        (1UL<<24) /* UART2 power/clock control bit */
00484 #define PCUART3        (1UL<<25) /* UART3 power/clock control bit */
00485 #define PCI2C2         (1UL<<26) /* I2C2 power/clock control bit */
00486 #define PCI2S          (1UL<<27) /* I2S power/clock control bit */
00487 #define PCSDC          (1UL<<28) /* SD card power/clock control bit */
00488 #define PCGPDMA        (1UL<<29) /* GP DMA power/clock control bit */
00489 #define PCENET         (1UL<<30) /* Ethernet power/clock control bit */
00490 #define PCUSB          (1UL<<31) /* USB power/clock control bit */
00491 
00492 /* Clock Divider */
00493 /* #define APBDIV         LONG_REG(SCB_BASE_ADDR + 0x100) */
00494 #define CCLKCFG        LONG_REG(SCB_BASE_ADDR + 0x104)
00495 #define USBCLKCFG      LONG_REG(SCB_BASE_ADDR + 0x108)
00496 #define CLKSRCSEL      LONG_REG(SCB_BASE_ADDR + 0x10C)
00497 #define PCLKSEL0       LONG_REG(SCB_BASE_ADDR + 0x1A8)
00498 #define PCLKSEL1       LONG_REG(SCB_BASE_ADDR + 0x1AC)
00499 
00500 /* External Interrupts */
00501 #define EXTINT         LONG_REG(SCB_BASE_ADDR + 0x140)
00502 #define INTWAKE        LONG_REG(SCB_BASE_ADDR + 0x144)
00503 #define EXTMODE        LONG_REG(SCB_BASE_ADDR + 0x148)
00504 #define EXTPOLAR       LONG_REG(SCB_BASE_ADDR + 0x14C)
00505 
00506 /* Reset, reset source identification */
00507 #define RSIR           LONG_REG(SCB_BASE_ADDR + 0x180)
00508 
00509 /* RSID, code security protection */
00510 #define CSPR           LONG_REG(SCB_BASE_ADDR + 0x184)
00511 
00512 /* AHB configuration */
00513 #define AHBCFG1        LONG_REG(SCB_BASE_ADDR + 0x188)
00514 #define AHBCFG2        LONG_REG(SCB_BASE_ADDR + 0x18C)
00515 
00516 /* System Controls and Status */
00517 #define SCS            LONG_REG(SCB_BASE_ADDR + 0x1A0)
00518 
00519 /* MPMC(EMC) registers, note: all the external memory controller(EMC) registers
00520 are for LPC24xx only. */
00521 #define STATIC_MEM0_BASE                0x80000000
00522 #define STATIC_MEM1_BASE                0x81000000
00523 #define STATIC_MEM2_BASE                0x82000000
00524 #define STATIC_MEM3_BASE                0x83000000
00525 
00526 #define DYNAMIC_MEM0_BASE               0xA0000000
00527 #define DYNAMIC_MEM1_BASE               0xB0000000
00528 #define DYNAMIC_MEM2_BASE               0xC0000000
00529 #define DYNAMIC_MEM3_BASE               0xD0000000
00530 
00531 /* External Memory Controller (EMC) */
00532 #define EMC_BASE_ADDR           0xFFE08000
00533 #define EMC_CTRL       LONG_REG(EMC_BASE_ADDR + 0x000)
00534 #define EMC_STAT       LONG_REG(EMC_BASE_ADDR + 0x004)
00535 #define EMC_CONFIG     LONG_REG(EMC_BASE_ADDR + 0x008)
00536 
00537 /* Dynamic RAM access registers */
00538 #define EMC_DYN_CTRL     LONG_REG(EMC_BASE_ADDR + 0x020)
00539 #define EMC_DYN_RFSH     LONG_REG(EMC_BASE_ADDR + 0x024)
00540 #define EMC_DYN_RD_CFG   LONG_REG(EMC_BASE_ADDR + 0x028)
00541 #define EMC_DYN_RP       LONG_REG(EMC_BASE_ADDR + 0x030)
00542 #define EMC_DYN_RAS      LONG_REG(EMC_BASE_ADDR + 0x034)
00543 #define EMC_DYN_SREX     LONG_REG(EMC_BASE_ADDR + 0x038)
00544 #define EMC_DYN_APR      LONG_REG(EMC_BASE_ADDR + 0x03C)
00545 #define EMC_DYN_DAL      LONG_REG(EMC_BASE_ADDR + 0x040)
00546 #define EMC_DYN_WR       LONG_REG(EMC_BASE_ADDR + 0x044)
00547 #define EMC_DYN_RC       LONG_REG(EMC_BASE_ADDR + 0x048)
00548 #define EMC_DYN_RFC      LONG_REG(EMC_BASE_ADDR + 0x04C)
00549 #define EMC_DYN_XSR      LONG_REG(EMC_BASE_ADDR + 0x050)
00550 #define EMC_DYN_RRD      LONG_REG(EMC_BASE_ADDR + 0x054)
00551 #define EMC_DYN_MRD      LONG_REG(EMC_BASE_ADDR + 0x058)
00552 
00553 #define EMC_DYN_CFG0     LONG_REG(EMC_BASE_ADDR + 0x100)
00554 #define EMC_DYN_RASCAS0  LONG_REG(EMC_BASE_ADDR + 0x104)
00555 #define EMC_DYN_CFG1     LONG_REG(EMC_BASE_ADDR + 0x140)
00556 #define EMC_DYN_RASCAS1  LONG_REG(EMC_BASE_ADDR + 0x144)
00557 #define EMC_DYN_CFG2     LONG_REG(EMC_BASE_ADDR + 0x160)
00558 #define EMC_DYN_RASCAS2  LONG_REG(EMC_BASE_ADDR + 0x164)
00559 #define EMC_DYN_CFG3     LONG_REG(EMC_BASE_ADDR + 0x180)
00560 #define EMC_DYN_RASCAS3  LONG_REG(EMC_BASE_ADDR + 0x184)
00561 
00562 /* static RAM access registers */
00563 #define EMC_STA_CFG0      LONG_REG(EMC_BASE_ADDR + 0x200)
00564 #define EMC_STA_WAITWEN0  LONG_REG(EMC_BASE_ADDR + 0x204)
00565 #define EMC_STA_WAITOEN0  LONG_REG(EMC_BASE_ADDR + 0x208)
00566 #define EMC_STA_WAITRD0   LONG_REG(EMC_BASE_ADDR + 0x20C)
00567 #define EMC_STA_WAITPAGE0 LONG_REG(EMC_BASE_ADDR + 0x210)
00568 #define EMC_STA_WAITWR0   LONG_REG(EMC_BASE_ADDR + 0x214)
00569 #define EMC_STA_WAITTURN0 LONG_REG(EMC_BASE_ADDR + 0x218)
00570 
00571 #define EMC_STA_CFG1      LONG_REG(EMC_BASE_ADDR + 0x220)
00572 #define EMC_STA_WAITWEN1  LONG_REG(EMC_BASE_ADDR + 0x224)
00573 #define EMC_STA_WAITOEN1  LONG_REG(EMC_BASE_ADDR + 0x228)
00574 #define EMC_STA_WAITRD1   LONG_REG(EMC_BASE_ADDR + 0x22C)
00575 #define EMC_STA_WAITPAGE1 LONG_REG(EMC_BASE_ADDR + 0x230)
00576 #define EMC_STA_WAITWR1   LONG_REG(EMC_BASE_ADDR + 0x234)
00577 #define EMC_STA_WAITTURN1 LONG_REG(EMC_BASE_ADDR + 0x238)
00578 
00579 #define EMC_STA_CFG2      LONG_REG(EMC_BASE_ADDR + 0x240)
00580 #define EMC_STA_WAITWEN2  LONG_REG(EMC_BASE_ADDR + 0x244)
00581 #define EMC_STA_WAITOEN2  LONG_REG(EMC_BASE_ADDR + 0x248)
00582 #define EMC_STA_WAITRD2   LONG_REG(EMC_BASE_ADDR + 0x24C)
00583 #define EMC_STA_WAITPAGE2 LONG_REG(EMC_BASE_ADDR + 0x250)
00584 #define EMC_STA_WAITWR2   LONG_REG(EMC_BASE_ADDR + 0x254)
00585 #define EMC_STA_WAITTURN2 LONG_REG(EMC_BASE_ADDR + 0x258)
00586 
00587 #define EMC_STA_CFG3      LONG_REG(EMC_BASE_ADDR + 0x260)
00588 #define EMC_STA_WAITWEN3  LONG_REG(EMC_BASE_ADDR + 0x264)
00589 #define EMC_STA_WAITOEN3  LONG_REG(EMC_BASE_ADDR + 0x268)
00590 #define EMC_STA_WAITRD3   LONG_REG(EMC_BASE_ADDR + 0x26C)
00591 #define EMC_STA_WAITPAGE3 LONG_REG(EMC_BASE_ADDR + 0x270)
00592 #define EMC_STA_WAITWR3   LONG_REG(EMC_BASE_ADDR + 0x274)
00593 #define EMC_STA_WAITTURN3 LONG_REG(EMC_BASE_ADDR + 0x278)
00594 
00595 #define EMC_STA_EXT_WAIT  LONG_REG(EMC_BASE_ADDR + 0x880)
00596 
00597 
00598 /* Timer 0 */
00599 #define TMR0_BASE_ADDR          0xE0004000
00600 #define T0IR           LONG_REG(TMR0_BASE_ADDR + 0x00)
00601 #define T0TCR          LONG_REG(TMR0_BASE_ADDR + 0x04)
00602 #define T0TC           LONG_REG(TMR0_BASE_ADDR + 0x08)
00603 #define T0PR           LONG_REG(TMR0_BASE_ADDR + 0x0C)
00604 #define T0PC           LONG_REG(TMR0_BASE_ADDR + 0x10)
00605 #define T0MCR          LONG_REG(TMR0_BASE_ADDR + 0x14)
00606 #define T0MR0          LONG_REG(TMR0_BASE_ADDR + 0x18)
00607 #define T0MR1          LONG_REG(TMR0_BASE_ADDR + 0x1C)
00608 #define T0MR2          LONG_REG(TMR0_BASE_ADDR + 0x20)
00609 #define T0MR3          LONG_REG(TMR0_BASE_ADDR + 0x24)
00610 #define T0CCR          LONG_REG(TMR0_BASE_ADDR + 0x28)
00611 #define T0CR0          LONG_REG(TMR0_BASE_ADDR + 0x2C)
00612 #define T0CR1          LONG_REG(TMR0_BASE_ADDR + 0x30)
00613 #define T0CR2          LONG_REG(TMR0_BASE_ADDR + 0x34)
00614 #define T0CR3          LONG_REG(TMR0_BASE_ADDR + 0x38)
00615 #define T0EMR          LONG_REG(TMR0_BASE_ADDR + 0x3C)
00616 #define T0CTCR         LONG_REG(TMR0_BASE_ADDR + 0x70)
00617 
00618 /* Timer 1 */
00619 #define TMR1_BASE_ADDR          0xE0008000
00620 #define T1IR           LONG_REG(TMR1_BASE_ADDR + 0x00)
00621 #define T1TCR          LONG_REG(TMR1_BASE_ADDR + 0x04)
00622 #define T1TC           LONG_REG(TMR1_BASE_ADDR + 0x08)
00623 #define T1PR           LONG_REG(TMR1_BASE_ADDR + 0x0C)
00624 #define T1PC           LONG_REG(TMR1_BASE_ADDR + 0x10)
00625 #define T1MCR          LONG_REG(TMR1_BASE_ADDR + 0x14)
00626 #define T1MR0          LONG_REG(TMR1_BASE_ADDR + 0x18)
00627 #define T1MR1          LONG_REG(TMR1_BASE_ADDR + 0x1C)
00628 #define T1MR2          LONG_REG(TMR1_BASE_ADDR + 0x20)
00629 #define T1MR3          LONG_REG(TMR1_BASE_ADDR + 0x24)
00630 #define T1CCR          LONG_REG(TMR1_BASE_ADDR + 0x28)
00631 #define T1CR0          LONG_REG(TMR1_BASE_ADDR + 0x2C)
00632 #define T1CR1          LONG_REG(TMR1_BASE_ADDR + 0x30)
00633 #define T1CR2          LONG_REG(TMR1_BASE_ADDR + 0x34)
00634 #define T1CR3          LONG_REG(TMR1_BASE_ADDR + 0x38)
00635 #define T1EMR          LONG_REG(TMR1_BASE_ADDR + 0x3C)
00636 #define T1CTCR         LONG_REG(TMR1_BASE_ADDR + 0x70)
00637 
00638 /* Timer 2 */
00639 #define TMR2_BASE_ADDR          0xE0070000
00640 #define T2IR           LONG_REG(TMR2_BASE_ADDR + 0x00)
00641 #define T2TCR          LONG_REG(TMR2_BASE_ADDR + 0x04)
00642 #define T2TC           LONG_REG(TMR2_BASE_ADDR + 0x08)
00643 #define T2PR           LONG_REG(TMR2_BASE_ADDR + 0x0C)
00644 #define T2PC           LONG_REG(TMR2_BASE_ADDR + 0x10)
00645 #define T2MCR          LONG_REG(TMR2_BASE_ADDR + 0x14)
00646 #define T2MR0          LONG_REG(TMR2_BASE_ADDR + 0x18)
00647 #define T2MR1          LONG_REG(TMR2_BASE_ADDR + 0x1C)
00648 #define T2MR2          LONG_REG(TMR2_BASE_ADDR + 0x20)
00649 #define T2MR3          LONG_REG(TMR2_BASE_ADDR + 0x24)
00650 #define T2CCR          LONG_REG(TMR2_BASE_ADDR + 0x28)
00651 #define T2CR0          LONG_REG(TMR2_BASE_ADDR + 0x2C)
00652 #define T2CR1          LONG_REG(TMR2_BASE_ADDR + 0x30)
00653 #define T2CR2          LONG_REG(TMR2_BASE_ADDR + 0x34)
00654 #define T2CR3          LONG_REG(TMR2_BASE_ADDR + 0x38)
00655 #define T2EMR          LONG_REG(TMR2_BASE_ADDR + 0x3C)
00656 #define T2CTCR         LONG_REG(TMR2_BASE_ADDR + 0x70)
00657 
00658 /* Timer 3 */
00659 #define TMR3_BASE_ADDR          0xE0074000
00660 #define T3IR           LONG_REG(TMR3_BASE_ADDR + 0x00)
00661 #define T3TCR          LONG_REG(TMR3_BASE_ADDR + 0x04)
00662 #define T3TC           LONG_REG(TMR3_BASE_ADDR + 0x08)
00663 #define T3PR           LONG_REG(TMR3_BASE_ADDR + 0x0C)
00664 #define T3PC           LONG_REG(TMR3_BASE_ADDR + 0x10)
00665 #define T3MCR          LONG_REG(TMR3_BASE_ADDR + 0x14)
00666 #define T3MR0          LONG_REG(TMR3_BASE_ADDR + 0x18)
00667 #define T3MR1          LONG_REG(TMR3_BASE_ADDR + 0x1C)
00668 #define T3MR2          LONG_REG(TMR3_BASE_ADDR + 0x20)
00669 #define T3MR3          LONG_REG(TMR3_BASE_ADDR + 0x24)
00670 #define T3CCR          LONG_REG(TMR3_BASE_ADDR + 0x28)
00671 #define T3CR0          LONG_REG(TMR3_BASE_ADDR + 0x2C)
00672 #define T3CR1          LONG_REG(TMR3_BASE_ADDR + 0x30)
00673 #define T3CR2          LONG_REG(TMR3_BASE_ADDR + 0x34)
00674 #define T3CR3          LONG_REG(TMR3_BASE_ADDR + 0x38)
00675 #define T3EMR          LONG_REG(TMR3_BASE_ADDR + 0x3C)
00676 #define T3CTCR         LONG_REG(TMR3_BASE_ADDR + 0x70)
00677 
00678 /* Ackley: Added Generic Timer offsets */
00679 #define TxIR    0x00
00680 #define TxTCR   0x04
00681 #define TxTC    0x08
00682 #define TxPR    0x0C
00683 #define TxPC    0x10
00684 #define TxMCR   0x14
00685 #define TxMR0   0x18
00686 #define TxMR1   0x1C
00687 #define TxMR2   0x20
00688 #define TxMR3   0x24
00689 #define TxCCR   0x28
00690 #define TxCR0   0x2C
00691 #define TxCR1   0x30
00692 #define TxCR2   0x34
00693 #define TxCR3   0x38
00694 #define TxEMR   0x3C
00695 #define TxCTCR  0x70
00696 
00697 /* Pulse Width Modulator (PWM) */
00698 #define PWM0_BASE_ADDR          0xE0014000
00699 #define PWM0IR          LONG_REG(PWM0_BASE_ADDR + 0x00)
00700 #define PWM0TCR         LONG_REG(PWM0_BASE_ADDR + 0x04)
00701 #define PWM0TC          LONG_REG(PWM0_BASE_ADDR + 0x08)
00702 #define PWM0PR          LONG_REG(PWM0_BASE_ADDR + 0x0C)
00703 #define PWM0PC          LONG_REG(PWM0_BASE_ADDR + 0x10)
00704 #define PWM0MCR         LONG_REG(PWM0_BASE_ADDR + 0x14)
00705 #define PWM0MR0         LONG_REG(PWM0_BASE_ADDR + 0x18)
00706 #define PWM0MR1         LONG_REG(PWM0_BASE_ADDR + 0x1C)
00707 #define PWM0MR2         LONG_REG(PWM0_BASE_ADDR + 0x20)
00708 #define PWM0MR3         LONG_REG(PWM0_BASE_ADDR + 0x24)
00709 #define PWM0CCR         LONG_REG(PWM0_BASE_ADDR + 0x28)
00710 #define PWM0CR0         LONG_REG(PWM0_BASE_ADDR + 0x2C)
00711 #define PWM0CR1         LONG_REG(PWM0_BASE_ADDR + 0x30)
00712 #define PWM0CR2         LONG_REG(PWM0_BASE_ADDR + 0x34)
00713 #define PWM0CR3         LONG_REG(PWM0_BASE_ADDR + 0x38)
00714 #define PWM0EMR         LONG_REG(PWM0_BASE_ADDR + 0x3C)
00715 #define PWM0MR4         LONG_REG(PWM0_BASE_ADDR + 0x40)
00716 #define PWM0MR5         LONG_REG(PWM0_BASE_ADDR + 0x44)
00717 #define PWM0MR6         LONG_REG(PWM0_BASE_ADDR + 0x48)
00718 #define PWM0PCR         LONG_REG(PWM0_BASE_ADDR + 0x4C)
00719 #define PWM0LER         LONG_REG(PWM0_BASE_ADDR + 0x50)
00720 #define PWM0CTCR        LONG_REG(PWM0_BASE_ADDR + 0x70)
00721 
00722 #define PWM1_BASE_ADDR          0xE0018000
00723 #define PWM1IR          LONG_REG(PWM1_BASE_ADDR + 0x00)
00724 #define PWM1TCR         LONG_REG(PWM1_BASE_ADDR + 0x04)
00725 #define PWM1TC          LONG_REG(PWM1_BASE_ADDR + 0x08)
00726 #define PWM1PR          LONG_REG(PWM1_BASE_ADDR + 0x0C)
00727 #define PWM1PC          LONG_REG(PWM1_BASE_ADDR + 0x10)
00728 #define PWM1MCR         LONG_REG(PWM1_BASE_ADDR + 0x14)
00729 #define PWM1MR0         LONG_REG(PWM1_BASE_ADDR + 0x18)
00730 #define PWM1MR1         LONG_REG(PWM1_BASE_ADDR + 0x1C)
00731 #define PWM1MR2         LONG_REG(PWM1_BASE_ADDR + 0x20)
00732 #define PWM1MR3         LONG_REG(PWM1_BASE_ADDR + 0x24)
00733 #define PWM1CCR         LONG_REG(PWM1_BASE_ADDR + 0x28)
00734 #define PWM1CR0         LONG_REG(PWM1_BASE_ADDR + 0x2C)
00735 #define PWM1CR1         LONG_REG(PWM1_BASE_ADDR + 0x30)
00736 #define PWM1CR2         LONG_REG(PWM1_BASE_ADDR + 0x34)
00737 #define PWM1CR3         LONG_REG(PWM1_BASE_ADDR + 0x38)
00738 #define PWM1EMR         LONG_REG(PWM1_BASE_ADDR + 0x3C)
00739 #define PWM1MR4         LONG_REG(PWM1_BASE_ADDR + 0x40)
00740 #define PWM1MR5         LONG_REG(PWM1_BASE_ADDR + 0x44)
00741 #define PWM1MR6         LONG_REG(PWM1_BASE_ADDR + 0x48)
00742 #define PWM1PCR         LONG_REG(PWM1_BASE_ADDR + 0x4C)
00743 #define PWM1LER         LONG_REG(PWM1_BASE_ADDR + 0x50)
00744 #define PWM1CTCR        LONG_REG(PWM1_BASE_ADDR + 0x70)
00745 
00746 /* Ackley: Added Generic UART offsets */
00747 #define UxRBR          0x00
00748 #define UxTHR          0x00
00749 #define UxDLL          0x00
00750 #define UxDLM          0x04
00751 #define UxIER          0x04
00752 #define UxIIR          0x08
00753 #define UxFCR          0x08
00754 #define UxLCR          0x0C
00755 #define UxLSR          0x14
00756 #define UxSCR          0x1C
00757 #define UxACR          0x20
00758 #define UxICR          0x24
00759 #define UxFDR          0x28
00760 #define UxTER          0x30
00761 
00762 /* Universal Asynchronous Receiver Transmitter 0 (UART0) */
00763 #define UART0_BASE_ADDR         0xE000C000
00764 #define U0RBR          LONG_REG(UART0_BASE_ADDR + 0x00)
00765 #define U0THR          LONG_REG(UART0_BASE_ADDR + 0x00)
00766 #define U0DLL          LONG_REG(UART0_BASE_ADDR + 0x00)
00767 #define U0DLM          LONG_REG(UART0_BASE_ADDR + 0x04)
00768 #define U0IER          LONG_REG(UART0_BASE_ADDR + 0x04)
00769 #define U0IIR          LONG_REG(UART0_BASE_ADDR + 0x08)
00770 #define U0FCR          LONG_REG(UART0_BASE_ADDR + 0x08)
00771 #define U0LCR          LONG_REG(UART0_BASE_ADDR + 0x0C)
00772 #define U0LSR          LONG_REG(UART0_BASE_ADDR + 0x14)
00773 #define U0SCR          LONG_REG(UART0_BASE_ADDR + 0x1C)
00774 #define U0ACR          LONG_REG(UART0_BASE_ADDR + 0x20)
00775 #define U0ICR          LONG_REG(UART0_BASE_ADDR + 0x24)
00776 #define U0FDR          LONG_REG(UART0_BASE_ADDR + 0x28)
00777 #define U0TER          LONG_REG(UART0_BASE_ADDR + 0x30)
00778 
00779 /* Universal Asynchronous Receiver Transmitter 1 (UART1) */
00780 #define UART1_BASE_ADDR         0xE0010000
00781 #define U1RBR          LONG_REG(UART1_BASE_ADDR + 0x00)
00782 #define U1THR          LONG_REG(UART1_BASE_ADDR + 0x00)
00783 #define U1DLL          LONG_REG(UART1_BASE_ADDR + 0x00)
00784 #define U1DLM          LONG_REG(UART1_BASE_ADDR + 0x04)
00785 #define U1IER          LONG_REG(UART1_BASE_ADDR + 0x04)
00786 #define U1IIR          LONG_REG(UART1_BASE_ADDR + 0x08)
00787 #define U1FCR          LONG_REG(UART1_BASE_ADDR + 0x08)
00788 #define U1LCR          LONG_REG(UART1_BASE_ADDR + 0x0C)
00789 #define U1MCR          LONG_REG(UART1_BASE_ADDR + 0x10)
00790 #define U1LSR          LONG_REG(UART1_BASE_ADDR + 0x14)
00791 #define U1MSR          LONG_REG(UART1_BASE_ADDR + 0x18)
00792 #define U1SCR          LONG_REG(UART1_BASE_ADDR + 0x1C)
00793 #define U1ACR          LONG_REG(UART1_BASE_ADDR + 0x20)
00794 /*#define U1ICR          LONG_REG(UART1_BASE_ADDR + 0x24) ACKLEY -- Only this one was missing from the file, why? */
00795 #define U1FDR          LONG_REG(UART1_BASE_ADDR + 0x28)
00796 #define U1TER          LONG_REG(UART1_BASE_ADDR + 0x30)
00797 
00798 /* Universal Asynchronous Receiver Transmitter 2 (UART2) */
00799 #define UART2_BASE_ADDR         0xE0078000
00800 #define U2RBR          LONG_REG(UART2_BASE_ADDR + 0x00)
00801 #define U2THR          LONG_REG(UART2_BASE_ADDR + 0x00)
00802 #define U2DLL          LONG_REG(UART2_BASE_ADDR + 0x00)
00803 #define U2DLM          LONG_REG(UART2_BASE_ADDR + 0x04)
00804 #define U2IER          LONG_REG(UART2_BASE_ADDR + 0x04)
00805 #define U2IIR          LONG_REG(UART2_BASE_ADDR + 0x08)
00806 #define U2FCR          LONG_REG(UART2_BASE_ADDR + 0x08)
00807 #define U2LCR          LONG_REG(UART2_BASE_ADDR + 0x0C)
00808 #define U2LSR          LONG_REG(UART2_BASE_ADDR + 0x14)
00809 #define U2SCR          LONG_REG(UART2_BASE_ADDR + 0x1C)
00810 #define U2ACR          LONG_REG(UART2_BASE_ADDR + 0x20)
00811 #define U2ICR          LONG_REG(UART2_BASE_ADDR + 0x24)
00812 #define U2FDR          LONG_REG(UART2_BASE_ADDR + 0x28)
00813 #define U2TER          LONG_REG(UART2_BASE_ADDR + 0x30)
00814 
00815 /* Universal Asynchronous Receiver Transmitter 3 (UART3) */
00816 #define UART3_BASE_ADDR         0xE007C000
00817 #define U3RBR          LONG_REG(UART3_BASE_ADDR + 0x00)
00818 #define U3THR          LONG_REG(UART3_BASE_ADDR + 0x00)
00819 #define U3DLL          LONG_REG(UART3_BASE_ADDR + 0x00)
00820 #define U3DLM          LONG_REG(UART3_BASE_ADDR + 0x04)
00821 #define U3IER          LONG_REG(UART3_BASE_ADDR + 0x04)
00822 #define U3IIR          LONG_REG(UART3_BASE_ADDR + 0x08)
00823 #define U3FCR          LONG_REG(UART3_BASE_ADDR + 0x08)
00824 #define U3LCR          LONG_REG(UART3_BASE_ADDR + 0x0C)
00825 #define U3LSR          LONG_REG(UART3_BASE_ADDR + 0x14)
00826 #define U3SCR          LONG_REG(UART3_BASE_ADDR + 0x1C)
00827 #define U3ACR          LONG_REG(UART3_BASE_ADDR + 0x20)
00828 #define U3ICR          LONG_REG(UART3_BASE_ADDR + 0x24)
00829 #define U3FDR          LONG_REG(UART3_BASE_ADDR + 0x28)
00830 #define U3TER          LONG_REG(UART3_BASE_ADDR + 0x30)
00831 
00832 /* I2C Interface 0 */
00833 #define I2C0_BASE_ADDR          0xE001C000
00834 #define I20CONSET      LONG_REG(I2C0_BASE_ADDR + 0x00)
00835 #define I20STAT        LONG_REG(I2C0_BASE_ADDR + 0x04)
00836 #define I20DAT         LONG_REG(I2C0_BASE_ADDR + 0x08)
00837 #define I20ADR         LONG_REG(I2C0_BASE_ADDR + 0x0C)
00838 #define I20SCLH        LONG_REG(I2C0_BASE_ADDR + 0x10)
00839 #define I20SCLL        LONG_REG(I2C0_BASE_ADDR + 0x14)
00840 #define I20CONCLR      LONG_REG(I2C0_BASE_ADDR + 0x18)
00841 
00842 /* I2C Interface 1 */
00843 #define I2C1_BASE_ADDR          0xE005C000
00844 #define I21CONSET      LONG_REG(I2C1_BASE_ADDR + 0x00)
00845 #define I21STAT        LONG_REG(I2C1_BASE_ADDR + 0x04)
00846 #define I21DAT         LONG_REG(I2C1_BASE_ADDR + 0x08)
00847 #define I21ADR         LONG_REG(I2C1_BASE_ADDR + 0x0C)
00848 #define I21SCLH        LONG_REG(I2C1_BASE_ADDR + 0x10)
00849 #define I21SCLL        LONG_REG(I2C1_BASE_ADDR + 0x14)
00850 #define I21CONCLR      LONG_REG(I2C1_BASE_ADDR + 0x18)
00851 
00852 /* I2C Interface 2 */
00853 #define I2C2_BASE_ADDR          0xE0080000
00854 #define I22CONSET      LONG_REG(I2C2_BASE_ADDR + 0x00)
00855 #define I22STAT        LONG_REG(I2C2_BASE_ADDR + 0x04)
00856 #define I22DAT         LONG_REG(I2C2_BASE_ADDR + 0x08)
00857 #define I22ADR         LONG_REG(I2C2_BASE_ADDR + 0x0C)
00858 #define I22SCLH        LONG_REG(I2C2_BASE_ADDR + 0x10)
00859 #define I22SCLL        LONG_REG(I2C2_BASE_ADDR + 0x14)
00860 #define I22CONCLR      LONG_REG(I2C2_BASE_ADDR + 0x18)
00861 
00862 /* SPI0 (Serial Peripheral Interface 0) */
00863 #define SPI0_BASE_ADDR          0xE0020000
00864 #define S0SPCR         LONG_REG(SPI0_BASE_ADDR + 0x00)
00865 #define S0SPSR         LONG_REG(SPI0_BASE_ADDR + 0x04)
00866 #define S0SPDR         LONG_REG(SPI0_BASE_ADDR + 0x08)
00867 #define S0SPCCR        LONG_REG(SPI0_BASE_ADDR + 0x0C)
00868 #define S0SPINT        LONG_REG(SPI0_BASE_ADDR + 0x1C)
00869 
00870 /* SSP0 Controller */
00871 #define SSP0_BASE_ADDR          0xE0068000
00872 #define SSP0CR0        LONG_REG(SSP0_BASE_ADDR + 0x00)
00873 #define SSP0CR1        LONG_REG(SSP0_BASE_ADDR + 0x04)
00874 #define SSP0DR         LONG_REG(SSP0_BASE_ADDR + 0x08)
00875 #define SSP0SR         LONG_REG(SSP0_BASE_ADDR + 0x0C)
00876 #define SSP0CPSR       LONG_REG(SSP0_BASE_ADDR + 0x10)
00877 #define SSP0IMSC       LONG_REG(SSP0_BASE_ADDR + 0x14)
00878 #define SSP0RIS        LONG_REG(SSP0_BASE_ADDR + 0x18)
00879 #define SSP0MIS        LONG_REG(SSP0_BASE_ADDR + 0x1C)
00880 #define SSP0ICR        LONG_REG(SSP0_BASE_ADDR + 0x20)
00881 #define SSP0DMACR      LONG_REG(SSP0_BASE_ADDR + 0x24)
00882 
00883 /* SSP1 Controller */
00884 #define SSP1_BASE_ADDR          0xE0030000
00885 #define SSP1CR0        LONG_REG(SSP1_BASE_ADDR + 0x00)
00886 #define SSP1CR1        LONG_REG(SSP1_BASE_ADDR + 0x04)
00887 #define SSP1DR         LONG_REG(SSP1_BASE_ADDR + 0x08)
00888 #define SSP1SR         LONG_REG(SSP1_BASE_ADDR + 0x0C)
00889 #define SSP1CPSR       LONG_REG(SSP1_BASE_ADDR + 0x10)
00890 #define SSP1IMSC       LONG_REG(SSP1_BASE_ADDR + 0x14)
00891 #define SSP1RIS        LONG_REG(SSP1_BASE_ADDR + 0x18)
00892 #define SSP1MIS        LONG_REG(SSP1_BASE_ADDR + 0x1C)
00893 #define SSP1ICR        LONG_REG(SSP1_BASE_ADDR + 0x20)
00894 #define SSP1DMACR      LONG_REG(SSP1_BASE_ADDR + 0x24)
00895 
00896 
00897 /* Real Time Clock */
00898 #define RTC_BASE_ADDR           0xE0024000
00899 #define RTC_ILR         LONG_REG(RTC_BASE_ADDR + 0x00)
00900 #define RTC_CTC         LONG_REG(RTC_BASE_ADDR + 0x04)
00901 #define RTC_CCR         LONG_REG(RTC_BASE_ADDR + 0x08)
00902 #define RTC_CIIR        LONG_REG(RTC_BASE_ADDR + 0x0C)
00903 #define RTC_AMR         LONG_REG(RTC_BASE_ADDR + 0x10)
00904 #define RTC_CTIME0      LONG_REG(RTC_BASE_ADDR + 0x14)
00905 #define RTC_CTIME1      LONG_REG(RTC_BASE_ADDR + 0x18)
00906 #define RTC_CTIME2      LONG_REG(RTC_BASE_ADDR + 0x1C)
00907 #define RTC_SEC         LONG_REG(RTC_BASE_ADDR + 0x20)
00908 #define RTC_MIN         LONG_REG(RTC_BASE_ADDR + 0x24)
00909 #define RTC_HOUR        LONG_REG(RTC_BASE_ADDR + 0x28)
00910 #define RTC_DOM         LONG_REG(RTC_BASE_ADDR + 0x2C)
00911 #define RTC_DOW         LONG_REG(RTC_BASE_ADDR + 0x30)
00912 #define RTC_DOY         LONG_REG(RTC_BASE_ADDR + 0x34)
00913 #define RTC_MONTH       LONG_REG(RTC_BASE_ADDR + 0x38)
00914 #define RTC_YEAR        LONG_REG(RTC_BASE_ADDR + 0x3C)
00915 #define RTC_CISS        LONG_REG(RTC_BASE_ADDR + 0x40)
00916 #define RTC_ALSEC       LONG_REG(RTC_BASE_ADDR + 0x60)
00917 #define RTC_ALMIN       LONG_REG(RTC_BASE_ADDR + 0x64)
00918 #define RTC_ALHOUR      LONG_REG(RTC_BASE_ADDR + 0x68)
00919 #define RTC_ALDOM       LONG_REG(RTC_BASE_ADDR + 0x6C)
00920 #define RTC_ALDOW       LONG_REG(RTC_BASE_ADDR + 0x70)
00921 #define RTC_ALDOY       LONG_REG(RTC_BASE_ADDR + 0x74)
00922 #define RTC_ALMON       LONG_REG(RTC_BASE_ADDR + 0x78)
00923 #define RTC_ALYEAR      LONG_REG(RTC_BASE_ADDR + 0x7C)
00924 #define RTC_PREINT      LONG_REG(RTC_BASE_ADDR + 0x80)
00925 #define RTC_PREFRAC     LONG_REG(RTC_BASE_ADDR + 0x84)
00926 
00927 
00928 /* A/D Converter 0 (AD0) */
00929 #define AD0_BASE_ADDR           0xE0034000
00930 #define AD0CR          LONG_REG(AD0_BASE_ADDR + 0x00)
00931 #define AD0GDR         LONG_REG(AD0_BASE_ADDR + 0x04)
00932 #define AD0INTEN       LONG_REG(AD0_BASE_ADDR + 0x0C)
00933 #define AD0DR0         LONG_REG(AD0_BASE_ADDR + 0x10)
00934 #define AD0DR1         LONG_REG(AD0_BASE_ADDR + 0x14)
00935 #define AD0DR2         LONG_REG(AD0_BASE_ADDR + 0x18)
00936 #define AD0DR3         LONG_REG(AD0_BASE_ADDR + 0x1C)
00937 #define AD0DR4         LONG_REG(AD0_BASE_ADDR + 0x20)
00938 #define AD0DR5         LONG_REG(AD0_BASE_ADDR + 0x24)
00939 #define AD0DR6         LONG_REG(AD0_BASE_ADDR + 0x28)
00940 #define AD0DR7         LONG_REG(AD0_BASE_ADDR + 0x2C)
00941 #define AD0STAT        LONG_REG(AD0_BASE_ADDR + 0x30)
00942 
00943 
00944 /* D/A Converter */
00945 #define DAC_BASE_ADDR           0xE006C000
00946 #define DACR           LONG_REG(DAC_BASE_ADDR + 0x00)
00947 
00948 
00949 /* Watchdog */
00950 #define WDG_BASE_ADDR           0xE0000000
00951 #define WDMOD          LONG_REG(WDG_BASE_ADDR + 0x00)
00952 #define WDTC           LONG_REG(WDG_BASE_ADDR + 0x04)
00953 #define WDFEED         LONG_REG(WDG_BASE_ADDR + 0x08)
00954 #define WDTV           LONG_REG(WDG_BASE_ADDR + 0x0C)
00955 #define WDCLKSEL       LONG_REG(WDG_BASE_ADDR + 0x10)
00956 
00957 /* CAN CONTROLLERS AND ACCEPTANCE FILTER */
00958 #define CAN_ACCEPT_BASE_ADDR            0xE003C000
00959 #define CAN_AFMR                LONG_REG(CAN_ACCEPT_BASE_ADDR + 0x00)
00960 #define CAN_SFF_SA              LONG_REG(CAN_ACCEPT_BASE_ADDR + 0x04)
00961 #define CAN_SFF_GRP_SA  LONG_REG(CAN_ACCEPT_BASE_ADDR + 0x08)
00962 #define CAN_EFF_SA              LONG_REG(CAN_ACCEPT_BASE_ADDR + 0x0C)
00963 #define CAN_EFF_GRP_SA  LONG_REG(CAN_ACCEPT_BASE_ADDR + 0x10)
00964 #define CAN_EOT                 LONG_REG(CAN_ACCEPT_BASE_ADDR + 0x14)
00965 #define CAN_LUT_ERR_ADR LONG_REG(CAN_ACCEPT_BASE_ADDR + 0x18)
00966 #define CAN_LUT_ERR     LONG_REG(CAN_ACCEPT_BASE_ADDR + 0x1C)
00967 
00968 #define CAN_CENTRAL_BASE_ADDR           0xE0040000
00969 #define CAN_TX_SR       LONG_REG(CAN_CENTRAL_BASE_ADDR + 0x00)
00970 #define CAN_RX_SR       LONG_REG(CAN_CENTRAL_BASE_ADDR + 0x04)
00971 #define CAN_MSR         LONG_REG(CAN_CENTRAL_BASE_ADDR + 0x08)
00972 
00973 #define CAN1_BASE_ADDR          0xE0044000
00974 #define CAN1MOD         LONG_REG(CAN1_BASE_ADDR + 0x00)
00975 #define CAN1CMR         LONG_REG(CAN1_BASE_ADDR + 0x04)
00976 #define CAN1GSR         LONG_REG(CAN1_BASE_ADDR + 0x08)
00977 #define CAN1ICR         LONG_REG(CAN1_BASE_ADDR + 0x0C)
00978 #define CAN1IER         LONG_REG(CAN1_BASE_ADDR + 0x10)
00979 #define CAN1BTR         LONG_REG(CAN1_BASE_ADDR + 0x14)
00980 #define CAN1EWL         LONG_REG(CAN1_BASE_ADDR + 0x18)
00981 #define CAN1SR          LONG_REG(CAN1_BASE_ADDR + 0x1C)
00982 #define CAN1RFS         LONG_REG(CAN1_BASE_ADDR + 0x20)
00983 #define CAN1RID         LONG_REG(CAN1_BASE_ADDR + 0x24)
00984 #define CAN1RDA         LONG_REG(CAN1_BASE_ADDR + 0x28)
00985 #define CAN1RDB         LONG_REG(CAN1_BASE_ADDR + 0x2C)
00986 
00987 #define CAN1TFI1        LONG_REG(CAN1_BASE_ADDR + 0x30)
00988 #define CAN1TID1        LONG_REG(CAN1_BASE_ADDR + 0x34)
00989 #define CAN1TDA1        LONG_REG(CAN1_BASE_ADDR + 0x38)
00990 #define CAN1TDB1        LONG_REG(CAN1_BASE_ADDR + 0x3C)
00991 #define CAN1TFI2        LONG_REG(CAN1_BASE_ADDR + 0x40)
00992 #define CAN1TID2        LONG_REG(CAN1_BASE_ADDR + 0x44)
00993 #define CAN1TDA2        LONG_REG(CAN1_BASE_ADDR + 0x48)
00994 #define CAN1TDB2        LONG_REG(CAN1_BASE_ADDR + 0x4C)
00995 #define CAN1TFI3        LONG_REG(CAN1_BASE_ADDR + 0x50)
00996 #define CAN1TID3        LONG_REG(CAN1_BASE_ADDR + 0x54)
00997 #define CAN1TDA3        LONG_REG(CAN1_BASE_ADDR + 0x58)
00998 #define CAN1TDB3        LONG_REG(CAN1_BASE_ADDR + 0x5C)
00999 
01000 #define CAN2_BASE_ADDR          0xE0048000
01001 #define CAN2MOD         LONG_REG(CAN2_BASE_ADDR + 0x00)
01002 #define CAN2CMR         LONG_REG(CAN2_BASE_ADDR + 0x04)
01003 #define CAN2GSR         LONG_REG(CAN2_BASE_ADDR + 0x08)
01004 #define CAN2ICR         LONG_REG(CAN2_BASE_ADDR + 0x0C)
01005 #define CAN2IER         LONG_REG(CAN2_BASE_ADDR + 0x10)
01006 #define CAN2BTR         LONG_REG(CAN2_BASE_ADDR + 0x14)
01007 #define CAN2EWL         LONG_REG(CAN2_BASE_ADDR + 0x18)
01008 #define CAN2SR          LONG_REG(CAN2_BASE_ADDR + 0x1C)
01009 #define CAN2RFS         LONG_REG(CAN2_BASE_ADDR + 0x20)
01010 #define CAN2RID         LONG_REG(CAN2_BASE_ADDR + 0x24)
01011 #define CAN2RDA         LONG_REG(CAN2_BASE_ADDR + 0x28)
01012 #define CAN2RDB         LONG_REG(CAN2_BASE_ADDR + 0x2C)
01013 
01014 #define CAN2TFI1        LONG_REG(CAN2_BASE_ADDR + 0x30)
01015 #define CAN2TID1        LONG_REG(CAN2_BASE_ADDR + 0x34)
01016 #define CAN2TDA1        LONG_REG(CAN2_BASE_ADDR + 0x38)
01017 #define CAN2TDB1        LONG_REG(CAN2_BASE_ADDR + 0x3C)
01018 #define CAN2TFI2        LONG_REG(CAN2_BASE_ADDR + 0x40)
01019 #define CAN2TID2        LONG_REG(CAN2_BASE_ADDR + 0x44)
01020 #define CAN2TDA2        LONG_REG(CAN2_BASE_ADDR + 0x48)
01021 #define CAN2TDB2        LONG_REG(CAN2_BASE_ADDR + 0x4C)
01022 #define CAN2TFI3        LONG_REG(CAN2_BASE_ADDR + 0x50)
01023 #define CAN2TID3        LONG_REG(CAN2_BASE_ADDR + 0x54)
01024 #define CAN2TDA3        LONG_REG(CAN2_BASE_ADDR + 0x58)
01025 #define CAN2TDB3        LONG_REG(CAN2_BASE_ADDR + 0x5C)
01026 
01027 
01028 /* MultiMedia Card Interface(MCI) Controller */
01029 #define MCI_BASE_ADDR           0xE008C000
01030 #define MCI_POWER      LONG_REG(MCI_BASE_ADDR + 0x00)
01031 #define MCI_CLOCK      LONG_REG(MCI_BASE_ADDR + 0x04)
01032 #define MCI_ARGUMENT   LONG_REG(MCI_BASE_ADDR + 0x08)
01033 #define MCI_COMMAND    LONG_REG(MCI_BASE_ADDR + 0x0C)
01034 #define MCI_RESP_CMD   LONG_REG(MCI_BASE_ADDR + 0x10)
01035 #define MCI_RESP0      LONG_REG(MCI_BASE_ADDR + 0x14)
01036 #define MCI_RESP1      LONG_REG(MCI_BASE_ADDR + 0x18)
01037 #define MCI_RESP2      LONG_REG(MCI_BASE_ADDR + 0x1C)
01038 #define MCI_RESP3      LONG_REG(MCI_BASE_ADDR + 0x20)
01039 #define MCI_DATA_TMR   LONG_REG(MCI_BASE_ADDR + 0x24)
01040 #define MCI_DATA_LEN   LONG_REG(MCI_BASE_ADDR + 0x28)
01041 #define MCI_DATA_CTRL  LONG_REG(MCI_BASE_ADDR + 0x2C)
01042 #define MCI_DATA_CNT   LONG_REG(MCI_BASE_ADDR + 0x30)
01043 #define MCI_STATUS     LONG_REG(MCI_BASE_ADDR + 0x34)
01044 #define MCI_CLEAR      LONG_REG(MCI_BASE_ADDR + 0x38)
01045 #define MCI_MASK0      LONG_REG(MCI_BASE_ADDR + 0x3C)
01046 #define MCI_MASK1      LONG_REG(MCI_BASE_ADDR + 0x40)
01047 #define MCI_FIFO_CNT   LONG_REG(MCI_BASE_ADDR + 0x48)
01048 #define MCI_FIFO       LONG_REG(MCI_BASE_ADDR + 0x80)
01049 
01050 
01051 /* I2S Interface Controller (I2S) */
01052 #define I2S_BASE_ADDR           0xE0088000
01053 #define I2S_DAO        LONG_REG(I2S_BASE_ADDR + 0x00)
01054 #define I2S_DAI        LONG_REG(I2S_BASE_ADDR + 0x04)
01055 #define I2S_TX_FIFO    LONG_REG(I2S_BASE_ADDR + 0x08)
01056 #define I2S_RX_FIFO    LONG_REG(I2S_BASE_ADDR + 0x0C)
01057 #define I2S_STATE      LONG_REG(I2S_BASE_ADDR + 0x10)
01058 #define I2S_DMA1       LONG_REG(I2S_BASE_ADDR + 0x14)
01059 #define I2S_DMA2       LONG_REG(I2S_BASE_ADDR + 0x18)
01060 #define I2S_IRQ        LONG_REG(I2S_BASE_ADDR + 0x1C)
01061 #define I2S_TXRATE     LONG_REG(I2S_BASE_ADDR + 0x20)
01062 #define I2S_RXRATE     LONG_REG(I2S_BASE_ADDR + 0x24)
01063 
01064 
01065 /* General-purpose DMA Controller */
01066 #define DMA_BASE_ADDR           0xFFE04000
01067 #define GPDMA_INT_STAT         LONG_REG(DMA_BASE_ADDR + 0x000)
01068 #define GPDMA_INT_TCSTAT       LONG_REG(DMA_BASE_ADDR + 0x004)
01069 #define GPDMA_INT_TCCLR        LONG_REG(DMA_BASE_ADDR + 0x008)
01070 #define GPDMA_INT_ERR_STAT     LONG_REG(DMA_BASE_ADDR + 0x00C)
01071 #define GPDMA_INT_ERR_CLR      LONG_REG(DMA_BASE_ADDR + 0x010)
01072 #define GPDMA_RAW_INT_TCSTAT   LONG_REG(DMA_BASE_ADDR + 0x014)
01073 #define GPDMA_RAW_INT_ERR_STAT LONG_REG(DMA_BASE_ADDR + 0x018)
01074 #define GPDMA_ENABLED_CHNS     LONG_REG(DMA_BASE_ADDR + 0x01C)
01075 #define GPDMA_SOFT_BREQ        LONG_REG(DMA_BASE_ADDR + 0x020)
01076 #define GPDMA_SOFT_SREQ        LONG_REG(DMA_BASE_ADDR + 0x024)
01077 #define GPDMA_SOFT_LBREQ       LONG_REG(DMA_BASE_ADDR + 0x028)
01078 #define GPDMA_SOFT_LSREQ       LONG_REG(DMA_BASE_ADDR + 0x02C)
01079 #define GPDMA_CONFIG           LONG_REG(DMA_BASE_ADDR + 0x030)
01080 #define GPDMA_SYNC             LONG_REG(DMA_BASE_ADDR + 0x034)
01081 
01082 /* DMA channel 0 registers */
01083 #define GPDMA_CH0_SRC      LONG_REG(DMA_BASE_ADDR + 0x100)
01084 #define GPDMA_CH0_DEST     LONG_REG(DMA_BASE_ADDR + 0x104)
01085 #define GPDMA_CH0_LLI      LONG_REG(DMA_BASE_ADDR + 0x108)
01086 #define GPDMA_CH0_CTRL     LONG_REG(DMA_BASE_ADDR + 0x10C)
01087 #define GPDMA_CH0_CFG      LONG_REG(DMA_BASE_ADDR + 0x110)
01088 
01089 /* DMA channel 1 registers */
01090 #define GPDMA_CH1_SRC      LONG_REG(DMA_BASE_ADDR + 0x120)
01091 #define GPDMA_CH1_DEST     LONG_REG(DMA_BASE_ADDR + 0x124)
01092 #define GPDMA_CH1_LLI      LONG_REG(DMA_BASE_ADDR + 0x128)
01093 #define GPDMA_CH1_CTRL     LONG_REG(DMA_BASE_ADDR + 0x12C)
01094 #define GPDMA_CH1_CFG      LONG_REG(DMA_BASE_ADDR + 0x130)
01095 
01096 
01097 /* USB Controller */
01098 #define USB_INT_BASE_ADDR       0xE01FC1C0
01099 #define USB_BASE_ADDR           0xFFE0C200              /* USB Base Address */
01100 
01101 #define USB_INT_STAT    LONG_REG(USB_INT_BASE_ADDR + 0x00)
01102 
01103 /* USB Device Interrupt Registers */
01104 #define DEV_INT_STAT    LONG_REG(USB_BASE_ADDR + 0x00)
01105 #define DEV_INT_EN      LONG_REG(USB_BASE_ADDR + 0x04)
01106 #define DEV_INT_CLR     LONG_REG(USB_BASE_ADDR + 0x08)
01107 #define DEV_INT_SET     LONG_REG(USB_BASE_ADDR + 0x0C)
01108 #define DEV_INT_PRIO    LONG_REG(USB_BASE_ADDR + 0x2C)
01109 
01110 /* USB Device Endpoint Interrupt Registers */
01111 #define EP_INT_STAT     LONG_REG(USB_BASE_ADDR + 0x30)
01112 #define EP_INT_EN       LONG_REG(USB_BASE_ADDR + 0x34)
01113 #define EP_INT_CLR      LONG_REG(USB_BASE_ADDR + 0x38)
01114 #define EP_INT_SET      LONG_REG(USB_BASE_ADDR + 0x3C)
01115 #define EP_INT_PRIO     LONG_REG(USB_BASE_ADDR + 0x40)
01116 
01117 /* USB Device Endpoint Realization Registers */
01118 #define REALIZE_EP      LONG_REG(USB_BASE_ADDR + 0x44)
01119 #define EP_INDEX        LONG_REG(USB_BASE_ADDR + 0x48)
01120 #define MAXPACKET_SIZE  LONG_REG(USB_BASE_ADDR + 0x4C)
01121 
01122 /* USB Device Command Reagisters */
01123 #define CMD_CODE        LONG_REG(USB_BASE_ADDR + 0x10)
01124 #define CMD_DATA        LONG_REG(USB_BASE_ADDR + 0x14)
01125 
01126 /* USB Device Data Transfer Registers */
01127 #define RX_DATA         LONG_REG(USB_BASE_ADDR + 0x18)
01128 #define TX_DATA         LONG_REG(USB_BASE_ADDR + 0x1C)
01129 #define RX_PLENGTH      LONG_REG(USB_BASE_ADDR + 0x20)
01130 #define TX_PLENGTH      LONG_REG(USB_BASE_ADDR + 0x24)
01131 #define USB_CTRL        LONG_REG(USB_BASE_ADDR + 0x28)
01132 
01133 /* USB Device DMA Registers */
01134 #define DMA_REQ_STAT        LONG_REG(USB_BASE_ADDR + 0x50)
01135 #define DMA_REQ_CLR         LONG_REG(USB_BASE_ADDR + 0x54)
01136 #define DMA_REQ_SET         LONG_REG(USB_BASE_ADDR + 0x58)
01137 #define UDCA_HEAD           LONG_REG(USB_BASE_ADDR + 0x80)
01138 #define EP_DMA_STAT         LONG_REG(USB_BASE_ADDR + 0x84)
01139 #define EP_DMA_EN           LONG_REG(USB_BASE_ADDR + 0x88)
01140 #define EP_DMA_DIS          LONG_REG(USB_BASE_ADDR + 0x8C)
01141 #define DMA_INT_STAT        LONG_REG(USB_BASE_ADDR + 0x90)
01142 #define DMA_INT_EN          LONG_REG(USB_BASE_ADDR + 0x94)
01143 #define EOT_INT_STAT        LONG_REG(USB_BASE_ADDR + 0xA0)
01144 #define EOT_INT_CLR         LONG_REG(USB_BASE_ADDR + 0xA4)
01145 #define EOT_INT_SET         LONG_REG(USB_BASE_ADDR + 0xA8)
01146 #define NDD_REQ_INT_STAT    LONG_REG(USB_BASE_ADDR + 0xAC)
01147 #define NDD_REQ_INT_CLR     LONG_REG(USB_BASE_ADDR + 0xB0)
01148 #define NDD_REQ_INT_SET     LONG_REG(USB_BASE_ADDR + 0xB4)
01149 #define SYS_ERR_INT_STAT    LONG_REG(USB_BASE_ADDR + 0xB8)
01150 #define SYS_ERR_INT_CLR     LONG_REG(USB_BASE_ADDR + 0xBC)
01151 #define SYS_ERR_INT_SET     LONG_REG(USB_BASE_ADDR + 0xC0)
01152 
01153 /* USB Host and OTG registers are for LPC24xx only */
01154 /* USB Host Controller */
01155 #define USBHC_BASE_ADDR         0xFFE0C000
01156 #define HC_REVISION         LONG_REG(USBHC_BASE_ADDR + 0x00)
01157 #define HC_CONTROL          LONG_REG(USBHC_BASE_ADDR + 0x04)
01158 #define HC_CMD_STAT         LONG_REG(USBHC_BASE_ADDR + 0x08)
01159 #define HC_INT_STAT         LONG_REG(USBHC_BASE_ADDR + 0x0C)
01160 #define HC_INT_EN           LONG_REG(USBHC_BASE_ADDR + 0x10)
01161 #define HC_INT_DIS          LONG_REG(USBHC_BASE_ADDR + 0x14)
01162 #define HC_HCCA             LONG_REG(USBHC_BASE_ADDR + 0x18)
01163 #define HC_PERIOD_CUR_ED    LONG_REG(USBHC_BASE_ADDR + 0x1C)
01164 #define HC_CTRL_HEAD_ED     LONG_REG(USBHC_BASE_ADDR + 0x20)
01165 #define HC_CTRL_CUR_ED      LONG_REG(USBHC_BASE_ADDR + 0x24)
01166 #define HC_BULK_HEAD_ED     LONG_REG(USBHC_BASE_ADDR + 0x28)
01167 #define HC_BULK_CUR_ED      LONG_REG(USBHC_BASE_ADDR + 0x2C)
01168 #define HC_DONE_HEAD        LONG_REG(USBHC_BASE_ADDR + 0x30)
01169 #define HC_FM_INTERVAL      LONG_REG(USBHC_BASE_ADDR + 0x34)
01170 #define HC_FM_REMAINING     LONG_REG(USBHC_BASE_ADDR + 0x38)
01171 #define HC_FM_NUMBER        LONG_REG(USBHC_BASE_ADDR + 0x3C)
01172 #define HC_PERIOD_START     LONG_REG(USBHC_BASE_ADDR + 0x40)
01173 #define HC_LS_THRHLD        LONG_REG(USBHC_BASE_ADDR + 0x44)
01174 #define HC_RH_DESCA         LONG_REG(USBHC_BASE_ADDR + 0x48)
01175 #define HC_RH_DESCB         LONG_REG(USBHC_BASE_ADDR + 0x4C)
01176 #define HC_RH_STAT          LONG_REG(USBHC_BASE_ADDR + 0x50)
01177 #define HC_RH_PORT_STAT1    LONG_REG(USBHC_BASE_ADDR + 0x54)
01178 #define HC_RH_PORT_STAT2    LONG_REG(USBHC_BASE_ADDR + 0x58)
01179 
01180 /* USB OTG Controller */
01181 #define USBOTG_BASE_ADDR        0xFFE0C100
01182 #define OTG_INT_STAT        LONG_REG(USBOTG_BASE_ADDR + 0x00)
01183 #define OTG_INT_EN          LONG_REG(USBOTG_BASE_ADDR + 0x04)
01184 #define OTG_INT_SET         LONG_REG(USBOTG_BASE_ADDR + 0x08)
01185 #define OTG_INT_CLR         LONG_REG(USBOTG_BASE_ADDR + 0x0C)
01186 /* On LPC23xx, the name is USBPortSel, on LPC24xx, the name is OTG_STAT_CTRL */
01187 #define OTG_STAT_CTRL       LONG_REG(USBOTG_BASE_ADDR + 0x10)
01188 #define OTG_TIMER           LONG_REG(USBOTG_BASE_ADDR + 0x14)
01189 
01190 #define USBOTG_I2C_BASE_ADDR    0xFFE0C300
01191 #define OTG_I2C_RX          LONG_REG(USBOTG_I2C_BASE_ADDR + 0x00)
01192 #define OTG_I2C_TX          LONG_REG(USBOTG_I2C_BASE_ADDR + 0x00)
01193 #define OTG_I2C_STS         LONG_REG(USBOTG_I2C_BASE_ADDR + 0x04)
01194 #define OTG_I2C_CTL         LONG_REG(USBOTG_I2C_BASE_ADDR + 0x08)
01195 #define OTG_I2C_CLKHI       LONG_REG(USBOTG_I2C_BASE_ADDR + 0x0C)
01196 #define OTG_I2C_CLKLO       LONG_REG(USBOTG_I2C_BASE_ADDR + 0x10)
01197 
01198 /* On LPC23xx, the names are USBClkCtrl and USBClkSt; on LPC24xx, the names are
01199 OTG_CLK_CTRL and OTG_CLK_STAT respectively. */
01200 #define USBOTG_CLK_BASE_ADDR    0xFFE0CFF0
01201 #define OTG_CLK_CTRL        LONG_REG(USBOTG_CLK_BASE_ADDR + 0x04)
01202 #define OTG_CLK_STAT        LONG_REG(USBOTG_CLK_BASE_ADDR + 0x08)
01203 
01204 /* Note: below three register name convention is for LPC23xx USB device only, match
01205 with the spec. update in USB Device Section. */
01206 #define USBPortSel          LONG_REG(USBOTG_BASE_ADDR + 0x10)
01207 #define USBClkCtrl          LONG_REG(USBOTG_CLK_BASE_ADDR + 0x04)
01208 #define USBClkSt            LONG_REG(USBOTG_CLK_BASE_ADDR + 0x08)
01209 
01210 /* Ethernet MAC (32 bit data bus) -- all registers are RW unless indicated in parentheses */
01211 #define MAC_BASE_ADDR           0xFFE00000 /* AHB Peripheral # 0 */
01212 #define MAC_MAC1            LONG_REG(MAC_BASE_ADDR + 0x000) /* MAC config reg 1 */
01213 #define MAC_MAC2            LONG_REG(MAC_BASE_ADDR + 0x004) /* MAC config reg 2 */
01214 #define MAC_IPGT            LONG_REG(MAC_BASE_ADDR + 0x008) /* b2b InterPacketGap reg */
01215 #define MAC_IPGR            LONG_REG(MAC_BASE_ADDR + 0x00C) /* non b2b InterPacketGap reg */
01216 #define MAC_CLRT            LONG_REG(MAC_BASE_ADDR + 0x010) /* CoLlision window/ReTry reg */
01217 #define MAC_MAXF            LONG_REG(MAC_BASE_ADDR + 0x014) /* MAXimum Frame reg */
01218 #define MAC_SUPP            LONG_REG(MAC_BASE_ADDR + 0x018) /* PHY SUPPort reg */
01219 #define MAC_TEST            LONG_REG(MAC_BASE_ADDR + 0x01C) /* TEST reg */
01220 #define MAC_MCFG            LONG_REG(MAC_BASE_ADDR + 0x020) /* MII Mgmt ConFiG reg */
01221 #define MAC_MCMD            LONG_REG(MAC_BASE_ADDR + 0x024) /* MII Mgmt CoMmanD reg */
01222 #define MAC_MADR            LONG_REG(MAC_BASE_ADDR + 0x028) /* MII Mgmt ADdRess reg */
01223 #define MAC_MWTD            LONG_REG(MAC_BASE_ADDR + 0x02C) /* MII Mgmt WriTe Data reg (WO) */
01224 #define MAC_MRDD            LONG_REG(MAC_BASE_ADDR + 0x030) /* MII Mgmt ReaD Data reg (RO) */
01225 #define MAC_MIND            LONG_REG(MAC_BASE_ADDR + 0x034) /* MII Mgmt INDicators reg (RO) */
01226 
01227 #define MAC_SA0             LONG_REG(MAC_BASE_ADDR + 0x040) /* Station Address 0 reg */
01228 #define MAC_SA1             LONG_REG(MAC_BASE_ADDR + 0x044) /* Station Address 1 reg */
01229 #define MAC_SA2             LONG_REG(MAC_BASE_ADDR + 0x048) /* Station Address 2 reg */
01230 
01231 #define MAC_COMMAND         LONG_REG(MAC_BASE_ADDR + 0x100) /* Command reg */
01232 #define MAC_STATUS          LONG_REG(MAC_BASE_ADDR + 0x104) /* Status reg (RO) */
01233 #define MAC_RXDESCRIPTOR    LONG_REG(MAC_BASE_ADDR + 0x108) /* Rx descriptor base address reg */
01234 #define MAC_RXSTATUS        LONG_REG(MAC_BASE_ADDR + 0x10C) /* Rx status base address reg */
01235 #define MAC_RXDESCRIPTORNUM LONG_REG(MAC_BASE_ADDR + 0x110) /* Rx number of descriptors reg */
01236 #define MAC_RXPRODUCEINDEX  LONG_REG(MAC_BASE_ADDR + 0x114) /* Rx produce index reg (RO) */
01237 #define MAC_RXCONSUMEINDEX  LONG_REG(MAC_BASE_ADDR + 0x118) /* Rx consume index reg */
01238 #define MAC_TXDESCRIPTOR    LONG_REG(MAC_BASE_ADDR + 0x11C) /* Tx descriptor base address reg */
01239 #define MAC_TXSTATUS        LONG_REG(MAC_BASE_ADDR + 0x120) /* Tx status base address reg */
01240 #define MAC_TXDESCRIPTORNUM LONG_REG(MAC_BASE_ADDR + 0x124) /* Tx number of descriptors reg */
01241 #define MAC_TXPRODUCEINDEX  LONG_REG(MAC_BASE_ADDR + 0x128) /* Tx produce index reg */
01242 #define MAC_TXCONSUMEINDEX  LONG_REG(MAC_BASE_ADDR + 0x12C) /* Tx consume index reg (RO) */
01243 
01244 #define MAC_TSV0            LONG_REG(MAC_BASE_ADDR + 0x158) /* Tx status vector 0 reg (RO) */
01245 #define MAC_TSV1            LONG_REG(MAC_BASE_ADDR + 0x15C) /* Tx status vector 1 reg (RO) */
01246 #define MAC_RSV             LONG_REG(MAC_BASE_ADDR + 0x160) /* Rx status vector reg (RO) */
01247 
01248 #define MAC_FLOWCONTROLCNT  LONG_REG(MAC_BASE_ADDR + 0x170) /* Flow control counter reg */
01249 #define MAC_FLOWCONTROLSTS  LONG_REG(MAC_BASE_ADDR + 0x174) /* Flow control status reg */
01250 
01251 #define MAC_RXFILTERCTRL    LONG_REG(MAC_BASE_ADDR + 0x200) /* Rx filter ctrl reg */
01252 #define MAC_RXFILTERWOLSTS  LONG_REG(MAC_BASE_ADDR + 0x204) /* Rx filter WoL status reg (RO) */
01253 #define MAC_RXFILTERWOLCLR  LONG_REG(MAC_BASE_ADDR + 0x208) /* Rx filter WoL clear reg (WO) */
01254 
01255 #define MAC_HASHFILTERL     LONG_REG(MAC_BASE_ADDR + 0x210) /* Hash filter LSBs reg */
01256 #define MAC_HASHFILTERH     LONG_REG(MAC_BASE_ADDR + 0x214) /* Hash filter MSBs reg */
01257 
01258 #define MAC_INTSTATUS       LONG_REG(MAC_BASE_ADDR + 0xFE0) /* Interrupt status reg (RO) */
01259 #define MAC_INTENABLE       LONG_REG(MAC_BASE_ADDR + 0xFE4) /* Interrupt enable reg  */
01260 #define MAC_INTCLEAR        LONG_REG(MAC_BASE_ADDR + 0xFE8) /* Interrupt clear reg (WO) */
01261 #define MAC_INTSET          LONG_REG(MAC_BASE_ADDR + 0xFEC) /* Interrupt set reg (WO) */
01262 
01263 #define MAC_POWERDOWN       LONG_REG(MAC_BASE_ADDR + 0xFF4) /* Power-down reg */
01264 #define MAC_MODULEID        LONG_REG(MAC_BASE_ADDR + 0xFFC) /* Module ID reg (RO) */
01265 
01266 
01267 /* Some bit-mask definitions - mthomas */
01268 
01269 /* Timers */
01270 #define TxIR_MR0_Interrupt (1UL<<0)
01271 #define TxIR_MR1_Interrupt (1UL<<1)
01272 #define TxIR_MR2_Interrupt (1UL<<2)
01273 #define TxIR_MR3_Interrupt (1UL<<3)
01274 #define TxIR_CR0_Interrupt (1UL<<4)
01275 #define TxIR_CR1_Interrupt (1UL<<5)
01276 #define TxIR_CR2_Interrupt (1UL<<6)
01277 #define TxIR_CR3_Interrupt (1UL<<7)
01278 
01279 #define TxTCR_Counter_Enable (1UL<<0)
01280 #define TxTCR_Counter_Reset  (1UL<<1)
01281 
01282 #define TxMCR_MR0I  (1UL<<0)
01283 #define TxMCR_MR0R  (1UL<<1)
01284 #define TxMCR_MR0S  (1UL<<2)
01285 #define TxMCR_MR1I  (1UL<<3)
01286 #define TxMCR_MR1R  (1UL<<4)
01287 #define TxMCR_MR1S  (1UL<<5)
01288 #define TxMCR_MR2I  (1UL<<6)
01289 #define TxMCR_MR2R  (1UL<<7)
01290 #define TxMCR_MR2S  (1UL<<8)
01291 #define TxMCR_MR3I  (1UL<<9)
01292 #define TxMCR_MR3R  (1UL<<10)
01293 #define TxMCR_MR3S  (1UL<<11)
01294 
01295 /* VIC */
01296 #define VIC_CHAN_NUM_WDT      0
01297 #define VIC_CHAN_NUM_UNUSED   1
01298 #define VIC_CHAN_NUM_ARM_Core_DgbCommRX 2
01299 #define VIC_CHAN_NUM_ARM_Core_DbgCommTX 3
01300 #define VIC_CHAN_NUM_Timer0   4
01301 #define VIC_CHAN_NUM_Timer1   5
01302 #define VIC_CHAN_NUM_UART0    6
01303 #define VIC_CHAN_NUM_UART1    7
01304 #define VIC_CHAN_NUM_PWM1     8
01305 #define VIC_CHAN_NUM_I2C0     9
01306 #define VIC_CHAN_NUM_SPI     10
01307 #define VIC_CHAN_NUM_SSP0    10
01308 #define VIC_CHAN_NUM_SSP1    11
01309 #define VIC_CHAN_NUM_PLL     12
01310 #define VIC_CHAN_NUM_RTC     13
01311 #define VIC_CHAN_NUM_EINT0   14
01312 #define VIC_CHAN_NUM_EINT1   15
01313 #define VIC_CHAN_NUM_EINT2   16
01314 #define VIC_CHAN_NUM_EINT3   17
01315 #define VIC_CHAN_NUM_ADC0    18
01316 #define VIC_CHAN_NUM_I2C1    19
01317 #define VIC_CHAN_NUM_BOD     20
01318 #define VIC_CHAN_NUM_Ethernet 21
01319 #define VIC_CHAN_NUM_USB     22
01320 #define VIC_CHAN_NUM_CAN     23
01321 #define VIC_CHAN_NUM_SD_MMC  24
01322 #define VIC_CHAN_NUM_GP_DMA  25
01323 #define VIC_CHAN_NUM_Timer2  26
01324 #define VIC_CHAN_NUM_Timer3  27
01325 #define VIC_CHAN_NUM_UART2   28
01326 #define VIC_CHAN_NUM_UART3   29
01327 #define VIC_CHAN_NUM_I2C2    30
01328 #define VIC_CHAN_NUM_I2S     31
01329 
01330 #define VIC_CHAN_TO_MASK(vctm_chan_num__) (1UL<<vctm_chan_num__)
01331 
01332 #endif  /* __LPC23xx_H */
01333 

Generated on Fri Apr 22 06:54:11 2011 for SFB by doxygen 1.5.9