1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (c) 2006-2018, RT-Thread Development Team 3*10465441SEvalZero * 4*10465441SEvalZero * SPDX-License-Identifier: Apache-2.0 5*10465441SEvalZero * 6*10465441SEvalZero * Change Logs: 7*10465441SEvalZero * Date Author Notes 8*10465441SEvalZero * 2008-12-11 xuxinming first version 9*10465441SEvalZero */ 10*10465441SEvalZero 11*10465441SEvalZero #ifndef __LPC24xx_H 12*10465441SEvalZero #define __LPC24xx_H 13*10465441SEvalZero 14*10465441SEvalZero #ifdef __cplusplus 15*10465441SEvalZero extern "C" { 16*10465441SEvalZero #endif 17*10465441SEvalZero 18*10465441SEvalZero #define USERMODE 0x10 19*10465441SEvalZero #define FIQMODE 0x11 20*10465441SEvalZero #define IRQMODE 0x12 21*10465441SEvalZero #define SVCMODE 0x13 22*10465441SEvalZero #define ABORTMODE 0x17 23*10465441SEvalZero #define UNDEFMODE 0x1b 24*10465441SEvalZero #define MODEMASK 0x1f 25*10465441SEvalZero #define NOINT 0xc0 26*10465441SEvalZero 27*10465441SEvalZero #define MCLK (72000000) 28*10465441SEvalZero 29*10465441SEvalZero /* Vectored Interrupt Controller (VIC) */ 30*10465441SEvalZero #define VIC_BASE_ADDR 0xFFFFF000 31*10465441SEvalZero #define VICIRQStatus (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x000)) 32*10465441SEvalZero #define VICFIQStatus (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x004)) 33*10465441SEvalZero #define VICRawIntr (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x008)) 34*10465441SEvalZero #define VICIntSelect (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x00C)) 35*10465441SEvalZero #define VICIntEnable (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x010)) 36*10465441SEvalZero #define VICIntEnClr (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x014)) 37*10465441SEvalZero #define VICSoftInt (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x018)) 38*10465441SEvalZero #define VICSoftIntClr (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x01C)) 39*10465441SEvalZero #define VICProtection (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x020)) 40*10465441SEvalZero #define VICSWPrioMask (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x024)) 41*10465441SEvalZero 42*10465441SEvalZero #define VICVectAddr0 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x100)) 43*10465441SEvalZero #define VICVectAddr1 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x104)) 44*10465441SEvalZero #define VICVectAddr2 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x108)) 45*10465441SEvalZero #define VICVectAddr3 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x10C)) 46*10465441SEvalZero #define VICVectAddr4 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x110)) 47*10465441SEvalZero #define VICVectAddr5 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x114)) 48*10465441SEvalZero #define VICVectAddr6 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x118)) 49*10465441SEvalZero #define VICVectAddr7 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x11C)) 50*10465441SEvalZero #define VICVectAddr8 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x120)) 51*10465441SEvalZero #define VICVectAddr9 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x124)) 52*10465441SEvalZero #define VICVectAddr10 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x128)) 53*10465441SEvalZero #define VICVectAddr11 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x12C)) 54*10465441SEvalZero #define VICVectAddr12 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x130)) 55*10465441SEvalZero #define VICVectAddr13 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x134)) 56*10465441SEvalZero #define VICVectAddr14 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x138)) 57*10465441SEvalZero #define VICVectAddr15 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x13C)) 58*10465441SEvalZero #define VICVectAddr16 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x140)) 59*10465441SEvalZero #define VICVectAddr17 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x144)) 60*10465441SEvalZero #define VICVectAddr18 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x148)) 61*10465441SEvalZero #define VICVectAddr19 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x14C)) 62*10465441SEvalZero #define VICVectAddr20 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x150)) 63*10465441SEvalZero #define VICVectAddr21 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x154)) 64*10465441SEvalZero #define VICVectAddr22 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x158)) 65*10465441SEvalZero #define VICVectAddr23 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x15C)) 66*10465441SEvalZero #define VICVectAddr24 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x160)) 67*10465441SEvalZero #define VICVectAddr25 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x164)) 68*10465441SEvalZero #define VICVectAddr26 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x168)) 69*10465441SEvalZero #define VICVectAddr27 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x16C)) 70*10465441SEvalZero #define VICVectAddr28 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x170)) 71*10465441SEvalZero #define VICVectAddr29 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x174)) 72*10465441SEvalZero #define VICVectAddr30 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x178)) 73*10465441SEvalZero #define VICVectAddr31 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x17C)) 74*10465441SEvalZero 75*10465441SEvalZero /* The name convention below is from previous LPC2000 family MCUs, in LPC23xx/24xx, 76*10465441SEvalZero these registers are known as "VICVectPriority(x)". */ 77*10465441SEvalZero #define VICVectCntl0 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x200)) 78*10465441SEvalZero #define VICVectCntl1 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x204)) 79*10465441SEvalZero #define VICVectCntl2 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x208)) 80*10465441SEvalZero #define VICVectCntl3 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x20C)) 81*10465441SEvalZero #define VICVectCntl4 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x210)) 82*10465441SEvalZero #define VICVectCntl5 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x214)) 83*10465441SEvalZero #define VICVectCntl6 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x218)) 84*10465441SEvalZero #define VICVectCntl7 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x21C)) 85*10465441SEvalZero #define VICVectCntl8 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x220)) 86*10465441SEvalZero #define VICVectCntl9 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x224)) 87*10465441SEvalZero #define VICVectCntl10 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x228)) 88*10465441SEvalZero #define VICVectCntl11 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x22C)) 89*10465441SEvalZero #define VICVectCntl12 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x230)) 90*10465441SEvalZero #define VICVectCntl13 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x234)) 91*10465441SEvalZero #define VICVectCntl14 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x238)) 92*10465441SEvalZero #define VICVectCntl15 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x23C)) 93*10465441SEvalZero #define VICVectCntl16 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x240)) 94*10465441SEvalZero #define VICVectCntl17 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x244)) 95*10465441SEvalZero #define VICVectCntl18 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x248)) 96*10465441SEvalZero #define VICVectCntl19 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x24C)) 97*10465441SEvalZero #define VICVectCntl20 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x250)) 98*10465441SEvalZero #define VICVectCntl21 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x254)) 99*10465441SEvalZero #define VICVectCntl22 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x258)) 100*10465441SEvalZero #define VICVectCntl23 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x25C)) 101*10465441SEvalZero #define VICVectCntl24 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x260)) 102*10465441SEvalZero #define VICVectCntl25 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x264)) 103*10465441SEvalZero #define VICVectCntl26 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x268)) 104*10465441SEvalZero #define VICVectCntl27 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x26C)) 105*10465441SEvalZero #define VICVectCntl28 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x270)) 106*10465441SEvalZero #define VICVectCntl29 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x274)) 107*10465441SEvalZero #define VICVectCntl30 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x278)) 108*10465441SEvalZero #define VICVectCntl31 (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x27C)) 109*10465441SEvalZero 110*10465441SEvalZero #define VICVectAddr (*(volatile unsigned long *)(VIC_BASE_ADDR + 0xF00)) 111*10465441SEvalZero 112*10465441SEvalZero 113*10465441SEvalZero /* Pin Connect Block */ 114*10465441SEvalZero #define PINSEL_BASE_ADDR 0xE002C000 115*10465441SEvalZero #define PINSEL0 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x00)) 116*10465441SEvalZero #define PINSEL1 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x04)) 117*10465441SEvalZero #define PINSEL2 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x08)) 118*10465441SEvalZero #define PINSEL3 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x0C)) 119*10465441SEvalZero #define PINSEL4 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x10)) 120*10465441SEvalZero #define PINSEL5 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x14)) 121*10465441SEvalZero #define PINSEL6 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x18)) 122*10465441SEvalZero #define PINSEL7 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x1C)) 123*10465441SEvalZero #define PINSEL8 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x20)) 124*10465441SEvalZero #define PINSEL9 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x24)) 125*10465441SEvalZero #define PINSEL10 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x28)) 126*10465441SEvalZero #define PINSEL11 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x2C)) 127*10465441SEvalZero 128*10465441SEvalZero #define PINMODE0 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x40)) 129*10465441SEvalZero #define PINMODE1 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x44)) 130*10465441SEvalZero #define PINMODE2 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x48)) 131*10465441SEvalZero #define PINMODE3 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x4C)) 132*10465441SEvalZero #define PINMODE4 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x50)) 133*10465441SEvalZero #define PINMODE5 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x54)) 134*10465441SEvalZero #define PINMODE6 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x58)) 135*10465441SEvalZero #define PINMODE7 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x5C)) 136*10465441SEvalZero #define PINMODE8 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x60)) 137*10465441SEvalZero #define PINMODE9 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x64)) 138*10465441SEvalZero 139*10465441SEvalZero /* General Purpose Input/Output (GPIO) */ 140*10465441SEvalZero #define GPIO_BASE_ADDR 0xE0028000 141*10465441SEvalZero #define IOPIN0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x00)) 142*10465441SEvalZero #define IOSET0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x04)) 143*10465441SEvalZero #define IODIR0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x08)) 144*10465441SEvalZero #define IOCLR0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x0C)) 145*10465441SEvalZero #define IOPIN1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x10)) 146*10465441SEvalZero #define IOSET1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x14)) 147*10465441SEvalZero #define IODIR1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x18)) 148*10465441SEvalZero #define IOCLR1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x1C)) 149*10465441SEvalZero 150*10465441SEvalZero /* GPIO Interrupt Registers */ 151*10465441SEvalZero #define IO0_INT_EN_R (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x90)) 152*10465441SEvalZero #define IO0_INT_EN_F (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x94)) 153*10465441SEvalZero #define IO0_INT_STAT_R (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x84)) 154*10465441SEvalZero #define IO0_INT_STAT_F (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x88)) 155*10465441SEvalZero #define IO0_INT_CLR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x8C)) 156*10465441SEvalZero 157*10465441SEvalZero #define IO2_INT_EN_R (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xB0)) 158*10465441SEvalZero #define IO2_INT_EN_F (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xB4)) 159*10465441SEvalZero #define IO2_INT_STAT_R (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xA4)) 160*10465441SEvalZero #define IO2_INT_STAT_F (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xA8)) 161*10465441SEvalZero #define IO2_INT_CLR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xAC)) 162*10465441SEvalZero 163*10465441SEvalZero #define IO_INT_STAT (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x80)) 164*10465441SEvalZero 165*10465441SEvalZero #define PARTCFG_BASE_ADDR 0x3FFF8000 166*10465441SEvalZero #define PARTCFG (*(volatile unsigned long *)(PARTCFG_BASE_ADDR + 0x00)) 167*10465441SEvalZero 168*10465441SEvalZero /* Fast I/O setup */ 169*10465441SEvalZero #define FIO_BASE_ADDR 0x3FFFC000 170*10465441SEvalZero #define FIO0DIR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x00)) 171*10465441SEvalZero #define FIO0MASK (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x10)) 172*10465441SEvalZero #define FIO0PIN (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x14)) 173*10465441SEvalZero #define FIO0SET (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x18)) 174*10465441SEvalZero #define FIO0CLR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x1C)) 175*10465441SEvalZero 176*10465441SEvalZero #define FIO1DIR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x20)) 177*10465441SEvalZero #define FIO1MASK (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x30)) 178*10465441SEvalZero #define FIO1PIN (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x34)) 179*10465441SEvalZero #define FIO1SET (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x38)) 180*10465441SEvalZero #define FIO1CLR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x3C)) 181*10465441SEvalZero 182*10465441SEvalZero #define FIO2DIR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x40)) 183*10465441SEvalZero #define FIO2MASK (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x50)) 184*10465441SEvalZero #define FIO2PIN (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x54)) 185*10465441SEvalZero #define FIO2SET (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x58)) 186*10465441SEvalZero #define FIO2CLR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x5C)) 187*10465441SEvalZero 188*10465441SEvalZero #define FIO3DIR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x60)) 189*10465441SEvalZero #define FIO3MASK (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x70)) 190*10465441SEvalZero #define FIO3PIN (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x74)) 191*10465441SEvalZero #define FIO3SET (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x78)) 192*10465441SEvalZero #define FIO3CLR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x7C)) 193*10465441SEvalZero 194*10465441SEvalZero #define FIO4DIR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x80)) 195*10465441SEvalZero #define FIO4MASK (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x90)) 196*10465441SEvalZero #define FIO4PIN (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x94)) 197*10465441SEvalZero #define FIO4SET (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x98)) 198*10465441SEvalZero #define FIO4CLR (*(volatile unsigned long *)(FIO_BASE_ADDR + 0x9C)) 199*10465441SEvalZero 200*10465441SEvalZero /* FIOs can be accessed through WORD, HALF-WORD or BYTE. */ 201*10465441SEvalZero #define FIO0DIR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x00)) 202*10465441SEvalZero #define FIO1DIR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x20)) 203*10465441SEvalZero #define FIO2DIR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x40)) 204*10465441SEvalZero #define FIO3DIR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x60)) 205*10465441SEvalZero #define FIO4DIR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x80)) 206*10465441SEvalZero 207*10465441SEvalZero #define FIO0DIR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x01)) 208*10465441SEvalZero #define FIO1DIR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x21)) 209*10465441SEvalZero #define FIO2DIR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x41)) 210*10465441SEvalZero #define FIO3DIR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x61)) 211*10465441SEvalZero #define FIO4DIR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x81)) 212*10465441SEvalZero 213*10465441SEvalZero #define FIO0DIR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x02)) 214*10465441SEvalZero #define FIO1DIR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x22)) 215*10465441SEvalZero #define FIO2DIR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x42)) 216*10465441SEvalZero #define FIO3DIR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x62)) 217*10465441SEvalZero #define FIO4DIR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x82)) 218*10465441SEvalZero 219*10465441SEvalZero #define FIO0DIR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x03)) 220*10465441SEvalZero #define FIO1DIR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x23)) 221*10465441SEvalZero #define FIO2DIR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x43)) 222*10465441SEvalZero #define FIO3DIR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x63)) 223*10465441SEvalZero #define FIO4DIR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x83)) 224*10465441SEvalZero 225*10465441SEvalZero #define FIO0DIRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x00)) 226*10465441SEvalZero #define FIO1DIRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x20)) 227*10465441SEvalZero #define FIO2DIRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x40)) 228*10465441SEvalZero #define FIO3DIRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x60)) 229*10465441SEvalZero #define FIO4DIRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x80)) 230*10465441SEvalZero 231*10465441SEvalZero #define FIO0DIRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x02)) 232*10465441SEvalZero #define FIO1DIRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x22)) 233*10465441SEvalZero #define FIO2DIRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x42)) 234*10465441SEvalZero #define FIO3DIRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x62)) 235*10465441SEvalZero #define FIO4DIRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x82)) 236*10465441SEvalZero 237*10465441SEvalZero #define FIO0MASK0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x10)) 238*10465441SEvalZero #define FIO1MASK0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x30)) 239*10465441SEvalZero #define FIO2MASK0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x50)) 240*10465441SEvalZero #define FIO3MASK0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x70)) 241*10465441SEvalZero #define FIO4MASK0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x90)) 242*10465441SEvalZero 243*10465441SEvalZero #define FIO0MASK1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x11)) 244*10465441SEvalZero #define FIO1MASK1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x21)) 245*10465441SEvalZero #define FIO2MASK1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x51)) 246*10465441SEvalZero #define FIO3MASK1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x71)) 247*10465441SEvalZero #define FIO4MASK1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x91)) 248*10465441SEvalZero 249*10465441SEvalZero #define FIO0MASK2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x12)) 250*10465441SEvalZero #define FIO1MASK2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x32)) 251*10465441SEvalZero #define FIO2MASK2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x52)) 252*10465441SEvalZero #define FIO3MASK2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x72)) 253*10465441SEvalZero #define FIO4MASK2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x92)) 254*10465441SEvalZero 255*10465441SEvalZero #define FIO0MASK3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x13)) 256*10465441SEvalZero #define FIO1MASK3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x33)) 257*10465441SEvalZero #define FIO2MASK3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x53)) 258*10465441SEvalZero #define FIO3MASK3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x73)) 259*10465441SEvalZero #define FIO4MASK3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x93)) 260*10465441SEvalZero 261*10465441SEvalZero #define FIO0MASKL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x10)) 262*10465441SEvalZero #define FIO1MASKL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x30)) 263*10465441SEvalZero #define FIO2MASKL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x50)) 264*10465441SEvalZero #define FIO3MASKL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x70)) 265*10465441SEvalZero #define FIO4MASKL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x90)) 266*10465441SEvalZero 267*10465441SEvalZero #define FIO0MASKU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x12)) 268*10465441SEvalZero #define FIO1MASKU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x32)) 269*10465441SEvalZero #define FIO2MASKU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x52)) 270*10465441SEvalZero #define FIO3MASKU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x72)) 271*10465441SEvalZero #define FIO4MASKU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x92)) 272*10465441SEvalZero 273*10465441SEvalZero #define FIO0PIN0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x14)) 274*10465441SEvalZero #define FIO1PIN0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x34)) 275*10465441SEvalZero #define FIO2PIN0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x54)) 276*10465441SEvalZero #define FIO3PIN0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x74)) 277*10465441SEvalZero #define FIO4PIN0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x94)) 278*10465441SEvalZero 279*10465441SEvalZero #define FIO0PIN1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x15)) 280*10465441SEvalZero #define FIO1PIN1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x35)) 281*10465441SEvalZero #define FIO2PIN1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x55)) 282*10465441SEvalZero #define FIO3PIN1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x75)) 283*10465441SEvalZero #define FIO4PIN1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x95)) 284*10465441SEvalZero 285*10465441SEvalZero #define FIO0PIN2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x16)) 286*10465441SEvalZero #define FIO1PIN2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x36)) 287*10465441SEvalZero #define FIO2PIN2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x56)) 288*10465441SEvalZero #define FIO3PIN2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x76)) 289*10465441SEvalZero #define FIO4PIN2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x96)) 290*10465441SEvalZero 291*10465441SEvalZero #define FIO0PIN3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x17)) 292*10465441SEvalZero #define FIO1PIN3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x37)) 293*10465441SEvalZero #define FIO2PIN3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x57)) 294*10465441SEvalZero #define FIO3PIN3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x77)) 295*10465441SEvalZero #define FIO4PIN3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x97)) 296*10465441SEvalZero 297*10465441SEvalZero #define FIO0PINL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x14)) 298*10465441SEvalZero #define FIO1PINL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x34)) 299*10465441SEvalZero #define FIO2PINL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x54)) 300*10465441SEvalZero #define FIO3PINL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x74)) 301*10465441SEvalZero #define FIO4PINL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x94)) 302*10465441SEvalZero 303*10465441SEvalZero #define FIO0PINU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x16)) 304*10465441SEvalZero #define FIO1PINU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x36)) 305*10465441SEvalZero #define FIO2PINU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x56)) 306*10465441SEvalZero #define FIO3PINU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x76)) 307*10465441SEvalZero #define FIO4PINU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x96)) 308*10465441SEvalZero 309*10465441SEvalZero #define FIO0SET0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x18)) 310*10465441SEvalZero #define FIO1SET0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x38)) 311*10465441SEvalZero #define FIO2SET0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x58)) 312*10465441SEvalZero #define FIO3SET0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x78)) 313*10465441SEvalZero #define FIO4SET0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x98)) 314*10465441SEvalZero 315*10465441SEvalZero #define FIO0SET1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x19)) 316*10465441SEvalZero #define FIO1SET1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x29)) 317*10465441SEvalZero #define FIO2SET1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x59)) 318*10465441SEvalZero #define FIO3SET1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x79)) 319*10465441SEvalZero #define FIO4SET1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x99)) 320*10465441SEvalZero 321*10465441SEvalZero #define FIO0SET2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x1A)) 322*10465441SEvalZero #define FIO1SET2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x3A)) 323*10465441SEvalZero #define FIO2SET2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x5A)) 324*10465441SEvalZero #define FIO3SET2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x7A)) 325*10465441SEvalZero #define FIO4SET2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x9A)) 326*10465441SEvalZero 327*10465441SEvalZero #define FIO0SET3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x1B)) 328*10465441SEvalZero #define FIO1SET3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x3B)) 329*10465441SEvalZero #define FIO2SET3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x5B)) 330*10465441SEvalZero #define FIO3SET3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x7B)) 331*10465441SEvalZero #define FIO4SET3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x9B)) 332*10465441SEvalZero 333*10465441SEvalZero #define FIO0SETL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x18)) 334*10465441SEvalZero #define FIO1SETL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x38)) 335*10465441SEvalZero #define FIO2SETL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x58)) 336*10465441SEvalZero #define FIO3SETL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x78)) 337*10465441SEvalZero #define FIO4SETL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x98)) 338*10465441SEvalZero 339*10465441SEvalZero #define FIO0SETU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x1A)) 340*10465441SEvalZero #define FIO1SETU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x3A)) 341*10465441SEvalZero #define FIO2SETU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x5A)) 342*10465441SEvalZero #define FIO3SETU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x7A)) 343*10465441SEvalZero #define FIO4SETU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x9A)) 344*10465441SEvalZero 345*10465441SEvalZero #define FIO0CLR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x1C)) 346*10465441SEvalZero #define FIO1CLR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x3C)) 347*10465441SEvalZero #define FIO2CLR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x5C)) 348*10465441SEvalZero #define FIO3CLR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x7C)) 349*10465441SEvalZero #define FIO4CLR0 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x9C)) 350*10465441SEvalZero 351*10465441SEvalZero #define FIO0CLR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x1D)) 352*10465441SEvalZero #define FIO1CLR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x2D)) 353*10465441SEvalZero #define FIO2CLR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x5D)) 354*10465441SEvalZero #define FIO3CLR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x7D)) 355*10465441SEvalZero #define FIO4CLR1 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x9D)) 356*10465441SEvalZero 357*10465441SEvalZero #define FIO0CLR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x1E)) 358*10465441SEvalZero #define FIO1CLR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x3E)) 359*10465441SEvalZero #define FIO2CLR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x5E)) 360*10465441SEvalZero #define FIO3CLR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x7E)) 361*10465441SEvalZero #define FIO4CLR2 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x9E)) 362*10465441SEvalZero 363*10465441SEvalZero #define FIO0CLR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x1F)) 364*10465441SEvalZero #define FIO1CLR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x3F)) 365*10465441SEvalZero #define FIO2CLR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x5F)) 366*10465441SEvalZero #define FIO3CLR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x7F)) 367*10465441SEvalZero #define FIO4CLR3 (*(volatile unsigned char *)(FIO_BASE_ADDR + 0x9F)) 368*10465441SEvalZero 369*10465441SEvalZero #define FIO0CLRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x1C)) 370*10465441SEvalZero #define FIO1CLRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x3C)) 371*10465441SEvalZero #define FIO2CLRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x5C)) 372*10465441SEvalZero #define FIO3CLRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x7C)) 373*10465441SEvalZero #define FIO4CLRL (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x9C)) 374*10465441SEvalZero 375*10465441SEvalZero #define FIO0CLRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x1E)) 376*10465441SEvalZero #define FIO1CLRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x3E)) 377*10465441SEvalZero #define FIO2CLRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x5E)) 378*10465441SEvalZero #define FIO3CLRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x7E)) 379*10465441SEvalZero #define FIO4CLRU (*(volatile unsigned short *)(FIO_BASE_ADDR + 0x9E)) 380*10465441SEvalZero 381*10465441SEvalZero 382*10465441SEvalZero /* System Control Block(SCB) modules include Memory Accelerator Module, 383*10465441SEvalZero Phase Locked Loop, VPB divider, Power Control, External Interrupt, 384*10465441SEvalZero Reset, and Code Security/Debugging */ 385*10465441SEvalZero #define SCB_BASE_ADDR 0xE01FC000 386*10465441SEvalZero 387*10465441SEvalZero /* Memory Accelerator Module (MAM) */ 388*10465441SEvalZero #define MAMCR (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x000)) 389*10465441SEvalZero #define MAMTIM (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x004)) 390*10465441SEvalZero #define MEMMAP (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x040)) 391*10465441SEvalZero 392*10465441SEvalZero /* Phase Locked Loop (PLL) */ 393*10465441SEvalZero #define PLLCON (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x080)) 394*10465441SEvalZero #define PLLCFG (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x084)) 395*10465441SEvalZero #define PLLSTAT (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x088)) 396*10465441SEvalZero #define PLLFEED (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x08C)) 397*10465441SEvalZero 398*10465441SEvalZero /* Power Control */ 399*10465441SEvalZero #define PCON (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x0C0)) 400*10465441SEvalZero #define PCONP (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x0C4)) 401*10465441SEvalZero 402*10465441SEvalZero /* Clock Divider */ 403*10465441SEvalZero #define CCLKCFG (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x104)) 404*10465441SEvalZero #define USBCLKCFG (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x108)) 405*10465441SEvalZero #define CLKSRCSEL (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x10C)) 406*10465441SEvalZero #define PCLKSEL0 (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x1A8)) 407*10465441SEvalZero #define PCLKSEL1 (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x1AC)) 408*10465441SEvalZero 409*10465441SEvalZero /* External Interrupts */ 410*10465441SEvalZero #define EXTINT (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x140)) 411*10465441SEvalZero #define INTWAKE (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x144)) 412*10465441SEvalZero #define EXTMODE (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x148)) 413*10465441SEvalZero #define EXTPOLAR (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x14C)) 414*10465441SEvalZero 415*10465441SEvalZero /* Reset, reset source identification */ 416*10465441SEvalZero #define RSIR (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x180)) 417*10465441SEvalZero 418*10465441SEvalZero /* RSID, code security protection */ 419*10465441SEvalZero #define CSPR (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x184)) 420*10465441SEvalZero 421*10465441SEvalZero /* AHB configuration */ 422*10465441SEvalZero #define AHBCFG1 (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x188)) 423*10465441SEvalZero #define AHBCFG2 (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x18C)) 424*10465441SEvalZero 425*10465441SEvalZero /* System Controls and Status */ 426*10465441SEvalZero #define SCS (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x1A0)) 427*10465441SEvalZero 428*10465441SEvalZero /* MPMC(EMC) registers, note: all the external memory controller(EMC) registers 429*10465441SEvalZero are for LPC24xx only. */ 430*10465441SEvalZero #define STATIC_MEM0_BASE 0x80000000 431*10465441SEvalZero #define STATIC_MEM1_BASE 0x81000000 432*10465441SEvalZero #define STATIC_MEM2_BASE 0x82000000 433*10465441SEvalZero #define STATIC_MEM3_BASE 0x83000000 434*10465441SEvalZero 435*10465441SEvalZero #define DYNAMIC_MEM0_BASE 0xA0000000 436*10465441SEvalZero #define DYNAMIC_MEM1_BASE 0xB0000000 437*10465441SEvalZero #define DYNAMIC_MEM2_BASE 0xC0000000 438*10465441SEvalZero #define DYNAMIC_MEM3_BASE 0xD0000000 439*10465441SEvalZero 440*10465441SEvalZero /* External Memory Controller (EMC) */ 441*10465441SEvalZero #define EMC_BASE_ADDR 0xFFE08000 442*10465441SEvalZero #define EMC_CTRL (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x000)) 443*10465441SEvalZero #define EMC_STAT (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x004)) 444*10465441SEvalZero #define EMC_CONFIG (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x008)) 445*10465441SEvalZero 446*10465441SEvalZero /* Dynamic RAM access registers */ 447*10465441SEvalZero #define EMC_DYN_CTRL (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x020)) 448*10465441SEvalZero #define EMC_DYN_RFSH (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x024)) 449*10465441SEvalZero #define EMC_DYN_RD_CFG (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x028)) 450*10465441SEvalZero #define EMC_DYN_RP (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x030)) 451*10465441SEvalZero #define EMC_DYN_RAS (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x034)) 452*10465441SEvalZero #define EMC_DYN_SREX (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x038)) 453*10465441SEvalZero #define EMC_DYN_APR (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x03C)) 454*10465441SEvalZero #define EMC_DYN_DAL (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x040)) 455*10465441SEvalZero #define EMC_DYN_WR (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x044)) 456*10465441SEvalZero #define EMC_DYN_RC (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x048)) 457*10465441SEvalZero #define EMC_DYN_RFC (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x04C)) 458*10465441SEvalZero #define EMC_DYN_XSR (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x050)) 459*10465441SEvalZero #define EMC_DYN_RRD (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x054)) 460*10465441SEvalZero #define EMC_DYN_MRD (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x058)) 461*10465441SEvalZero 462*10465441SEvalZero #define EMC_DYN_CFG0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x100)) 463*10465441SEvalZero #define EMC_DYN_RASCAS0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x104)) 464*10465441SEvalZero #define EMC_DYN_CFG1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x140)) 465*10465441SEvalZero #define EMC_DYN_RASCAS1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x144)) 466*10465441SEvalZero #define EMC_DYN_CFG2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x160)) 467*10465441SEvalZero #define EMC_DYN_RASCAS2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x164)) 468*10465441SEvalZero #define EMC_DYN_CFG3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x180)) 469*10465441SEvalZero #define EMC_DYN_RASCAS3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x184)) 470*10465441SEvalZero 471*10465441SEvalZero /* static RAM access registers */ 472*10465441SEvalZero #define EMC_STA_CFG0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x200)) 473*10465441SEvalZero #define EMC_STA_WAITWEN0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x204)) 474*10465441SEvalZero #define EMC_STA_WAITOEN0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x208)) 475*10465441SEvalZero #define EMC_STA_WAITRD0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x20C)) 476*10465441SEvalZero #define EMC_STA_WAITPAGE0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x210)) 477*10465441SEvalZero #define EMC_STA_WAITWR0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x214)) 478*10465441SEvalZero #define EMC_STA_WAITTURN0 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x218)) 479*10465441SEvalZero 480*10465441SEvalZero #define EMC_STA_CFG1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x220)) 481*10465441SEvalZero #define EMC_STA_WAITWEN1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x224)) 482*10465441SEvalZero #define EMC_STA_WAITOEN1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x228)) 483*10465441SEvalZero #define EMC_STA_WAITRD1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x22C)) 484*10465441SEvalZero #define EMC_STA_WAITPAGE1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x230)) 485*10465441SEvalZero #define EMC_STA_WAITWR1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x234)) 486*10465441SEvalZero #define EMC_STA_WAITTURN1 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x238)) 487*10465441SEvalZero 488*10465441SEvalZero #define EMC_STA_CFG2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x240)) 489*10465441SEvalZero #define EMC_STA_WAITWEN2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x244)) 490*10465441SEvalZero #define EMC_STA_WAITOEN2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x248)) 491*10465441SEvalZero #define EMC_STA_WAITRD2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x24C)) 492*10465441SEvalZero #define EMC_STA_WAITPAGE2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x250)) 493*10465441SEvalZero #define EMC_STA_WAITWR2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x254)) 494*10465441SEvalZero #define EMC_STA_WAITTURN2 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x258)) 495*10465441SEvalZero 496*10465441SEvalZero #define EMC_STA_CFG3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x260)) 497*10465441SEvalZero #define EMC_STA_WAITWEN3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x264)) 498*10465441SEvalZero #define EMC_STA_WAITOEN3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x268)) 499*10465441SEvalZero #define EMC_STA_WAITRD3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x26C)) 500*10465441SEvalZero #define EMC_STA_WAITPAGE3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x270)) 501*10465441SEvalZero #define EMC_STA_WAITWR3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x274)) 502*10465441SEvalZero #define EMC_STA_WAITTURN3 (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x278)) 503*10465441SEvalZero 504*10465441SEvalZero #define EMC_STA_EXT_WAIT (*(volatile unsigned long *)(EMC_BASE_ADDR + 0x880)) 505*10465441SEvalZero 506*10465441SEvalZero 507*10465441SEvalZero /* Timer 0 */ 508*10465441SEvalZero #define TMR0_BASE_ADDR 0xE0004000 509*10465441SEvalZero #define T0IR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x00)) 510*10465441SEvalZero #define T0TCR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x04)) 511*10465441SEvalZero #define T0TC (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x08)) 512*10465441SEvalZero #define T0PR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x0C)) 513*10465441SEvalZero #define T0PC (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x10)) 514*10465441SEvalZero #define T0MCR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x14)) 515*10465441SEvalZero #define T0MR0 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x18)) 516*10465441SEvalZero #define T0MR1 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x1C)) 517*10465441SEvalZero #define T0MR2 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x20)) 518*10465441SEvalZero #define T0MR3 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x24)) 519*10465441SEvalZero #define T0CCR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x28)) 520*10465441SEvalZero #define T0CR0 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x2C)) 521*10465441SEvalZero #define T0CR1 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x30)) 522*10465441SEvalZero #define T0CR2 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x34)) 523*10465441SEvalZero #define T0CR3 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x38)) 524*10465441SEvalZero #define T0EMR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x3C)) 525*10465441SEvalZero #define T0CTCR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x70)) 526*10465441SEvalZero 527*10465441SEvalZero /* Timer 1 */ 528*10465441SEvalZero #define TMR1_BASE_ADDR 0xE0008000 529*10465441SEvalZero #define T1IR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x00)) 530*10465441SEvalZero #define T1TCR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x04)) 531*10465441SEvalZero #define T1TC (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x08)) 532*10465441SEvalZero #define T1PR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x0C)) 533*10465441SEvalZero #define T1PC (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x10)) 534*10465441SEvalZero #define T1MCR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x14)) 535*10465441SEvalZero #define T1MR0 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x18)) 536*10465441SEvalZero #define T1MR1 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x1C)) 537*10465441SEvalZero #define T1MR2 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x20)) 538*10465441SEvalZero #define T1MR3 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x24)) 539*10465441SEvalZero #define T1CCR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x28)) 540*10465441SEvalZero #define T1CR0 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x2C)) 541*10465441SEvalZero #define T1CR1 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x30)) 542*10465441SEvalZero #define T1CR2 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x34)) 543*10465441SEvalZero #define T1CR3 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x38)) 544*10465441SEvalZero #define T1EMR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x3C)) 545*10465441SEvalZero #define T1CTCR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x70)) 546*10465441SEvalZero 547*10465441SEvalZero /* Timer 2 */ 548*10465441SEvalZero #define TMR2_BASE_ADDR 0xE0070000 549*10465441SEvalZero #define T2IR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x00)) 550*10465441SEvalZero #define T2TCR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x04)) 551*10465441SEvalZero #define T2TC (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x08)) 552*10465441SEvalZero #define T2PR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x0C)) 553*10465441SEvalZero #define T2PC (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x10)) 554*10465441SEvalZero #define T2MCR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x14)) 555*10465441SEvalZero #define T2MR0 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x18)) 556*10465441SEvalZero #define T2MR1 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x1C)) 557*10465441SEvalZero #define T2MR2 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x20)) 558*10465441SEvalZero #define T2MR3 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x24)) 559*10465441SEvalZero #define T2CCR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x28)) 560*10465441SEvalZero #define T2CR0 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x2C)) 561*10465441SEvalZero #define T2CR1 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x30)) 562*10465441SEvalZero #define T2CR2 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x34)) 563*10465441SEvalZero #define T2CR3 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x38)) 564*10465441SEvalZero #define T2EMR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x3C)) 565*10465441SEvalZero #define T2CTCR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x70)) 566*10465441SEvalZero 567*10465441SEvalZero /* Timer 3 */ 568*10465441SEvalZero #define TMR3_BASE_ADDR 0xE0074000 569*10465441SEvalZero #define T3IR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x00)) 570*10465441SEvalZero #define T3TCR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x04)) 571*10465441SEvalZero #define T3TC (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x08)) 572*10465441SEvalZero #define T3PR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x0C)) 573*10465441SEvalZero #define T3PC (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x10)) 574*10465441SEvalZero #define T3MCR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x14)) 575*10465441SEvalZero #define T3MR0 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x18)) 576*10465441SEvalZero #define T3MR1 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x1C)) 577*10465441SEvalZero #define T3MR2 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x20)) 578*10465441SEvalZero #define T3MR3 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x24)) 579*10465441SEvalZero #define T3CCR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x28)) 580*10465441SEvalZero #define T3CR0 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x2C)) 581*10465441SEvalZero #define T3CR1 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x30)) 582*10465441SEvalZero #define T3CR2 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x34)) 583*10465441SEvalZero #define T3CR3 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x38)) 584*10465441SEvalZero #define T3EMR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x3C)) 585*10465441SEvalZero #define T3CTCR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x70)) 586*10465441SEvalZero 587*10465441SEvalZero 588*10465441SEvalZero /* Pulse Width Modulator (PWM) */ 589*10465441SEvalZero #define PWM0_BASE_ADDR 0xE0014000 590*10465441SEvalZero #define PWM0IR (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x00)) 591*10465441SEvalZero #define PWM0TCR (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x04)) 592*10465441SEvalZero #define PWM0TC (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x08)) 593*10465441SEvalZero #define PWM0PR (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x0C)) 594*10465441SEvalZero #define PWM0PC (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x10)) 595*10465441SEvalZero #define PWM0MCR (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x14)) 596*10465441SEvalZero #define PWM0MR0 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x18)) 597*10465441SEvalZero #define PWM0MR1 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x1C)) 598*10465441SEvalZero #define PWM0MR2 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x20)) 599*10465441SEvalZero #define PWM0MR3 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x24)) 600*10465441SEvalZero #define PWM0CCR (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x28)) 601*10465441SEvalZero #define PWM0CR0 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x2C)) 602*10465441SEvalZero #define PWM0CR1 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x30)) 603*10465441SEvalZero #define PWM0CR2 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x34)) 604*10465441SEvalZero #define PWM0CR3 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x38)) 605*10465441SEvalZero #define PWM0EMR (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x3C)) 606*10465441SEvalZero #define PWM0MR4 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x40)) 607*10465441SEvalZero #define PWM0MR5 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x44)) 608*10465441SEvalZero #define PWM0MR6 (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x48)) 609*10465441SEvalZero #define PWM0PCR (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x4C)) 610*10465441SEvalZero #define PWM0LER (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x50)) 611*10465441SEvalZero #define PWM0CTCR (*(volatile unsigned long *)(PWM0_BASE_ADDR + 0x70)) 612*10465441SEvalZero 613*10465441SEvalZero #define PWM1_BASE_ADDR 0xE0018000 614*10465441SEvalZero #define PWM1IR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x00)) 615*10465441SEvalZero #define PWM1TCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x04)) 616*10465441SEvalZero #define PWM1TC (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x08)) 617*10465441SEvalZero #define PWM1PR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x0C)) 618*10465441SEvalZero #define PWM1PC (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x10)) 619*10465441SEvalZero #define PWM1MCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x14)) 620*10465441SEvalZero #define PWM1MR0 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x18)) 621*10465441SEvalZero #define PWM1MR1 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x1C)) 622*10465441SEvalZero #define PWM1MR2 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x20)) 623*10465441SEvalZero #define PWM1MR3 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x24)) 624*10465441SEvalZero #define PWM1CCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x28)) 625*10465441SEvalZero #define PWM1CR0 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x2C)) 626*10465441SEvalZero #define PWM1CR1 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x30)) 627*10465441SEvalZero #define PWM1CR2 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x34)) 628*10465441SEvalZero #define PWM1CR3 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x38)) 629*10465441SEvalZero #define PWM1EMR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x3C)) 630*10465441SEvalZero #define PWM1MR4 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x40)) 631*10465441SEvalZero #define PWM1MR5 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x44)) 632*10465441SEvalZero #define PWM1MR6 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x48)) 633*10465441SEvalZero #define PWM1PCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x4C)) 634*10465441SEvalZero #define PWM1LER (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x50)) 635*10465441SEvalZero #define PWM1CTCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x70)) 636*10465441SEvalZero 637*10465441SEvalZero 638*10465441SEvalZero /* Universal Asynchronous Receiver Transmitter 0 (UART0) */ 639*10465441SEvalZero #define UART0_BASE_ADDR 0xE000C000 640*10465441SEvalZero #define U0RBR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x00)) 641*10465441SEvalZero #define U0THR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x00)) 642*10465441SEvalZero #define U0DLL (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x00)) 643*10465441SEvalZero #define U0DLM (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x04)) 644*10465441SEvalZero #define U0IER (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x04)) 645*10465441SEvalZero #define U0IIR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x08)) 646*10465441SEvalZero #define U0FCR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x08)) 647*10465441SEvalZero #define U0LCR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x0C)) 648*10465441SEvalZero #define U0LSR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x14)) 649*10465441SEvalZero #define U0SCR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x1C)) 650*10465441SEvalZero #define U0ACR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x20)) 651*10465441SEvalZero #define U0ICR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x24)) 652*10465441SEvalZero #define U0FDR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x28)) 653*10465441SEvalZero #define U0TER (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x30)) 654*10465441SEvalZero 655*10465441SEvalZero /* Universal Asynchronous Receiver Transmitter 1 (UART1) */ 656*10465441SEvalZero #define UART1_BASE_ADDR 0xE0010000 657*10465441SEvalZero #define U1RBR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x00)) 658*10465441SEvalZero #define U1THR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x00)) 659*10465441SEvalZero #define U1DLL (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x00)) 660*10465441SEvalZero #define U1DLM (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x04)) 661*10465441SEvalZero #define U1IER (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x04)) 662*10465441SEvalZero #define U1IIR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x08)) 663*10465441SEvalZero #define U1FCR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x08)) 664*10465441SEvalZero #define U1LCR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x0C)) 665*10465441SEvalZero #define U1MCR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x10)) 666*10465441SEvalZero #define U1LSR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x14)) 667*10465441SEvalZero #define U1MSR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x18)) 668*10465441SEvalZero #define U1SCR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x1C)) 669*10465441SEvalZero #define U1ACR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x20)) 670*10465441SEvalZero #define U1FDR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x28)) 671*10465441SEvalZero #define U1TER (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x30)) 672*10465441SEvalZero 673*10465441SEvalZero /* Universal Asynchronous Receiver Transmitter 2 (UART2) */ 674*10465441SEvalZero #define UART2_BASE_ADDR 0xE0078000 675*10465441SEvalZero #define U2RBR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x00)) 676*10465441SEvalZero #define U2THR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x00)) 677*10465441SEvalZero #define U2DLL (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x00)) 678*10465441SEvalZero #define U2DLM (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x04)) 679*10465441SEvalZero #define U2IER (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x04)) 680*10465441SEvalZero #define U2IIR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x08)) 681*10465441SEvalZero #define U2FCR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x08)) 682*10465441SEvalZero #define U2LCR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x0C)) 683*10465441SEvalZero #define U2LSR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x14)) 684*10465441SEvalZero #define U2SCR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x1C)) 685*10465441SEvalZero #define U2ACR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x20)) 686*10465441SEvalZero #define U2ICR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x24)) 687*10465441SEvalZero #define U2FDR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x28)) 688*10465441SEvalZero #define U2TER (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x30)) 689*10465441SEvalZero 690*10465441SEvalZero /* Universal Asynchronous Receiver Transmitter 3 (UART3) */ 691*10465441SEvalZero #define UART3_BASE_ADDR 0xE007C000 692*10465441SEvalZero #define U3RBR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x00)) 693*10465441SEvalZero #define U3THR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x00)) 694*10465441SEvalZero #define U3DLL (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x00)) 695*10465441SEvalZero #define U3DLM (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x04)) 696*10465441SEvalZero #define U3IER (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x04)) 697*10465441SEvalZero #define U3IIR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x08)) 698*10465441SEvalZero #define U3FCR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x08)) 699*10465441SEvalZero #define U3LCR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x0C)) 700*10465441SEvalZero #define U3LSR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x14)) 701*10465441SEvalZero #define U3SCR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x1C)) 702*10465441SEvalZero #define U3ACR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x20)) 703*10465441SEvalZero #define U3ICR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x24)) 704*10465441SEvalZero #define U3FDR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x28)) 705*10465441SEvalZero #define U3TER (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x30)) 706*10465441SEvalZero 707*10465441SEvalZero /* I2C Interface 0 */ 708*10465441SEvalZero #define I2C0_BASE_ADDR 0xE001C000 709*10465441SEvalZero #define I20CONSET (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x00)) 710*10465441SEvalZero #define I20STAT (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x04)) 711*10465441SEvalZero #define I20DAT (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x08)) 712*10465441SEvalZero #define I20ADR (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x0C)) 713*10465441SEvalZero #define I20SCLH (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x10)) 714*10465441SEvalZero #define I20SCLL (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x14)) 715*10465441SEvalZero #define I20CONCLR (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x18)) 716*10465441SEvalZero 717*10465441SEvalZero /* I2C Interface 1 */ 718*10465441SEvalZero #define I2C1_BASE_ADDR 0xE005C000 719*10465441SEvalZero #define I21CONSET (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x00)) 720*10465441SEvalZero #define I21STAT (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x04)) 721*10465441SEvalZero #define I21DAT (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x08)) 722*10465441SEvalZero #define I21ADR (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x0C)) 723*10465441SEvalZero #define I21SCLH (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x10)) 724*10465441SEvalZero #define I21SCLL (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x14)) 725*10465441SEvalZero #define I21CONCLR (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x18)) 726*10465441SEvalZero 727*10465441SEvalZero /* I2C Interface 2 */ 728*10465441SEvalZero #define I2C2_BASE_ADDR 0xE0080000 729*10465441SEvalZero #define I22CONSET (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x00)) 730*10465441SEvalZero #define I22STAT (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x04)) 731*10465441SEvalZero #define I22DAT (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x08)) 732*10465441SEvalZero #define I22ADR (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x0C)) 733*10465441SEvalZero #define I22SCLH (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x10)) 734*10465441SEvalZero #define I22SCLL (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x14)) 735*10465441SEvalZero #define I22CONCLR (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x18)) 736*10465441SEvalZero 737*10465441SEvalZero /* SPI0 (Serial Peripheral Interface 0) */ 738*10465441SEvalZero #define SPI0_BASE_ADDR 0xE0020000 739*10465441SEvalZero #define S0SPCR (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x00)) 740*10465441SEvalZero #define S0SPSR (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x04)) 741*10465441SEvalZero #define S0SPDR (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x08)) 742*10465441SEvalZero #define S0SPCCR (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x0C)) 743*10465441SEvalZero #define S0SPINT (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x1C)) 744*10465441SEvalZero 745*10465441SEvalZero /* SSP0 Controller */ 746*10465441SEvalZero #define SSP0_BASE_ADDR 0xE0068000 747*10465441SEvalZero #define SSP0CR0 (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x00)) 748*10465441SEvalZero #define SSP0CR1 (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x04)) 749*10465441SEvalZero #define SSP0DR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x08)) 750*10465441SEvalZero #define SSP0SR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x0C)) 751*10465441SEvalZero #define SSP0CPSR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x10)) 752*10465441SEvalZero #define SSP0IMSC (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x14)) 753*10465441SEvalZero #define SSP0RIS (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x18)) 754*10465441SEvalZero #define SSP0MIS (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x1C)) 755*10465441SEvalZero #define SSP0ICR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x20)) 756*10465441SEvalZero #define SSP0DMACR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x24)) 757*10465441SEvalZero 758*10465441SEvalZero /* SSP1 Controller */ 759*10465441SEvalZero #define SSP1_BASE_ADDR 0xE0030000 760*10465441SEvalZero #define SSP1CR0 (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x00)) 761*10465441SEvalZero #define SSP1CR1 (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x04)) 762*10465441SEvalZero #define SSP1DR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x08)) 763*10465441SEvalZero #define SSP1SR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x0C)) 764*10465441SEvalZero #define SSP1CPSR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x10)) 765*10465441SEvalZero #define SSP1IMSC (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x14)) 766*10465441SEvalZero #define SSP1RIS (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x18)) 767*10465441SEvalZero #define SSP1MIS (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x1C)) 768*10465441SEvalZero #define SSP1ICR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x20)) 769*10465441SEvalZero #define SSP1DMACR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x24)) 770*10465441SEvalZero 771*10465441SEvalZero 772*10465441SEvalZero /* Real Time Clock */ 773*10465441SEvalZero #define RTC_BASE_ADDR 0xE0024000 774*10465441SEvalZero #define RTC_ILR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x00)) 775*10465441SEvalZero #define RTC_CTC (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x04)) 776*10465441SEvalZero #define RTC_CCR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x08)) 777*10465441SEvalZero #define RTC_CIIR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x0C)) 778*10465441SEvalZero #define RTC_AMR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x10)) 779*10465441SEvalZero #define RTC_CTIME0 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x14)) 780*10465441SEvalZero #define RTC_CTIME1 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x18)) 781*10465441SEvalZero #define RTC_CTIME2 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x1C)) 782*10465441SEvalZero #define RTC_SEC (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x20)) 783*10465441SEvalZero #define RTC_MIN (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x24)) 784*10465441SEvalZero #define RTC_HOUR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x28)) 785*10465441SEvalZero #define RTC_DOM (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x2C)) 786*10465441SEvalZero #define RTC_DOW (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x30)) 787*10465441SEvalZero #define RTC_DOY (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x34)) 788*10465441SEvalZero #define RTC_MONTH (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x38)) 789*10465441SEvalZero #define RTC_YEAR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x3C)) 790*10465441SEvalZero #define RTC_CISS (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x40)) 791*10465441SEvalZero #define RTC_ALSEC (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x60)) 792*10465441SEvalZero #define RTC_ALMIN (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x64)) 793*10465441SEvalZero #define RTC_ALHOUR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x68)) 794*10465441SEvalZero #define RTC_ALDOM (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x6C)) 795*10465441SEvalZero #define RTC_ALDOW (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x70)) 796*10465441SEvalZero #define RTC_ALDOY (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x74)) 797*10465441SEvalZero #define RTC_ALMON (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x78)) 798*10465441SEvalZero #define RTC_ALYEAR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x7C)) 799*10465441SEvalZero #define RTC_PREINT (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x80)) 800*10465441SEvalZero #define RTC_PREFRAC (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x84)) 801*10465441SEvalZero 802*10465441SEvalZero 803*10465441SEvalZero /* A/D Converter 0 (AD0) */ 804*10465441SEvalZero #define AD0_BASE_ADDR 0xE0034000 805*10465441SEvalZero #define AD0CR (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x00)) 806*10465441SEvalZero #define AD0GDR (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x04)) 807*10465441SEvalZero #define AD0INTEN (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x0C)) 808*10465441SEvalZero #define AD0DR0 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x10)) 809*10465441SEvalZero #define AD0DR1 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x14)) 810*10465441SEvalZero #define AD0DR2 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x18)) 811*10465441SEvalZero #define AD0DR3 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x1C)) 812*10465441SEvalZero #define AD0DR4 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x20)) 813*10465441SEvalZero #define AD0DR5 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x24)) 814*10465441SEvalZero #define AD0DR6 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x28)) 815*10465441SEvalZero #define AD0DR7 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x2C)) 816*10465441SEvalZero #define AD0STAT (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x30)) 817*10465441SEvalZero 818*10465441SEvalZero 819*10465441SEvalZero /* D/A Converter */ 820*10465441SEvalZero #define DAC_BASE_ADDR 0xE006C000 821*10465441SEvalZero #define DACR (*(volatile unsigned long *)(DAC_BASE_ADDR + 0x00)) 822*10465441SEvalZero 823*10465441SEvalZero 824*10465441SEvalZero /* Watchdog */ 825*10465441SEvalZero #define WDG_BASE_ADDR 0xE0000000 826*10465441SEvalZero #define WDMOD (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x00)) 827*10465441SEvalZero #define WDTC (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x04)) 828*10465441SEvalZero #define WDFEED (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x08)) 829*10465441SEvalZero #define WDTV (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x0C)) 830*10465441SEvalZero #define WDCLKSEL (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x10)) 831*10465441SEvalZero 832*10465441SEvalZero /* CAN CONTROLLERS AND ACCEPTANCE FILTER */ 833*10465441SEvalZero #define CAN_ACCEPT_BASE_ADDR 0xE003C000 834*10465441SEvalZero #define CAN_AFMR (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x00)) 835*10465441SEvalZero #define CAN_SFF_SA (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x04)) 836*10465441SEvalZero #define CAN_SFF_GRP_SA (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x08)) 837*10465441SEvalZero #define CAN_EFF_SA (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x0C)) 838*10465441SEvalZero #define CAN_EFF_GRP_SA (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x10)) 839*10465441SEvalZero #define CAN_EOT (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x14)) 840*10465441SEvalZero #define CAN_LUT_ERR_ADR (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x18)) 841*10465441SEvalZero #define CAN_LUT_ERR (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x1C)) 842*10465441SEvalZero 843*10465441SEvalZero #define CAN_CENTRAL_BASE_ADDR 0xE0040000 844*10465441SEvalZero #define CAN_TX_SR (*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x00)) 845*10465441SEvalZero #define CAN_RX_SR (*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x04)) 846*10465441SEvalZero #define CAN_MSR (*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x08)) 847*10465441SEvalZero 848*10465441SEvalZero #define CAN1_BASE_ADDR 0xE0044000 849*10465441SEvalZero #define CAN1MOD (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x00)) 850*10465441SEvalZero #define CAN1CMR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x04)) 851*10465441SEvalZero #define CAN1GSR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x08)) 852*10465441SEvalZero #define CAN1ICR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x0C)) 853*10465441SEvalZero #define CAN1IER (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x10)) 854*10465441SEvalZero #define CAN1BTR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x14)) 855*10465441SEvalZero #define CAN1EWL (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x18)) 856*10465441SEvalZero #define CAN1SR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x1C)) 857*10465441SEvalZero #define CAN1RFS (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x20)) 858*10465441SEvalZero #define CAN1RID (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x24)) 859*10465441SEvalZero #define CAN1RDA (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x28)) 860*10465441SEvalZero #define CAN1RDB (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x2C)) 861*10465441SEvalZero 862*10465441SEvalZero #define CAN1TFI1 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x30)) 863*10465441SEvalZero #define CAN1TID1 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x34)) 864*10465441SEvalZero #define CAN1TDA1 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x38)) 865*10465441SEvalZero #define CAN1TDB1 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x3C)) 866*10465441SEvalZero #define CAN1TFI2 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x40)) 867*10465441SEvalZero #define CAN1TID2 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x44)) 868*10465441SEvalZero #define CAN1TDA2 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x48)) 869*10465441SEvalZero #define CAN1TDB2 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x4C)) 870*10465441SEvalZero #define CAN1TFI3 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x50)) 871*10465441SEvalZero #define CAN1TID3 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x54)) 872*10465441SEvalZero #define CAN1TDA3 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x58)) 873*10465441SEvalZero #define CAN1TDB3 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x5C)) 874*10465441SEvalZero 875*10465441SEvalZero #define CAN2_BASE_ADDR 0xE0048000 876*10465441SEvalZero #define CAN2MOD (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x00)) 877*10465441SEvalZero #define CAN2CMR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x04)) 878*10465441SEvalZero #define CAN2GSR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x08)) 879*10465441SEvalZero #define CAN2ICR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x0C)) 880*10465441SEvalZero #define CAN2IER (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x10)) 881*10465441SEvalZero #define CAN2BTR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x14)) 882*10465441SEvalZero #define CAN2EWL (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x18)) 883*10465441SEvalZero #define CAN2SR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x1C)) 884*10465441SEvalZero #define CAN2RFS (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x20)) 885*10465441SEvalZero #define CAN2RID (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x24)) 886*10465441SEvalZero #define CAN2RDA (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x28)) 887*10465441SEvalZero #define CAN2RDB (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x2C)) 888*10465441SEvalZero 889*10465441SEvalZero #define CAN2TFI1 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x30)) 890*10465441SEvalZero #define CAN2TID1 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x34)) 891*10465441SEvalZero #define CAN2TDA1 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x38)) 892*10465441SEvalZero #define CAN2TDB1 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x3C)) 893*10465441SEvalZero #define CAN2TFI2 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x40)) 894*10465441SEvalZero #define CAN2TID2 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x44)) 895*10465441SEvalZero #define CAN2TDA2 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x48)) 896*10465441SEvalZero #define CAN2TDB2 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x4C)) 897*10465441SEvalZero #define CAN2TFI3 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x50)) 898*10465441SEvalZero #define CAN2TID3 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x54)) 899*10465441SEvalZero #define CAN2TDA3 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x58)) 900*10465441SEvalZero #define CAN2TDB3 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x5C)) 901*10465441SEvalZero 902*10465441SEvalZero 903*10465441SEvalZero /* MultiMedia Card Interface(MCI) Controller */ 904*10465441SEvalZero #define MCI_BASE_ADDR 0xE008C000 905*10465441SEvalZero #define MCI_POWER (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x00)) 906*10465441SEvalZero #define MCI_CLOCK (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x04)) 907*10465441SEvalZero #define MCI_ARGUMENT (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x08)) 908*10465441SEvalZero #define MCI_COMMAND (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x0C)) 909*10465441SEvalZero #define MCI_RESP_CMD (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x10)) 910*10465441SEvalZero #define MCI_RESP0 (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x14)) 911*10465441SEvalZero #define MCI_RESP1 (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x18)) 912*10465441SEvalZero #define MCI_RESP2 (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x1C)) 913*10465441SEvalZero #define MCI_RESP3 (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x20)) 914*10465441SEvalZero #define MCI_DATA_TMR (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x24)) 915*10465441SEvalZero #define MCI_DATA_LEN (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x28)) 916*10465441SEvalZero #define MCI_DATA_CTRL (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x2C)) 917*10465441SEvalZero #define MCI_DATA_CNT (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x30)) 918*10465441SEvalZero #define MCI_STATUS (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x34)) 919*10465441SEvalZero #define MCI_CLEAR (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x38)) 920*10465441SEvalZero #define MCI_MASK0 (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x3C)) 921*10465441SEvalZero #define MCI_MASK1 (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x40)) 922*10465441SEvalZero #define MCI_FIFO_CNT (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x48)) 923*10465441SEvalZero #define MCI_FIFO (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x80)) 924*10465441SEvalZero 925*10465441SEvalZero 926*10465441SEvalZero /* I2S Interface Controller (I2S) */ 927*10465441SEvalZero #define I2S_BASE_ADDR 0xE0088000 928*10465441SEvalZero #define I2S_DAO (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x00)) 929*10465441SEvalZero #define I2S_DAI (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x04)) 930*10465441SEvalZero #define I2S_TX_FIFO (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x08)) 931*10465441SEvalZero #define I2S_RX_FIFO (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x0C)) 932*10465441SEvalZero #define I2S_STATE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x10)) 933*10465441SEvalZero #define I2S_DMA1 (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x14)) 934*10465441SEvalZero #define I2S_DMA2 (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x18)) 935*10465441SEvalZero #define I2S_IRQ (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x1C)) 936*10465441SEvalZero #define I2S_TXRATE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x20)) 937*10465441SEvalZero #define I2S_RXRATE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x24)) 938*10465441SEvalZero 939*10465441SEvalZero 940*10465441SEvalZero /* General-purpose DMA Controller */ 941*10465441SEvalZero #define DMA_BASE_ADDR 0xFFE04000 942*10465441SEvalZero #define GPDMA_INT_STAT (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x000)) 943*10465441SEvalZero #define GPDMA_INT_TCSTAT (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x004)) 944*10465441SEvalZero #define GPDMA_INT_TCCLR (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x008)) 945*10465441SEvalZero #define GPDMA_INT_ERR_STAT (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x00C)) 946*10465441SEvalZero #define GPDMA_INT_ERR_CLR (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x010)) 947*10465441SEvalZero #define GPDMA_RAW_INT_TCSTAT (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x014)) 948*10465441SEvalZero #define GPDMA_RAW_INT_ERR_STAT (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x018)) 949*10465441SEvalZero #define GPDMA_ENABLED_CHNS (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x01C)) 950*10465441SEvalZero #define GPDMA_SOFT_BREQ (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x020)) 951*10465441SEvalZero #define GPDMA_SOFT_SREQ (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x024)) 952*10465441SEvalZero #define GPDMA_SOFT_LBREQ (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x028)) 953*10465441SEvalZero #define GPDMA_SOFT_LSREQ (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x02C)) 954*10465441SEvalZero #define GPDMA_CONFIG (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x030)) 955*10465441SEvalZero #define GPDMA_SYNC (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x034)) 956*10465441SEvalZero 957*10465441SEvalZero /* DMA channel 0 registers */ 958*10465441SEvalZero #define GPDMA_CH0_SRC (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x100)) 959*10465441SEvalZero #define GPDMA_CH0_DEST (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x104)) 960*10465441SEvalZero #define GPDMA_CH0_LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x108)) 961*10465441SEvalZero #define GPDMA_CH0_CTRL (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x10C)) 962*10465441SEvalZero #define GPDMA_CH0_CFG (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x110)) 963*10465441SEvalZero 964*10465441SEvalZero /* DMA channel 1 registers */ 965*10465441SEvalZero #define GPDMA_CH1_SRC (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x120)) 966*10465441SEvalZero #define GPDMA_CH1_DEST (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x124)) 967*10465441SEvalZero #define GPDMA_CH1_LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x128)) 968*10465441SEvalZero #define GPDMA_CH1_CTRL (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x12C)) 969*10465441SEvalZero #define GPDMA_CH1_CFG (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x130)) 970*10465441SEvalZero 971*10465441SEvalZero 972*10465441SEvalZero /* USB Controller */ 973*10465441SEvalZero #define USB_INT_BASE_ADDR 0xE01FC1C0 974*10465441SEvalZero #define USB_BASE_ADDR 0xFFE0C200 /* USB Base Address */ 975*10465441SEvalZero 976*10465441SEvalZero #define USB_INT_STAT (*(volatile unsigned long *)(USB_INT_BASE_ADDR + 0x00)) 977*10465441SEvalZero 978*10465441SEvalZero /* USB Device Interrupt Registers */ 979*10465441SEvalZero #define DEV_INT_STAT (*(volatile unsigned long *)(USB_BASE_ADDR + 0x00)) 980*10465441SEvalZero #define DEV_INT_EN (*(volatile unsigned long *)(USB_BASE_ADDR + 0x04)) 981*10465441SEvalZero #define DEV_INT_CLR (*(volatile unsigned long *)(USB_BASE_ADDR + 0x08)) 982*10465441SEvalZero #define DEV_INT_SET (*(volatile unsigned long *)(USB_BASE_ADDR + 0x0C)) 983*10465441SEvalZero #define DEV_INT_PRIO (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2C)) 984*10465441SEvalZero 985*10465441SEvalZero /* USB Device Endpoint Interrupt Registers */ 986*10465441SEvalZero #define EP_INT_STAT (*(volatile unsigned long *)(USB_BASE_ADDR + 0x30)) 987*10465441SEvalZero #define EP_INT_EN (*(volatile unsigned long *)(USB_BASE_ADDR + 0x34)) 988*10465441SEvalZero #define EP_INT_CLR (*(volatile unsigned long *)(USB_BASE_ADDR + 0x38)) 989*10465441SEvalZero #define EP_INT_SET (*(volatile unsigned long *)(USB_BASE_ADDR + 0x3C)) 990*10465441SEvalZero #define EP_INT_PRIO (*(volatile unsigned long *)(USB_BASE_ADDR + 0x40)) 991*10465441SEvalZero 992*10465441SEvalZero /* USB Device Endpoint Realization Registers */ 993*10465441SEvalZero #define REALIZE_EP (*(volatile unsigned long *)(USB_BASE_ADDR + 0x44)) 994*10465441SEvalZero #define EP_INDEX (*(volatile unsigned long *)(USB_BASE_ADDR + 0x48)) 995*10465441SEvalZero #define MAXPACKET_SIZE (*(volatile unsigned long *)(USB_BASE_ADDR + 0x4C)) 996*10465441SEvalZero 997*10465441SEvalZero /* USB Device Command Reagisters */ 998*10465441SEvalZero #define CMD_CODE (*(volatile unsigned long *)(USB_BASE_ADDR + 0x10)) 999*10465441SEvalZero #define CMD_DATA (*(volatile unsigned long *)(USB_BASE_ADDR + 0x14)) 1000*10465441SEvalZero 1001*10465441SEvalZero /* USB Device Data Transfer Registers */ 1002*10465441SEvalZero #define RX_DATA (*(volatile unsigned long *)(USB_BASE_ADDR + 0x18)) 1003*10465441SEvalZero #define TX_DATA (*(volatile unsigned long *)(USB_BASE_ADDR + 0x1C)) 1004*10465441SEvalZero #define RX_PLENGTH (*(volatile unsigned long *)(USB_BASE_ADDR + 0x20)) 1005*10465441SEvalZero #define TX_PLENGTH (*(volatile unsigned long *)(USB_BASE_ADDR + 0x24)) 1006*10465441SEvalZero #define USB_CTRL (*(volatile unsigned long *)(USB_BASE_ADDR + 0x28)) 1007*10465441SEvalZero 1008*10465441SEvalZero /* USB Device DMA Registers */ 1009*10465441SEvalZero #define DMA_REQ_STAT (*(volatile unsigned long *)(USB_BASE_ADDR + 0x50)) 1010*10465441SEvalZero #define DMA_REQ_CLR (*(volatile unsigned long *)(USB_BASE_ADDR + 0x54)) 1011*10465441SEvalZero #define DMA_REQ_SET (*(volatile unsigned long *)(USB_BASE_ADDR + 0x58)) 1012*10465441SEvalZero #define UDCA_HEAD (*(volatile unsigned long *)(USB_BASE_ADDR + 0x80)) 1013*10465441SEvalZero #define EP_DMA_STAT (*(volatile unsigned long *)(USB_BASE_ADDR + 0x84)) 1014*10465441SEvalZero #define EP_DMA_EN (*(volatile unsigned long *)(USB_BASE_ADDR + 0x88)) 1015*10465441SEvalZero #define EP_DMA_DIS (*(volatile unsigned long *)(USB_BASE_ADDR + 0x8C)) 1016*10465441SEvalZero #define DMA_INT_STAT (*(volatile unsigned long *)(USB_BASE_ADDR + 0x90)) 1017*10465441SEvalZero #define DMA_INT_EN (*(volatile unsigned long *)(USB_BASE_ADDR + 0x94)) 1018*10465441SEvalZero #define EOT_INT_STAT (*(volatile unsigned long *)(USB_BASE_ADDR + 0xA0)) 1019*10465441SEvalZero #define EOT_INT_CLR (*(volatile unsigned long *)(USB_BASE_ADDR + 0xA4)) 1020*10465441SEvalZero #define EOT_INT_SET (*(volatile unsigned long *)(USB_BASE_ADDR + 0xA8)) 1021*10465441SEvalZero #define NDD_REQ_INT_STAT (*(volatile unsigned long *)(USB_BASE_ADDR + 0xAC)) 1022*10465441SEvalZero #define NDD_REQ_INT_CLR (*(volatile unsigned long *)(USB_BASE_ADDR + 0xB0)) 1023*10465441SEvalZero #define NDD_REQ_INT_SET (*(volatile unsigned long *)(USB_BASE_ADDR + 0xB4)) 1024*10465441SEvalZero #define SYS_ERR_INT_STAT (*(volatile unsigned long *)(USB_BASE_ADDR + 0xB8)) 1025*10465441SEvalZero #define SYS_ERR_INT_CLR (*(volatile unsigned long *)(USB_BASE_ADDR + 0xBC)) 1026*10465441SEvalZero #define SYS_ERR_INT_SET (*(volatile unsigned long *)(USB_BASE_ADDR + 0xC0)) 1027*10465441SEvalZero 1028*10465441SEvalZero /* USB Host and OTG registers are for LPC24xx only */ 1029*10465441SEvalZero /* USB Host Controller */ 1030*10465441SEvalZero #define USBHC_BASE_ADDR 0xFFE0C000 1031*10465441SEvalZero #define HC_REVISION (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x00)) 1032*10465441SEvalZero #define HC_CONTROL (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x04)) 1033*10465441SEvalZero #define HC_CMD_STAT (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x08)) 1034*10465441SEvalZero #define HC_INT_STAT (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x0C)) 1035*10465441SEvalZero #define HC_INT_EN (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x10)) 1036*10465441SEvalZero #define HC_INT_DIS (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x14)) 1037*10465441SEvalZero #define HC_HCCA (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x18)) 1038*10465441SEvalZero #define HC_PERIOD_CUR_ED (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x1C)) 1039*10465441SEvalZero #define HC_CTRL_HEAD_ED (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x20)) 1040*10465441SEvalZero #define HC_CTRL_CUR_ED (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x24)) 1041*10465441SEvalZero #define HC_BULK_HEAD_ED (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x28)) 1042*10465441SEvalZero #define HC_BULK_CUR_ED (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x2C)) 1043*10465441SEvalZero #define HC_DONE_HEAD (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x30)) 1044*10465441SEvalZero #define HC_FM_INTERVAL (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x34)) 1045*10465441SEvalZero #define HC_FM_REMAINING (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x38)) 1046*10465441SEvalZero #define HC_FM_NUMBER (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x3C)) 1047*10465441SEvalZero #define HC_PERIOD_START (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x40)) 1048*10465441SEvalZero #define HC_LS_THRHLD (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x44)) 1049*10465441SEvalZero #define HC_RH_DESCA (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x48)) 1050*10465441SEvalZero #define HC_RH_DESCB (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x4C)) 1051*10465441SEvalZero #define HC_RH_STAT (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x50)) 1052*10465441SEvalZero #define HC_RH_PORT_STAT1 (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x54)) 1053*10465441SEvalZero #define HC_RH_PORT_STAT2 (*(volatile unsigned long *)(USBHC_BASE_ADDR + 0x58)) 1054*10465441SEvalZero 1055*10465441SEvalZero /* USB OTG Controller */ 1056*10465441SEvalZero #define USBOTG_BASE_ADDR 0xFFE0C100 1057*10465441SEvalZero #define OTG_INT_STAT (*(volatile unsigned long *)(USBOTG_BASE_ADDR + 0x00)) 1058*10465441SEvalZero #define OTG_INT_EN (*(volatile unsigned long *)(USBOTG_BASE_ADDR + 0x04)) 1059*10465441SEvalZero #define OTG_INT_SET (*(volatile unsigned long *)(USBOTG_BASE_ADDR + 0x08)) 1060*10465441SEvalZero #define OTG_INT_CLR (*(volatile unsigned long *)(USBOTG_BASE_ADDR + 0x0C)) 1061*10465441SEvalZero /* On LPC23xx, the name is USBPortSel, on LPC24xx, the name is OTG_STAT_CTRL */ 1062*10465441SEvalZero #define OTG_STAT_CTRL (*(volatile unsigned long *)(USBOTG_BASE_ADDR + 0x10)) 1063*10465441SEvalZero #define OTG_TIMER (*(volatile unsigned long *)(USBOTG_BASE_ADDR + 0x14)) 1064*10465441SEvalZero 1065*10465441SEvalZero #define USBOTG_I2C_BASE_ADDR 0xFFE0C300 1066*10465441SEvalZero #define OTG_I2C_RX (*(volatile unsigned long *)(USBOTG_I2C_BASE_ADDR + 0x00)) 1067*10465441SEvalZero #define OTG_I2C_TX (*(volatile unsigned long *)(USBOTG_I2C_BASE_ADDR + 0x00)) 1068*10465441SEvalZero #define OTG_I2C_STS (*(volatile unsigned long *)(USBOTG_I2C_BASE_ADDR + 0x04)) 1069*10465441SEvalZero #define OTG_I2C_CTL (*(volatile unsigned long *)(USBOTG_I2C_BASE_ADDR + 0x08)) 1070*10465441SEvalZero #define OTG_I2C_CLKHI (*(volatile unsigned long *)(USBOTG_I2C_BASE_ADDR + 0x0C)) 1071*10465441SEvalZero #define OTG_I2C_CLKLO (*(volatile unsigned long *)(USBOTG_I2C_BASE_ADDR + 0x10)) 1072*10465441SEvalZero 1073*10465441SEvalZero /* On LPC23xx, the names are USBClkCtrl and USBClkSt; on LPC24xx, the names are 1074*10465441SEvalZero OTG_CLK_CTRL and OTG_CLK_STAT respectively. */ 1075*10465441SEvalZero #define USBOTG_CLK_BASE_ADDR 0xFFE0CFF0 1076*10465441SEvalZero #define OTG_CLK_CTRL (*(volatile unsigned long *)(USBOTG_CLK_BASE_ADDR + 0x04)) 1077*10465441SEvalZero #define OTG_CLK_STAT (*(volatile unsigned long *)(USBOTG_CLK_BASE_ADDR + 0x08)) 1078*10465441SEvalZero 1079*10465441SEvalZero /* Note: below three register name convention is for LPC23xx USB device only, match 1080*10465441SEvalZero with the spec. update in USB Device Section. */ 1081*10465441SEvalZero #define USBPortSel (*(volatile unsigned long *)(USBOTG_BASE_ADDR + 0x10)) 1082*10465441SEvalZero #define USBClkCtrl (*(volatile unsigned long *)(USBOTG_CLK_BASE_ADDR + 0x04)) 1083*10465441SEvalZero #define USBClkSt (*(volatile unsigned long *)(USBOTG_CLK_BASE_ADDR + 0x08)) 1084*10465441SEvalZero 1085*10465441SEvalZero /* Ethernet MAC (32 bit data bus) -- all registers are RW unless indicated in parentheses */ 1086*10465441SEvalZero #define MAC_BASE_ADDR 0xFFE00000 /* AHB Peripheral # 0 */ 1087*10465441SEvalZero #define MAC_MAC1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x000)) /* MAC config reg 1 */ 1088*10465441SEvalZero #define MAC_MAC2 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x004)) /* MAC config reg 2 */ 1089*10465441SEvalZero #define MAC_IPGT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x008)) /* b2b InterPacketGap reg */ 1090*10465441SEvalZero #define MAC_IPGR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x00C)) /* non b2b InterPacketGap reg */ 1091*10465441SEvalZero #define MAC_CLRT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x010)) /* CoLlision window/ReTry reg */ 1092*10465441SEvalZero #define MAC_MAXF (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x014)) /* MAXimum Frame reg */ 1093*10465441SEvalZero #define MAC_SUPP (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x018)) /* PHY SUPPort reg */ 1094*10465441SEvalZero #define MAC_TEST (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x01C)) /* TEST reg */ 1095*10465441SEvalZero #define MAC_MCFG (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x020)) /* MII Mgmt ConFiG reg */ 1096*10465441SEvalZero #define MAC_MCMD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x024)) /* MII Mgmt CoMmanD reg */ 1097*10465441SEvalZero #define MAC_MADR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x028)) /* MII Mgmt ADdRess reg */ 1098*10465441SEvalZero #define MAC_MWTD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x02C)) /* MII Mgmt WriTe Data reg (WO) */ 1099*10465441SEvalZero #define MAC_MRDD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x030)) /* MII Mgmt ReaD Data reg (RO) */ 1100*10465441SEvalZero #define MAC_MIND (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x034)) /* MII Mgmt INDicators reg (RO) */ 1101*10465441SEvalZero 1102*10465441SEvalZero #define MAC_SA0 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x040)) /* Station Address 0 reg */ 1103*10465441SEvalZero #define MAC_SA1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x044)) /* Station Address 1 reg */ 1104*10465441SEvalZero #define MAC_SA2 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x048)) /* Station Address 2 reg */ 1105*10465441SEvalZero 1106*10465441SEvalZero #define MAC_COMMAND (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x100)) /* Command reg */ 1107*10465441SEvalZero #define MAC_STATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x104)) /* Status reg (RO) */ 1108*10465441SEvalZero #define MAC_RXDESCRIPTOR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x108)) /* Rx descriptor base address reg */ 1109*10465441SEvalZero #define MAC_RXSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x10C)) /* Rx status base address reg */ 1110*10465441SEvalZero #define MAC_RXDESCRIPTORNUM (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x110)) /* Rx number of descriptors reg */ 1111*10465441SEvalZero #define MAC_RXPRODUCEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x114)) /* Rx produce index reg (RO) */ 1112*10465441SEvalZero #define MAC_RXCONSUMEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x118)) /* Rx consume index reg */ 1113*10465441SEvalZero #define MAC_TXDESCRIPTOR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x11C)) /* Tx descriptor base address reg */ 1114*10465441SEvalZero #define MAC_TXSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x120)) /* Tx status base address reg */ 1115*10465441SEvalZero #define MAC_TXDESCRIPTORNUM (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x124)) /* Tx number of descriptors reg */ 1116*10465441SEvalZero #define MAC_TXPRODUCEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x128)) /* Tx produce index reg */ 1117*10465441SEvalZero #define MAC_TXCONSUMEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x12C)) /* Tx consume index reg (RO) */ 1118*10465441SEvalZero 1119*10465441SEvalZero #define MAC_TSV0 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x158)) /* Tx status vector 0 reg (RO) */ 1120*10465441SEvalZero #define MAC_TSV1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x15C)) /* Tx status vector 1 reg (RO) */ 1121*10465441SEvalZero #define MAC_RSV (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x160)) /* Rx status vector reg (RO) */ 1122*10465441SEvalZero 1123*10465441SEvalZero #define MAC_FLOWCONTROLCNT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x170)) /* Flow control counter reg */ 1124*10465441SEvalZero #define MAC_FLOWCONTROLSTS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x174)) /* Flow control status reg */ 1125*10465441SEvalZero 1126*10465441SEvalZero #define MAC_RXFILTERCTRL (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x200)) /* Rx filter ctrl reg */ 1127*10465441SEvalZero #define MAC_RXFILTERWOLSTS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x204)) /* Rx filter WoL status reg (RO) */ 1128*10465441SEvalZero #define MAC_RXFILTERWOLCLR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x208)) /* Rx filter WoL clear reg (WO) */ 1129*10465441SEvalZero 1130*10465441SEvalZero #define MAC_HASHFILTERL (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x210)) /* Hash filter LSBs reg */ 1131*10465441SEvalZero #define MAC_HASHFILTERH (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x214)) /* Hash filter MSBs reg */ 1132*10465441SEvalZero 1133*10465441SEvalZero #define MAC_INTSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE0)) /* Interrupt status reg (RO) */ 1134*10465441SEvalZero #define MAC_INTENABLE (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE4)) /* Interrupt enable reg */ 1135*10465441SEvalZero #define MAC_INTCLEAR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE8)) /* Interrupt clear reg (WO) */ 1136*10465441SEvalZero #define MAC_INTSET (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFEC)) /* Interrupt set reg (WO) */ 1137*10465441SEvalZero 1138*10465441SEvalZero #define MAC_POWERDOWN (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFF4)) /* Power-down reg */ 1139*10465441SEvalZero #define MAC_MODULEID (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFFC)) /* Module ID reg (RO) */ 1140*10465441SEvalZero 1141*10465441SEvalZero /* LCD Controller registers */ 1142*10465441SEvalZero #define LCD_BASE_ADDR 0xFFE10000 /* AHB Peripheral # 4 */ 1143*10465441SEvalZero #define LCD_CFG (*(volatile unsigned long *)(0xE01FC1B8)) 1144*10465441SEvalZero #define LCD_TIMH (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x000)) 1145*10465441SEvalZero #define LCD_TIMV (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x004)) 1146*10465441SEvalZero #define LCD_POL (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x008)) 1147*10465441SEvalZero #define LCD_LE (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x00C)) 1148*10465441SEvalZero #define LCD_UPBASE (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x010)) 1149*10465441SEvalZero #define LCD_LPBASE (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x014)) 1150*10465441SEvalZero #define LCD_CTRL (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x018)) 1151*10465441SEvalZero #define LCD_INTMSK (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x01C)) 1152*10465441SEvalZero #define LCD_INTRAW (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x020)) 1153*10465441SEvalZero #define LCD_INTSTAT (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x024)) 1154*10465441SEvalZero #define LCD_INTCLR (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x028)) 1155*10465441SEvalZero #define LCD_UPCURR (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x02C)) 1156*10465441SEvalZero #define LCD_LPCURR (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x030)) 1157*10465441SEvalZero #define LCD_PAL (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x200)) 1158*10465441SEvalZero #define CRSR_IMG (*(volatile unsigned long *)(LCD_BASE_ADDR + 0x800)) 1159*10465441SEvalZero #define CRSR_CTRL (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC00)) 1160*10465441SEvalZero #define CRSR_CFG (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC04)) 1161*10465441SEvalZero #define CRSR_PAL0 (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC08)) 1162*10465441SEvalZero #define CRSR_PAL1 (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC0C)) 1163*10465441SEvalZero #define CRSR_XY (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC10)) 1164*10465441SEvalZero #define CRSR_CLIP (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC14)) 1165*10465441SEvalZero #define CRSR_INTMSK (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC20)) 1166*10465441SEvalZero #define CRSR_INTCLR (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC24)) 1167*10465441SEvalZero #define CRSR_INTRAW (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC28)) 1168*10465441SEvalZero #define CRSR_INTSTAT (*(volatile unsigned long *)(LCD_BASE_ADDR + 0xC2C)) 1169*10465441SEvalZero 1170*10465441SEvalZero struct rt_hw_register 1171*10465441SEvalZero { 1172*10465441SEvalZero unsigned long r0; 1173*10465441SEvalZero unsigned long r1; 1174*10465441SEvalZero unsigned long r2; 1175*10465441SEvalZero unsigned long r3; 1176*10465441SEvalZero unsigned long r4; 1177*10465441SEvalZero unsigned long r5; 1178*10465441SEvalZero unsigned long r6; 1179*10465441SEvalZero unsigned long r7; 1180*10465441SEvalZero unsigned long r8; 1181*10465441SEvalZero unsigned long r9; 1182*10465441SEvalZero unsigned long r10; 1183*10465441SEvalZero unsigned long fp; 1184*10465441SEvalZero unsigned long ip; 1185*10465441SEvalZero unsigned long sp; 1186*10465441SEvalZero unsigned long lr; 1187*10465441SEvalZero unsigned long pc; 1188*10465441SEvalZero unsigned long cpsr; 1189*10465441SEvalZero unsigned long ORIG_r0; 1190*10465441SEvalZero }; 1191*10465441SEvalZero 1192*10465441SEvalZero #ifdef __cplusplus 1193*10465441SEvalZero } 1194*10465441SEvalZero #endif 1195*10465441SEvalZero 1196*10465441SEvalZero #endif // __LPC24xx_H 1197*10465441SEvalZero 1198