#ifndef __LPC17xx_H | |
#define __LPC17xx_H | |
#include "CortexM3.h" | |
/* System Control Block (SCB) includes: | |
Flash Accelerator Module, Clocking and Power Control, External Interrupts, | |
Reset, System Control and Status | |
*/ | |
#define SCB_BASE_ADDR 0x400FC000 | |
/* Flash Accelerator Module */ | |
#define FLASHCTRL (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x000)) | |
#define FLASHTIM (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x004)) | |
/* Phase Locked Loop (Main PLL0) */ | |
#define PLL0CON (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x080)) | |
#define PLL0CFG (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x084)) | |
#define PLL0STAT (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x088)) | |
#define PLL0FEED (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x08C)) | |
/* Phase Locked Loop (USB PLL1) */ | |
#define PLL1CON (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x0A0)) | |
#define PLL1CFG (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x0A4)) | |
#define PLL1STAT (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x0A8)) | |
#define PLL1FEED (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x0AC)) | |
/* Power Control */ | |
#define PCON (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x0C0)) | |
#define PCONP (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x0C4)) | |
/* Clock Selection and Dividers */ | |
#define CCLKCFG (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x104)) | |
#define USBCLKCFG (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x108)) | |
#define CLKSRCSEL (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x10C)) | |
#define IRCTRIM (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x1A4)) | |
#define PCLKSEL0 (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x1A8)) | |
#define PCLKSEL1 (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x1AC)) | |
/* External Interrupts */ | |
#define EXTINT (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x140)) | |
#define EXTMODE (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x148)) | |
#define EXTPOLAR (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x14C)) | |
/* Reset */ | |
#define RSIR (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x180)) | |
/* System Controls and Status */ | |
#define SCS (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x1A0)) | |
/* Pin Connect Block */ | |
#define PINCON_BASE_ADDR 0x4002C000 | |
#define PINSEL0 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x00)) | |
#define PINSEL1 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x04)) | |
#define PINSEL2 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x08)) | |
#define PINSEL3 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x0C)) | |
#define PINSEL4 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x10)) | |
#define PINSEL5 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x14)) | |
#define PINSEL6 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x18)) | |
#define PINSEL7 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x1C)) | |
#define PINSEL8 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x20)) | |
#define PINSEL9 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x24)) | |
#define PINSEL10 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x28)) | |
#define PINMODE0 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x40)) | |
#define PINMODE1 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x44)) | |
#define PINMODE2 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x48)) | |
#define PINMODE3 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x4C)) | |
#define PINMODE4 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x50)) | |
#define PINMODE5 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x54)) | |
#define PINMODE6 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x58)) | |
#define PINMODE7 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x5C)) | |
#define PINMODE8 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x60)) | |
#define PINMODE9 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x64)) | |
#define PINMODE_OD0 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x68)) | |
#define PINMODE_OD1 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x6C)) | |
#define PINMODE_OD2 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x70)) | |
#define PINMODE_OD3 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x74)) | |
#define PINMODE_OD4 (*(volatile unsigned long *)(PINCON_BASE_ADDR + 0x78)) | |
/* General Purpose Input/Output (GPIO) - Fast GPIO */ | |
// #define GPIO_BASE_ADDR 0x50014000 /* For the first silicon v0.00 */ | |
#define GPIO_BASE_ADDR 0x2009C000 /* For silicon v0.01 or newer */ | |
#define FIO0DIR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x00)) | |
#define FIO0MASK (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x10)) | |
#define FIO0PIN (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x14)) | |
#define FIO0SET (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x18)) | |
#define FIO0CLR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x1C)) | |
#define FIO1DIR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x20)) | |
#define FIO1MASK (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x30)) | |
#define FIO1PIN (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x34)) | |
#define FIO1SET (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x38)) | |
#define FIO1CLR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x3C)) | |
#define FIO2DIR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x40)) | |
#define FIO2MASK (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x50)) | |
#define FIO2PIN (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x54)) | |
#define FIO2SET (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x58)) | |
#define FIO2CLR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x5C)) | |
#define FIO3DIR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x60)) | |
#define FIO3MASK (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x70)) | |
#define FIO3PIN (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x74)) | |
#define FIO3SET (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x78)) | |
#define FIO3CLR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x7C)) | |
#define FIO4DIR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x80)) | |
#define FIO4MASK (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x90)) | |
#define FIO4PIN (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x94)) | |
#define FIO4SET (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x98)) | |
#define FIO4CLR (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x9C)) | |
/* FIOs can be accessed through WORD, HALF-WORD or BYTE. */ | |
#define FIO0DIR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x00)) | |
#define FIO1DIR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x20)) | |
#define FIO2DIR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x40)) | |
#define FIO3DIR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x60)) | |
#define FIO4DIR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x80)) | |
#define FIO0DIR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x01)) | |
#define FIO1DIR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x21)) | |
#define FIO2DIR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x41)) | |
#define FIO3DIR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x61)) | |
#define FIO4DIR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x81)) | |
#define FIO0DIR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x02)) | |
#define FIO1DIR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x22)) | |
#define FIO2DIR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x42)) | |
#define FIO3DIR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x62)) | |
#define FIO4DIR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x82)) | |
#define FIO0DIR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x03)) | |
#define FIO1DIR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x23)) | |
#define FIO2DIR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x43)) | |
#define FIO3DIR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x63)) | |
#define FIO4DIR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x83)) | |
#define FIO0DIRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x00)) | |
#define FIO1DIRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x20)) | |
#define FIO2DIRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x40)) | |
#define FIO3DIRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x60)) | |
#define FIO4DIRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x80)) | |
#define FIO0DIRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x02)) | |
#define FIO1DIRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x22)) | |
#define FIO2DIRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x42)) | |
#define FIO3DIRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x62)) | |
#define FIO4DIRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x82)) | |
#define FIO0MASK0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x10)) | |
#define FIO1MASK0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x30)) | |
#define FIO2MASK0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x40)) | |
#define FIO3MASK0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x50)) | |
#define FIO4MASK0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x90)) | |
#define FIO0MASK1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x11)) | |
#define FIO1MASK1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x31)) | |
#define FIO2MASK1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x41)) | |
#define FIO3MASK1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x51)) | |
#define FIO4MASK1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x91)) | |
#define FIO0MASK2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x12)) | |
#define FIO1MASK2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x32)) | |
#define FIO2MASK2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x42)) | |
#define FIO3MASK2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x52)) | |
#define FIO4MASK2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x92)) | |
#define FIO0MASK3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x13)) | |
#define FIO1MASK3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x33)) | |
#define FIO2MASK3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x43)) | |
#define FIO3MASK3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x53)) | |
#define FIO4MASK3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x93)) | |
#define FIO0MASKL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x10)) | |
#define FIO1MASKL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x30)) | |
#define FIO2MASKL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x40)) | |
#define FIO3MASKL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x50)) | |
#define FIO4MASKL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x90)) | |
#define FIO0MASKU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x12)) | |
#define FIO1MASKU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x32)) | |
#define FIO2MASKU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x42)) | |
#define FIO3MASKU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x52)) | |
#define FIO4MASKU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x92)) | |
#define FIO0PIN0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x14)) | |
#define FIO1PIN0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x34)) | |
#define FIO2PIN0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x44)) | |
#define FIO3PIN0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x54)) | |
#define FIO4PIN0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x94)) | |
#define FIO0PIN1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x15)) | |
#define FIO1PIN1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x35)) | |
#define FIO2PIN1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x45)) | |
#define FIO3PIN1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x55)) | |
#define FIO4PIN1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x95)) | |
#define FIO0PIN2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x16)) | |
#define FIO1PIN2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x36)) | |
#define FIO2PIN2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x46)) | |
#define FIO3PIN2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x56)) | |
#define FIO4PIN2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x96)) | |
#define FIO0PIN3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x17)) | |
#define FIO1PIN3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x37)) | |
#define FIO2PIN3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x47)) | |
#define FIO3PIN3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x57)) | |
#define FIO4PIN3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x97)) | |
#define FIO0PINL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x14)) | |
#define FIO1PINL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x34)) | |
#define FIO2PINL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x44)) | |
#define FIO3PINL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x54)) | |
#define FIO4PINL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x94)) | |
#define FIO0PINU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x16)) | |
#define FIO1PINU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x36)) | |
#define FIO2PINU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x46)) | |
#define FIO3PINU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x56)) | |
#define FIO4PINU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x96)) | |
#define FIO0SET0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x18)) | |
#define FIO1SET0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x38)) | |
#define FIO2SET0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x48)) | |
#define FIO3SET0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x58)) | |
#define FIO4SET0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x98)) | |
#define FIO0SET1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x19)) | |
#define FIO1SET1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x39)) | |
#define FIO2SET1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x49)) | |
#define FIO3SET1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x59)) | |
#define FIO4SET1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x99)) | |
#define FIO0SET2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x1A)) | |
#define FIO1SET2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x3A)) | |
#define FIO2SET2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x4A)) | |
#define FIO3SET2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x5A)) | |
#define FIO4SET2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x9A)) | |
#define FIO0SET3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x1B)) | |
#define FIO1SET3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x3B)) | |
#define FIO2SET3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x4B)) | |
#define FIO3SET3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x5B)) | |
#define FIO4SET3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x9B)) | |
#define FIO0SETL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x18)) | |
#define FIO1SETL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x38)) | |
#define FIO2SETL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x48)) | |
#define FIO3SETL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x58)) | |
#define FIO4SETL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x98)) | |
#define FIO0SETU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x1A)) | |
#define FIO1SETU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x3A)) | |
#define FIO2SETU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x4A)) | |
#define FIO3SETU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x5A)) | |
#define FIO4SETU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x9A)) | |
#define FIO0CLR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x1C)) | |
#define FIO1CLR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x3C)) | |
#define FIO2CLR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x4C)) | |
#define FIO3CLR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x5C)) | |
#define FIO4CLR0 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x9C)) | |
#define FIO0CLR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x1D)) | |
#define FIO1CLR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x3D)) | |
#define FIO2CLR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x4D)) | |
#define FIO3CLR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x5D)) | |
#define FIO4CLR1 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x9D)) | |
#define FIO0CLR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x1E)) | |
#define FIO1CLR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x3E)) | |
#define FIO2CLR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x4E)) | |
#define FIO3CLR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x5E)) | |
#define FIO4CLR2 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x9E)) | |
#define FIO0CLR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x1F)) | |
#define FIO1CLR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x3F)) | |
#define FIO2CLR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x4F)) | |
#define FIO3CLR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x5F)) | |
#define FIO4CLR3 (*(volatile unsigned char *)(GPIO_BASE_ADDR + 0x9F)) | |
#define FIO0CLRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x1C)) | |
#define FIO1CLRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x3C)) | |
#define FIO2CLRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x4C)) | |
#define FIO3CLRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x5C)) | |
#define FIO4CLRL (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x9C)) | |
#define FIO0CLRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x1E)) | |
#define FIO1CLRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x3E)) | |
#define FIO2CLRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x4E)) | |
#define FIO3CLRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x5E)) | |
#define FIO4CLRU (*(volatile unsigned short *)(GPIO_BASE_ADDR + 0x9E)) | |
/* GPIO Interrupt Registers */ | |
#define GPIO_INT_BASE_ADDR 0x40028000 | |
#define IO0IntEnR (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0x90)) | |
#define IO0IntEnF (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0x94)) | |
#define IO0IntStatR (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0x84)) | |
#define IO0IntStatF (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0x88)) | |
#define IO0IntClr (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0x8C)) | |
#define IO2IntEnR (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0xB0)) | |
#define IO2IntEnF (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0xB4)) | |
#define IO2IntStatR (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0xA4)) | |
#define IO2IntStatF (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0xA8)) | |
#define IO2IntClr (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0xAC)) | |
#define IOIntStatus (*(volatile unsigned long *)(GPIO_INT_BASE_ADDR + 0x80)) | |
/* Timer 0 */ | |
#define TMR0_BASE_ADDR 0x40004000 | |
#define T0IR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x00)) | |
#define T0TCR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x04)) | |
#define T0TC (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x08)) | |
#define T0PR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x0C)) | |
#define T0PC (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x10)) | |
#define T0MCR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x14)) | |
#define T0MR0 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x18)) | |
#define T0MR1 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x1C)) | |
#define T0MR2 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x20)) | |
#define T0MR3 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x24)) | |
#define T0CCR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x28)) | |
#define T0CR0 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x2C)) | |
#define T0CR1 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x30)) | |
#define T0CR2 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x34)) | |
#define T0CR3 (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x38)) | |
#define T0EMR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x3C)) | |
#define T0CTCR (*(volatile unsigned long *)(TMR0_BASE_ADDR + 0x70)) | |
/* Timer 1 */ | |
#define TMR1_BASE_ADDR 0x40008000 | |
#define T1IR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x00)) | |
#define T1TCR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x04)) | |
#define T1TC (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x08)) | |
#define T1PR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x0C)) | |
#define T1PC (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x10)) | |
#define T1MCR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x14)) | |
#define T1MR0 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x18)) | |
#define T1MR1 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x1C)) | |
#define T1MR2 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x20)) | |
#define T1MR3 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x24)) | |
#define T1CCR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x28)) | |
#define T1CR0 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x2C)) | |
#define T1CR1 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x30)) | |
#define T1CR2 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x34)) | |
#define T1CR3 (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x38)) | |
#define T1EMR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x3C)) | |
#define T1CTCR (*(volatile unsigned long *)(TMR1_BASE_ADDR + 0x70)) | |
/* Timer 2 */ | |
#define TMR2_BASE_ADDR 0x40090000 | |
#define T2IR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x00)) | |
#define T2TCR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x04)) | |
#define T2TC (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x08)) | |
#define T2PR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x0C)) | |
#define T2PC (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x10)) | |
#define T2MCR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x14)) | |
#define T2MR0 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x18)) | |
#define T2MR1 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x1C)) | |
#define T2MR2 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x20)) | |
#define T2MR3 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x24)) | |
#define T2CCR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x28)) | |
#define T2CR0 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x2C)) | |
#define T2CR1 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x30)) | |
#define T2CR2 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x34)) | |
#define T2CR3 (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x38)) | |
#define T2EMR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x3C)) | |
#define T2CTCR (*(volatile unsigned long *)(TMR2_BASE_ADDR + 0x70)) | |
/* Timer 3 */ | |
#define TMR3_BASE_ADDR 0x40094000 | |
#define T3IR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x00)) | |
#define T3TCR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x04)) | |
#define T3TC (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x08)) | |
#define T3PR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x0C)) | |
#define T3PC (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x10)) | |
#define T3MCR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x14)) | |
#define T3MR0 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x18)) | |
#define T3MR1 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x1C)) | |
#define T3MR2 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x20)) | |
#define T3MR3 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x24)) | |
#define T3CCR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x28)) | |
#define T3CR0 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x2C)) | |
#define T3CR1 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x30)) | |
#define T3CR2 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x34)) | |
#define T3CR3 (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x38)) | |
#define T3EMR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x3C)) | |
#define T3CTCR (*(volatile unsigned long *)(TMR3_BASE_ADDR + 0x70)) | |
/* Pulse Width Modulator (PWM) */ | |
#define PWM1_BASE_ADDR 0x40018000 | |
#define PWM1IR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x00)) | |
#define PWM1TCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x04)) | |
#define PWM1TC (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x08)) | |
#define PWM1PR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x0C)) | |
#define PWM1PC (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x10)) | |
#define PWM1MCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x14)) | |
#define PWM1MR0 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x18)) | |
#define PWM1MR1 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x1C)) | |
#define PWM1MR2 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x20)) | |
#define PWM1MR3 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x24)) | |
#define PWM1CCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x28)) | |
#define PWM1CR0 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x2C)) | |
#define PWM1CR1 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x30)) | |
#define PWM1CR2 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x34)) | |
#define PWM1CR3 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x38)) | |
#define PWM1MR4 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x40)) | |
#define PWM1MR5 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x44)) | |
#define PWM1MR6 (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x48)) | |
#define PWM1PCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x4C)) | |
#define PWM1LER (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x50)) | |
#define PWM1CTCR (*(volatile unsigned long *)(PWM1_BASE_ADDR + 0x70)) | |
/* Universal Asynchronous Receiver Transmitter 0 (UART0) */ | |
#define UART0_BASE_ADDR 0x4000C000 | |
#define U0RBR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x00)) | |
#define U0THR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x00)) | |
#define U0DLL (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x00)) | |
#define U0DLM (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x04)) | |
#define U0IER (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x04)) | |
#define U0IIR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x08)) | |
#define U0FCR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x08)) | |
#define U0LCR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x0C)) | |
#define U0LSR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x14)) | |
#define U0SCR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x1C)) | |
#define U0ACR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x20)) | |
#define U0FDR (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x28)) | |
#define U0TER (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x30)) | |
#define U0RS485CTRL (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x4C)) | |
#define U0ADRMATCH (*(volatile unsigned long *)(UART0_BASE_ADDR + 0x50)) | |
/* Universal Asynchronous Receiver Transmitter 1 (UART1) */ | |
#define UART1_BASE_ADDR 0x40010000 | |
#define U1RBR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x00)) | |
#define U1THR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x00)) | |
#define U1DLL (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x00)) | |
#define U1DLM (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x04)) | |
#define U1IER (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x04)) | |
#define U1IIR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x08)) | |
#define U1FCR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x08)) | |
#define U1LCR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x0C)) | |
#define U1MCR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x10)) | |
#define U1LSR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x14)) | |
#define U1MSR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x18)) | |
#define U1SCR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x1C)) | |
#define U1ACR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x20)) | |
#define U1FDR (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x28)) | |
#define U1TER (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x30)) | |
#define U1RS485CTRL (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x4C)) | |
#define U1ADRMATCH (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x50)) | |
#define U1RS485DLY (*(volatile unsigned long *)(UART1_BASE_ADDR + 0x54)) | |
/* Universal Asynchronous Receiver Transmitter 2 (UART2) */ | |
#define UART2_BASE_ADDR 0x40098000 | |
#define U2RBR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x00)) | |
#define U2THR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x00)) | |
#define U2DLL (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x00)) | |
#define U2DLM (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x04)) | |
#define U2IER (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x04)) | |
#define U2IIR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x08)) | |
#define U2FCR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x08)) | |
#define U2LCR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x0C)) | |
#define U2LSR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x14)) | |
#define U2SCR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x1C)) | |
#define U2ACR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x20)) | |
#define U2FDR (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x28)) | |
#define U2TER (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x30)) | |
#define U2RS485CTRL (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x4C)) | |
#define U2ADRMATCH (*(volatile unsigned long *)(UART2_BASE_ADDR + 0x50)) | |
/* Universal Asynchronous Receiver Transmitter 3 (UART3) */ | |
#define UART3_BASE_ADDR 0x4009C000 | |
#define U3RBR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x00)) | |
#define U3THR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x00)) | |
#define U3DLL (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x00)) | |
#define U3DLM (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x04)) | |
#define U3IER (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x04)) | |
#define U3IIR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x08)) | |
#define U3FCR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x08)) | |
#define U3LCR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x0C)) | |
#define U3LSR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x14)) | |
#define U3SCR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x1C)) | |
#define U3ACR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x20)) | |
#define U3ICR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x24)) | |
#define U3FDR (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x28)) | |
#define U3TER (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x30)) | |
#define U3RS485CTRL (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x4C)) | |
#define U3ADRMATCH (*(volatile unsigned long *)(UART3_BASE_ADDR + 0x50)) | |
/* SPI0 (Serial Peripheral Interface 0) */ | |
#define SPI0_BASE_ADDR 0x40020000 | |
#define S0SPCR (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x00)) | |
#define S0SPSR (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x04)) | |
#define S0SPDR (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x08)) | |
#define S0SPCCR (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x0C)) | |
#define S0SPINT (*(volatile unsigned long *)(SPI0_BASE_ADDR + 0x1C)) | |
/* SSP0 Controller */ | |
#define SSP0_BASE_ADDR 0x40088000 | |
#define SSP0CR0 (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x00)) | |
#define SSP0CR1 (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x04)) | |
#define SSP0DR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x08)) | |
#define SSP0SR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x0C)) | |
#define SSP0CPSR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x10)) | |
#define SSP0IMSC (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x14)) | |
#define SSP0RIS (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x18)) | |
#define SSP0MIS (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x1C)) | |
#define SSP0ICR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x20)) | |
#define SSP0DMACR (*(volatile unsigned long *)(SSP0_BASE_ADDR + 0x24)) | |
/* SSP1 Controller */ | |
#define SSP1_BASE_ADDR 0x40030000 | |
#define SSP1CR0 (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x00)) | |
#define SSP1CR1 (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x04)) | |
#define SSP1DR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x08)) | |
#define SSP1SR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x0C)) | |
#define SSP1CPSR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x10)) | |
#define SSP1IMSC (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x14)) | |
#define SSP1RIS (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x18)) | |
#define SSP1MIS (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x1C)) | |
#define SSP1ICR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x20)) | |
#define SSP1DMACR (*(volatile unsigned long *)(SSP1_BASE_ADDR + 0x24)) | |
/* I2C Interface 0 */ | |
#define I2C0_BASE_ADDR 0x4001C000 | |
#define I2C0CONSET (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x00)) | |
#define I2C0STAT (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x04)) | |
#define I2C0DAT (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x08)) | |
#define I2C0ADR0 (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x0C)) | |
#define I2C0SCLH (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x10)) | |
#define I2C0SCLL (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x14)) | |
#define I2C0CONCLR (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x18)) | |
#define I2C0MMCLR (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x1C)) | |
#define I2C0ADR1 (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x20)) | |
#define I2C0ADR2 (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x24)) | |
#define I2C0ADR3 (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x28)) | |
#define I2C0DATBUFFER (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x2C)) | |
#define I2C0MASK0 (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x30)) | |
#define I2C0MASK1 (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x34)) | |
#define I2C0MASK2 (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x38)) | |
#define I2C0MASK3 (*(volatile unsigned long *)(I2C0_BASE_ADDR + 0x3C)) | |
/* I2C Interface 1 */ | |
#define I2C1_BASE_ADDR 0x4005C000 | |
#define I2C1CONSET (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x00)) | |
#define I2C1STAT (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x04)) | |
#define I2C1DAT (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x08)) | |
#define I2C1ADR0 (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x0C)) | |
#define I2C1SCLH (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x10)) | |
#define I2C1SCLL (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x14)) | |
#define I2C1CONCLR (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x18)) | |
#define I2C1MMCLR (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x1C)) | |
#define I2C1ADR1 (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x20)) | |
#define I2C1ADR2 (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x24)) | |
#define I2C1ADR3 (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x28)) | |
#define I2C1DATBUFFER (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x2C)) | |
#define I2C1MASK0 (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x30)) | |
#define I2C1MASK1 (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x34)) | |
#define I2C1MASK2 (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x38)) | |
#define I2C1MASK3 (*(volatile unsigned long *)(I2C1_BASE_ADDR + 0x3C)) | |
/* I2C Interface 2 */ | |
#define I2C2_BASE_ADDR 0x400A0000 | |
#define I2C2CONSET (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x00)) | |
#define I2C2STAT (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x04)) | |
#define I2C2DAT (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x08)) | |
#define I2C2ADR0 (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x0C)) | |
#define I2C2SCLH (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x10)) | |
#define I2C2SCLL (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x14)) | |
#define I2C2CONCLR (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x18)) | |
#define I2C2MMCLR (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x1C)) | |
#define I2C2ADR1 (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x20)) | |
#define I2C2ADR2 (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x24)) | |
#define I2C2ADR3 (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x28)) | |
#define I2C2DATBUFFER (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x2C)) | |
#define I2C2MASK0 (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x30)) | |
#define I2C2MASK1 (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x34)) | |
#define I2C2MASK2 (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x38)) | |
#define I2C2MASK3 (*(volatile unsigned long *)(I2C2_BASE_ADDR + 0x3C)) | |
/* I2S Interface Controller (I2S) */ | |
#define I2S_BASE_ADDR 0x400A8000 | |
#define I2SDAO (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x00)) | |
#define I2SDAI (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x04)) | |
#define I2STXFIFO (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x08)) | |
#define I2SRXFIFO (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x0C)) | |
#define I2SSTATE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x10)) | |
#define I2SDMA1 (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x14)) | |
#define I2SDMA2 (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x18)) | |
#define I2SIRQ (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x1C)) | |
#define I2STXRATE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x20)) | |
#define I2SRXRATE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x24)) | |
#define I2STXBITRATE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x28)) | |
#define I2SRXBITRATE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x2C)) | |
#define I2STXMODE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x30)) | |
#define I2SRXMODE (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x34)) | |
/* Repetitive Interrupt Timer (RIT) */ | |
#define RIT_BASE_ADDR 0x400B4000 | |
#define RICOMPVAL (*(volatile unsigned long *)(RIT_BASE_ADDR + 0x00)) | |
#define RIMASK (*(volatile unsigned long *)(RIT_BASE_ADDR + 0x04)) | |
#define RICTRL (*(volatile unsigned long *)(RIT_BASE_ADDR + 0x08)) | |
#define RICOUNTER (*(volatile unsigned long *)(RIT_BASE_ADDR + 0x0C)) | |
/* Real Time Clock (RTC) */ | |
#define RTC_BASE_ADDR 0x40024000 | |
#define RTC_ILR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x00)) | |
#define RTC_CCR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x08)) | |
#define RTC_CIIR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x0C)) | |
#define RTC_AMR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x10)) | |
#define RTC_CTIME0 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x14)) | |
#define RTC_CTIME1 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x18)) | |
#define RTC_CTIME2 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x1C)) | |
#define RTC_SEC (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x20)) | |
#define RTC_MIN (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x24)) | |
#define RTC_HOUR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x28)) | |
#define RTC_DOM (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x2C)) | |
#define RTC_DOW (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x30)) | |
#define RTC_DOY (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x34)) | |
#define RTC_MONTH (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x38)) | |
#define RTC_YEAR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x3C)) | |
#define RTC_CALIBRATION (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x40)) | |
#define RTC_GPREG0 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x44)) | |
#define RTC_GPREG1 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x48)) | |
#define RTC_GPREG2 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x4C)) | |
#define RTC_GPREG3 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x50)) | |
#define RTC_GPREG4 (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x54)) | |
#define RTC_WAKEUPDIS (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x58)) | |
#define RTC_PWRCTRL (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x5c)) | |
#define RTC_ALSEC (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x60)) | |
#define RTC_ALMIN (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x64)) | |
#define RTC_ALHOUR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x68)) | |
#define RTC_ALDOM (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x6C)) | |
#define RTC_ALDOW (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x70)) | |
#define RTC_ALDOY (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x74)) | |
#define RTC_ALMON (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x78)) | |
#define RTC_ALYEAR (*(volatile unsigned long *)(RTC_BASE_ADDR + 0x7C)) | |
/* Watchdog Timer (WDT) */ | |
#define WDT_BASE_ADDR 0x40000000 | |
#define WDMOD (*(volatile unsigned long *)(WDT_BASE_ADDR + 0x00)) | |
#define WDTC (*(volatile unsigned long *)(WDT_BASE_ADDR + 0x04)) | |
#define WDFEED (*(volatile unsigned long *)(WDT_BASE_ADDR + 0x08)) | |
#define WDTV (*(volatile unsigned long *)(WDT_BASE_ADDR + 0x0C)) | |
#define WDCLKSEL (*(volatile unsigned long *)(WDT_BASE_ADDR + 0x10)) | |
/* A/D Converter 0 (ADC0) */ | |
#define AD0_BASE_ADDR 0x40034000 | |
#define AD0CR (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x00)) | |
#define AD0GDR (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x04)) | |
#define AD0INTEN (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x0C)) | |
#define AD0DR0 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x10)) | |
#define AD0DR1 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x14)) | |
#define AD0DR2 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x18)) | |
#define AD0DR3 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x1C)) | |
#define AD0DR4 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x20)) | |
#define AD0DR5 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x24)) | |
#define AD0DR6 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x28)) | |
#define AD0DR7 (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x2C)) | |
#define AD0STAT (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x30)) | |
#define ADTRIM (*(volatile unsigned long *)(AD0_BASE_ADDR + 0x34)) | |
/* D/A Converter (DAC) */ | |
#define DAC_BASE_ADDR 0x4008C000 | |
#define DACR (*(volatile unsigned long *)(DAC_BASE_ADDR + 0x00)) | |
#define DACCTRL (*(volatile unsigned long *)(DAC_BASE_ADDR + 0x04)) | |
#define DACCNTVAL (*(volatile unsigned long *)(DAC_BASE_ADDR + 0x08)) | |
/* Motor Control PWM */ | |
#define MCPWM_BASE_ADDR 0x400B8000 | |
#define MCCON (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x00)) | |
#define MCCON_SET (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x04)) | |
#define MCCON_CLR (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x08)) | |
#define MCCAPCON (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x0C)) | |
#define MCCAPCON_SET (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x10)) | |
#define MCCAPCON_CLR (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x14)) | |
#define MCTIM0 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x18)) | |
#define MCTIM1 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x1C)) | |
#define MCTIM2 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x20)) | |
#define MCPER0 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x24)) | |
#define MCPER1 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x28)) | |
#define MCPER2 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x2C)) | |
#define MCPW0 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x30)) | |
#define MCPW1 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x34)) | |
#define MCPW2 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x38)) | |
#define MCDEADTIME (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x3C)) | |
#define MCCCP (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x40)) | |
#define MCCR0 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x44)) | |
#define MCCR1 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x48)) | |
#define MCCR2 (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x4C)) | |
#define MCINTEN (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x50)) | |
#define MCINTEN_SET (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x54)) | |
#define MCINTEN_CLR (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x58)) | |
#define MCCNTCON (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x5C)) | |
#define MCCNTCON_SET (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x60)) | |
#define MCCNTCON_CLR (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x64)) | |
#define MCINTFLAG (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x68)) | |
#define MCINTFLAG_SET (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x6C)) | |
#define MCINTFLAG_CLR (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x70)) | |
#define MCCAP_CLR (*(volatile unsigned long *)(MCPWM_BASE_ADDR + 0x74)) | |
/* Quadrature Encoder Interface (QEI) */ | |
#define QEI_BASE_ADDR 0x400BC000 | |
/* QEI Control Registers */ | |
#define QEICON (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x000)) | |
#define QEISTAT (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x004)) | |
#define QEICONF (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x008)) | |
/* QEI Position, Index, and Timer Registers */ | |
#define QEIPOS (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x00C)) | |
#define QEIMAXPSOS (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x010)) | |
#define CMPOS0 (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x014)) | |
#define CMPOS1 (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x018)) | |
#define CMPOS2 (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x01C)) | |
#define INXCNT (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x020)) | |
#define INXCMP (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x024)) | |
#define QEILOAD (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x028)) | |
#define QEITIME (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x02C)) | |
#define QEIVEL (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x030)) | |
#define QEICAP (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x034)) | |
#define VELCOMP (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x038)) | |
#define FILTER (*(volatile unsigned long *)(QEI_BASE_ADDR + 0x03C)) | |
/* QEI Interrupt registers */ | |
#define QEIIES (*(volatile unsigned long *)(QEI_BASE_ADDR + 0xFDC)) | |
#define QEIIEC (*(volatile unsigned long *)(QEI_BASE_ADDR + 0xFD8)) | |
#define QEIINTSTAT (*(volatile unsigned long *)(QEI_BASE_ADDR + 0xFE0)) | |
#define QEIIE (*(volatile unsigned long *)(QEI_BASE_ADDR + 0xFE4)) | |
#define QEICLR (*(volatile unsigned long *)(QEI_BASE_ADDR + 0xFE8)) | |
#define QEISET (*(volatile unsigned long *)(QEI_BASE_ADDR + 0xFEC)) | |
/* CAN Controllers and Acceptance Filter */ | |
/* CAN Acceptance Filter */ | |
#define CAN_AF_BASE_ADDR 0x4003C000 | |
#define AFMR (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x00)) | |
#define SFF_sa (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x04)) | |
#define SFF_GRP_sa (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x08)) | |
#define EFF_sa (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x0C)) | |
#define EFF_GRP_sa (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x10)) | |
#define ENDofTable (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x14)) | |
#define LUTerrAd (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x18)) | |
#define LUTerr (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x1C)) | |
#define FCANIE (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x20)) | |
#define FCANIC0 (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x24)) | |
#define FCANIC1 (*(volatile unsigned long *)(CAN_AF_BASE_ADDR + 0x28)) | |
/* CAN Centralized Registers */ | |
#define CAN_BASE_ADDR 0x40040000 | |
#define CANTxSR (*(volatile unsigned long *)(CAN_BASE_ADDR + 0x00)) | |
#define CANRxSR (*(volatile unsigned long *)(CAN_BASE_ADDR + 0x04)) | |
#define CANMSR (*(volatile unsigned long *)(CAN_BASE_ADDR + 0x08)) | |
/* CAN1 Controller */ | |
#define CAN1_BASE_ADDR 0x40044000 | |
#define CAN1MOD (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x00)) | |
#define CAN1CMR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x04)) | |
#define CAN1GSR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x08)) | |
#define CAN1ICR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x0C)) | |
#define CAN1IER (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x10)) | |
#define CAN1BTR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x14)) | |
#define CAN1EWL (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x18)) | |
#define CAN1SR (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x1C)) | |
#define CAN1RFS (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x20)) | |
#define CAN1RID (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x24)) | |
#define CAN1RDA (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x28)) | |
#define CAN1RDB (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x2C)) | |
#define CAN1TFI1 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x30)) | |
#define CAN1TID1 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x34)) | |
#define CAN1TDA1 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x38)) | |
#define CAN1TDB1 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x3C)) | |
#define CAN1TFI2 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x40)) | |
#define CAN1TID2 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x44)) | |
#define CAN1TDA2 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x48)) | |
#define CAN1TDB2 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x4C)) | |
#define CAN1TFI3 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x50)) | |
#define CAN1TID3 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x54)) | |
#define CAN1TDA3 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x58)) | |
#define CAN1TDB3 (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x5C)) | |
/* CAN2 Controller */ | |
#define CAN2_BASE_ADDR 0x40048000 | |
#define CAN2MOD (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x00)) | |
#define CAN2CMR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x04)) | |
#define CAN2GSR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x08)) | |
#define CAN2ICR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x0C)) | |
#define CAN2IER (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x10)) | |
#define CAN2BTR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x14)) | |
#define CAN2EWL (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x18)) | |
#define CAN2SR (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x1C)) | |
#define CAN2RFS (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x20)) | |
#define CAN2RID (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x24)) | |
#define CAN2RDA (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x28)) | |
#define CAN2RDB (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x2C)) | |
#define CAN2TFI1 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x30)) | |
#define CAN2TID1 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x34)) | |
#define CAN2TDA1 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x38)) | |
#define CAN2TDB1 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x3C)) | |
#define CAN2TFI2 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x40)) | |
#define CAN2TID2 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x44)) | |
#define CAN2TDA2 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x48)) | |
#define CAN2TDB2 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x4C)) | |
#define CAN2TFI3 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x50)) | |
#define CAN2TID3 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x54)) | |
#define CAN2TDA3 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x58)) | |
#define CAN2TDB3 (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x5C)) | |
/* General Purpose DMA Controller (GPDMA) */ | |
#define DMA_BASE_ADDR 0x50004000 | |
#define DMACIntStat (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x000)) | |
#define DMACIntTCStat (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x004)) | |
#define DMACIntTCClear (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x008)) | |
#define DMACIntErrStat (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x00C)) | |
#define DMACIntErrClr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x010)) | |
#define DMACRawIntTCStat (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x014)) | |
#define DMACRawIntErrStat (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x018)) | |
#define DMACEnbldChns (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x01C)) | |
#define DMACSoftBReq (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x020)) | |
#define DMACSoftSReq (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x024)) | |
#define DMACSoftLBReq (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x028)) | |
#define DMACSoftLSReq (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x02C)) | |
#define DMACConfig (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x030)) | |
#define DMACSync (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x034)) | |
/* DMA Channel 0 Registers */ | |
#define DMACC0SrcAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x100)) | |
#define DMACC0DestAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x104)) | |
#define DMACC0LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x108)) | |
#define DMACC0Control (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x10C)) | |
#define DMACC0Config (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x110)) | |
/* DMA Channel 1 Registers */ | |
#define DMACC1SrcAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x120)) | |
#define DMACC1DestAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x124)) | |
#define DMACC1LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x128)) | |
#define DMACC1Control (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x12C)) | |
#define DMACC1Config (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x130)) | |
/* DMA Channel 2 Registers */ | |
#define DMACC2SrcAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x140)) | |
#define DMACC2DestAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x144)) | |
#define DMACC2LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x148)) | |
#define DMACC2Control (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x14C)) | |
#define DMACC2Config (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x150)) | |
/* DMA Channel 3 Registers */ | |
#define DMACC3SrcAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x160)) | |
#define DMACC3DestAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x164)) | |
#define DMACC3LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x168)) | |
#define DMACC3Control (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x16C)) | |
#define DMACC3Config (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x170)) | |
/* DMA Channel 4 Registers */ | |
#define DMACC4SrcAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x180)) | |
#define DMACC4DestAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x184)) | |
#define DMACC4LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x188)) | |
#define DMACC4Control (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x18C)) | |
#define DMACC4Config (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x190)) | |
/* DMA Channel 5 Registers */ | |
#define DMACC5SrcAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1A0)) | |
#define DMACC5DestAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1A4)) | |
#define DMACC5LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1A8)) | |
#define DMACC5Control (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1AC)) | |
#define DMACC5Config (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1B0)) | |
/* DMA Channel 6 Registers */ | |
#define DMACC6SrcAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1C0)) | |
#define DMACC6DestAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1C4)) | |
#define DMACC6LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1C8)) | |
#define DMACC6Control (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1CC)) | |
#define DMACC6Config (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1D0)) | |
/* DMA Channel 7 Registers */ | |
#define DMACC7SrcAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1E0)) | |
#define DMACC7DestAddr (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1E4)) | |
#define DMACC7LLI (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1E8)) | |
#define DMACC7Control (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1EC)) | |
#define DMACC7Config (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x1F0)) | |
/* USB Controller */ | |
#define USB_BASE_ADDR 0x5000C000 | |
#define USBIntSt (*(volatile unsigned long *)(SCB_BASE_ADDR + 0x1C0)) | |
/* USB Device Controller */ | |
/* USB Device Clock Control Registers */ | |
#define USBClkCtrl (*(volatile unsigned long *)(USB_BASE_ADDR + 0xFF4)) | |
#define USBClkSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0xFF8)) | |
/* USB Device Interrupt Registers */ | |
#define USBDevIntSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x200)) | |
#define USBDevIntEn (*(volatile unsigned long *)(USB_BASE_ADDR + 0x204)) | |
#define USBDevIntClr (*(volatile unsigned long *)(USB_BASE_ADDR + 0x208)) | |
#define USBDevIntSet (*(volatile unsigned long *)(USB_BASE_ADDR + 0x20C)) | |
#define USBDevIntPri (*(volatile unsigned long *)(USB_BASE_ADDR + 0x22C)) | |
/* USB Device Endpoint Interrupt Registers */ | |
#define USBEpIntSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x230)) | |
#define USBEpIntEn (*(volatile unsigned long *)(USB_BASE_ADDR + 0x234)) | |
#define USBEpIntClr (*(volatile unsigned long *)(USB_BASE_ADDR + 0x238)) | |
#define USBEpIntSet (*(volatile unsigned long *)(USB_BASE_ADDR + 0x23C)) | |
#define USBEpIntPri (*(volatile unsigned long *)(USB_BASE_ADDR + 0x240)) | |
/* USB Device Endpoint Realization Registers */ | |
#define USBReEp (*(volatile unsigned long *)(USB_BASE_ADDR + 0x244)) | |
#define USBEpInd (*(volatile unsigned long *)(USB_BASE_ADDR + 0x248)) | |
#define USBMaxPSize (*(volatile unsigned long *)(USB_BASE_ADDR + 0x24C)) | |
/* USB Device SIE Command Reagisters */ | |
#define USBCmdCode (*(volatile unsigned long *)(USB_BASE_ADDR + 0x210)) | |
#define USBCmdData (*(volatile unsigned long *)(USB_BASE_ADDR + 0x214)) | |
/* USB Device Data Transfer Registers */ | |
#define USBRxData (*(volatile unsigned long *)(USB_BASE_ADDR + 0x218)) | |
#define USBTxData (*(volatile unsigned long *)(USB_BASE_ADDR + 0x21C)) | |
#define USBRxPLen (*(volatile unsigned long *)(USB_BASE_ADDR + 0x220)) | |
#define USBTxPLen (*(volatile unsigned long *)(USB_BASE_ADDR + 0x224)) | |
#define USBCtrl (*(volatile unsigned long *)(USB_BASE_ADDR + 0x228)) | |
/* USB Device DMA Registers */ | |
#define USBDMARSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x250)) | |
#define USBDMARClr (*(volatile unsigned long *)(USB_BASE_ADDR + 0x254)) | |
#define USBDMARSet (*(volatile unsigned long *)(USB_BASE_ADDR + 0x258)) | |
#define USBUDCAH (*(volatile unsigned long *)(USB_BASE_ADDR + 0x280)) | |
#define USBEpDMASt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x284)) | |
#define USBEpDMAEn (*(volatile unsigned long *)(USB_BASE_ADDR + 0x288)) | |
#define USBEpDMADis (*(volatile unsigned long *)(USB_BASE_ADDR + 0x28C)) | |
#define USBDMAIntSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x290)) | |
#define USBDMAIntEn (*(volatile unsigned long *)(USB_BASE_ADDR + 0x294)) | |
#define USBEoTIntSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2A0)) | |
#define USBEoTIntClr (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2A4)) | |
#define USBEoTIntSet (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2A8)) | |
#define USBNDDRIntSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2AC)) | |
#define USBNDDRIntClr (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2B0)) | |
#define USBNDDRIntSet (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2B4)) | |
#define USBSysErrIntSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2B8)) | |
#define USBSysErrIntClr (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2BC)) | |
#define USBSysErrIntSet (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2C0)) | |
/* USB Host Controller */ | |
#define HcRevision (*(volatile unsigned long *)(USB_BASE_ADDR + 0x000)) | |
#define HcControl (*(volatile unsigned long *)(USB_BASE_ADDR + 0x004)) | |
#define HcCommandStatus (*(volatile unsigned long *)(USB_BASE_ADDR + 0x008)) | |
#define HcInterruptStatus (*(volatile unsigned long *)(USB_BASE_ADDR + 0x00C)) | |
#define HcInterruptEnable (*(volatile unsigned long *)(USB_BASE_ADDR + 0x010)) | |
#define HcInterruptDisable (*(volatile unsigned long *)(USB_BASE_ADDR + 0x014)) | |
#define HcHCCA (*(volatile unsigned long *)(USB_BASE_ADDR + 0x018)) | |
#define HcPeriodCurrentED (*(volatile unsigned long *)(USB_BASE_ADDR + 0x01C)) | |
#define HcControlHeadED (*(volatile unsigned long *)(USB_BASE_ADDR + 0x020)) | |
#define HcControlCurrentED (*(volatile unsigned long *)(USB_BASE_ADDR + 0x024)) | |
#define HcBulkHeadED (*(volatile unsigned long *)(USB_BASE_ADDR + 0x028)) | |
#define HcBulkCurrentED (*(volatile unsigned long *)(USB_BASE_ADDR + 0x02C)) | |
#define HcDoneHead (*(volatile unsigned long *)(USB_BASE_ADDR + 0x030)) | |
#define HcFmInterval (*(volatile unsigned long *)(USB_BASE_ADDR + 0x034)) | |
#define HcFmRemaining (*(volatile unsigned long *)(USB_BASE_ADDR + 0x038)) | |
#define HcFmNumber (*(volatile unsigned long *)(USB_BASE_ADDR + 0x03C)) | |
#define HcPeriodStart (*(volatile unsigned long *)(USB_BASE_ADDR + 0x040)) | |
#define HcLSThreshold (*(volatile unsigned long *)(USB_BASE_ADDR + 0x044)) | |
#define HcRhDescriptorA (*(volatile unsigned long *)(USB_BASE_ADDR + 0x048)) | |
#define HcRhDescriptorB (*(volatile unsigned long *)(USB_BASE_ADDR + 0x04C)) | |
#define HcRhStatus (*(volatile unsigned long *)(USB_BASE_ADDR + 0x050)) | |
#define HcRhPortStatus1 (*(volatile unsigned long *)(USB_BASE_ADDR + 0x054)) | |
#define HcRhPortStatus2 (*(volatile unsigned long *)(USB_BASE_ADDR + 0x058)) | |
/* USB OTG Controller */ | |
/* USB OTG Registers */ | |
#define OTGIntSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0x100)) | |
#define OTGIntEn (*(volatile unsigned long *)(USB_BASE_ADDR + 0x104)) | |
#define OTGIntSet (*(volatile unsigned long *)(USB_BASE_ADDR + 0x108)) | |
#define OTGIntClr (*(volatile unsigned long *)(USB_BASE_ADDR + 0x10C)) | |
#define OTGIntCtrl (*(volatile unsigned long *)(USB_BASE_ADDR + 0x110)) | |
#define OTGTmr (*(volatile unsigned long *)(USB_BASE_ADDR + 0x114)) | |
/* USB OTG I2C Registers */ | |
#define I2C_RX (*(volatile unsigned long *)(USB_BASE_ADDR + 0x300)) | |
#define I2C_TX (*(volatile unsigned long *)(USB_BASE_ADDR + 0x300)) | |
#define I2C_STS (*(volatile unsigned long *)(USB_BASE_ADDR + 0x304)) | |
#define I2C_CTL (*(volatile unsigned long *)(USB_BASE_ADDR + 0x308)) | |
#define I2C_CLKHI (*(volatile unsigned long *)(USB_BASE_ADDR + 0x30C)) | |
#define I2C_CLKLO (*(volatile unsigned long *)(USB_BASE_ADDR + 0x310)) | |
/* USB OTG Clock Control Registers */ | |
#define OTGClkCtrl (*(volatile unsigned long *)(USB_BASE_ADDR + 0xFF4)) | |
#define OTGClkSt (*(volatile unsigned long *)(USB_BASE_ADDR + 0xFF8)) | |
/* Ethernet MAC */ | |
#define MAC_BASE_ADDR 0x50000000 | |
/* MAC Registers */ | |
#define ETH_MAC1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x000)) | |
#define ETH_MAC2 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x004)) | |
#define ETH_IPGT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x008)) | |
#define ETH_IPGR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x00C)) | |
#define ETH_CLRT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x010)) | |
#define ETH_MAXF (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x014)) | |
#define ETH_PHYSUPP (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x018)) | |
#define ETH_TEST (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x01C)) | |
#define ETH_MIICFG (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x020)) | |
#define ETH_MIICMD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x024)) | |
#define ETH_MIIADR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x028)) | |
#define ETH_MIIWTD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x02C)) | |
#define ETH_MIIRDD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x030)) | |
#define ETH_MIIIND (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x034)) | |
#define ETH_SA0 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x040)) | |
#define ETH_SA1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x044)) | |
#define ETH_SA2 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x048)) | |
/* MAC Control Registers */ | |
#define ETH_COMMAND (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x100)) | |
#define ETH_STATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x104)) | |
#define ETH_RXDESC (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x108)) | |
#define ETH_RXSTAT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x10C)) | |
#define ETH_RXDESCRNO (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x110)) | |
#define ETH_RXPRODIX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x114)) | |
#define ETH_RXCONSIX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x118)) | |
#define ETH_TXDESC (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x11C)) | |
#define ETH_TXSTAT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x120)) | |
#define ETH_TXDESCRNO (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x124)) | |
#define ETH_TXPRODIX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x128)) | |
#define ETH_TXCONSIX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x12C)) | |
#define ETH_TSV0 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x158)) | |
#define ETH_TSV1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x15C)) | |
#define ETH_RSV (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x160)) | |
#define ETH_FLOWCNTCOUNT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x170)) | |
#define ETH_FLOWCNTSTAT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x174)) | |
/* MAX Rx Filter Registers */ | |
#define ETH_RXFILTERCTL (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x200)) | |
#define ETH_RXFILTERWOLSTAT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x204)) | |
#define ETH_RXFILTERWOLCLR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x208)) | |
#define ETH_HASHFILTERL (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x210)) | |
#define ETH_HASHFILTERH (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x214)) | |
/* MAC Module Control Registers */ | |
#define ETH_INSTSTAT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE0)) | |
#define ETH_INTENABLE (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE4)) | |
#define ETH_INTCLEAR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE8)) | |
#define ETH_INTSET (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFEC)) | |
#define ETH_POWERDOWN (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFF4)) | |
#define MAC_Module_ID (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFFC)) | |
/* Ethernet MAC (32 bit data bus) -- all registers are RW unless indicated in parentheses */ | |
#define MAC_BASE_ADDR 0x50000000 | |
#define MAC_MAC1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x000)) /* MAC config reg 1 */ | |
#define MAC_MAC2 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x004)) /* MAC config reg 2 */ | |
#define MAC_IPGT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x008)) /* b2b InterPacketGap reg */ | |
#define MAC_IPGR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x00C)) /* non b2b InterPacketGap reg */ | |
#define MAC_CLRT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x010)) /* CoLlision window/ReTry reg */ | |
#define MAC_MAXF (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x014)) /* MAXimum Frame reg */ | |
#define MAC_SUPP (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x018)) /* PHY SUPPort reg */ | |
#define MAC_TEST (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x01C)) /* TEST reg */ | |
#define MAC_MCFG (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x020)) /* MII Mgmt ConFiG reg */ | |
#define MAC_MCMD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x024)) /* MII Mgmt CoMmanD reg */ | |
#define MAC_MADR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x028)) /* MII Mgmt ADdRess reg */ | |
#define MAC_MWTD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x02C)) /* MII Mgmt WriTe Data reg (WO) */ | |
#define MAC_MRDD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x030)) /* MII Mgmt ReaD Data reg (RO) */ | |
#define MAC_MIND (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x034)) /* MII Mgmt INDicators reg (RO) */ | |
#define MAC_SA0 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x040)) /* Station Address 0 reg */ | |
#define MAC_SA1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x044)) /* Station Address 1 reg */ | |
#define MAC_SA2 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x048)) /* Station Address 2 reg */ | |
#define MAC_COMMAND (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x100)) /* Command reg */ | |
#define MAC_STATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x104)) /* Status reg (RO) */ | |
#define MAC_RXDESCRIPTOR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x108)) /* Rx descriptor base address reg */ | |
#define MAC_RXSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x10C)) /* Rx status base address reg */ | |
#define MAC_RXDESCRIPTORNUM (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x110)) /* Rx number of descriptors reg */ | |
#define MAC_RXPRODUCEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x114)) /* Rx produce index reg (RO) */ | |
#define MAC_RXCONSUMEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x118)) /* Rx consume index reg */ | |
#define MAC_TXDESCRIPTOR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x11C)) /* Tx descriptor base address reg */ | |
#define MAC_TXSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x120)) /* Tx status base address reg */ | |
#define MAC_TXDESCRIPTORNUM (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x124)) /* Tx number of descriptors reg */ | |
#define MAC_TXPRODUCEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x128)) /* Tx produce index reg */ | |
#define MAC_TXCONSUMEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x12C)) /* Tx consume index reg (RO) */ | |
#define MAC_TSV0 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x158)) /* Tx status vector 0 reg (RO) */ | |
#define MAC_TSV1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x15C)) /* Tx status vector 1 reg (RO) */ | |
#define MAC_RSV (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x160)) /* Rx status vector reg (RO) */ | |
#define MAC_FLOWCONTROLCNT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x170)) /* Flow control counter reg */ | |
#define MAC_FLOWCONTROLSTS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x174)) /* Flow control status reg */ | |
#define MAC_RXFILTERCTRL (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x200)) /* Rx filter ctrl reg */ | |
#define MAC_RXFILTERWOLSTS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x204)) /* Rx filter WoL status reg (RO) */ | |
#define MAC_RXFILTERWOLCLR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x208)) /* Rx filter WoL clear reg (WO) */ | |
#define MAC_HASHFILTERL (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x210)) /* Hash filter LSBs reg */ | |
#define MAC_HASHFILTERH (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x214)) /* Hash filter MSBs reg */ | |
#define MAC_INTSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE0)) /* Interrupt status reg (RO) */ | |
#define MAC_INTENABLE (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE4)) /* Interrupt enable reg */ | |
#define MAC_INTCLEAR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE8)) /* Interrupt clear reg (WO) */ | |
#define MAC_INTSET (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFEC)) /* Interrupt set reg (WO) */ | |
#define MAC_POWERDOWN (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFF4)) /* Power-down reg */ | |
#define MAC_MODULEID (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFFC)) /* Module ID reg (RO) */ | |
#define PCONP_PCTIM0 0x00000002 | |
#define PCONP_PCTIM1 0x00000004 | |
#define PCONP_PCUART0 0x00000008 | |
#define PCONP_PCUART1 0x00000010 | |
#define PCONP_PCPWM1 0x00000040 | |
#define PCONP_PCI2C0 0x00000080 | |
#define PCONP_PCSPI 0x00000100 | |
#define PCONP_PCRTC 0x00000200 | |
#define PCONP_PCSSP1 0x00000400 | |
#define PCONP_PCAD 0x00001000 | |
#define PCONP_PCCAN1 0x00002000 | |
#define PCONP_PCCAN2 0x00004000 | |
#define PCONP_PCGPIO 0x00008000 | |
#define PCONP_PCRIT 0x00010000 | |
#define PCONP_PCMCPWM 0x00020000 | |
#define PCONP_PCQEI 0x00040000 | |
#define PCONP_PCI2C1 0x00080000 | |
#define PCONP_PCSSP0 0x00200000 | |
#define PCONP_PCTIM2 0x00400000 | |
#define PCONP_PCTIM3 0x00800000 | |
#define PCONP_PCUART2 0x01000000 | |
#define PCONP_PCUART3 0x02000000 | |
#define PCONP_PCI2C2 0x04000000 | |
#define PCONP_PCI2S 0x08000000 | |
#define PCONP_PCGPDMA 0x20000000 | |
#define PCONP_PCENET 0x40000000 | |
#define PCONP_PCUSB 0x80000000 | |
#define PLLCON_PLLE 0x00000001 | |
#define PLLCON_PLLC 0x00000002 | |
#define PLLCON_MASK 0x00000003 | |
#define PLLCFG_MUL1 0x00000000 | |
#define PLLCFG_MUL2 0x00000001 | |
#define PLLCFG_MUL3 0x00000002 | |
#define PLLCFG_MUL4 0x00000003 | |
#define PLLCFG_MUL5 0x00000004 | |
#define PLLCFG_MUL6 0x00000005 | |
#define PLLCFG_MUL7 0x00000006 | |
#define PLLCFG_MUL8 0x00000007 | |
#define PLLCFG_MUL9 0x00000008 | |
#define PLLCFG_MUL10 0x00000009 | |
#define PLLCFG_MUL11 0x0000000A | |
#define PLLCFG_MUL12 0x0000000B | |
#define PLLCFG_MUL13 0x0000000C | |
#define PLLCFG_MUL14 0x0000000D | |
#define PLLCFG_MUL15 0x0000000E | |
#define PLLCFG_MUL16 0x0000000F | |
#define PLLCFG_MUL17 0x00000010 | |
#define PLLCFG_MUL18 0x00000011 | |
#define PLLCFG_MUL19 0x00000012 | |
#define PLLCFG_MUL20 0x00000013 | |
#define PLLCFG_MUL21 0x00000014 | |
#define PLLCFG_MUL22 0x00000015 | |
#define PLLCFG_MUL23 0x00000016 | |
#define PLLCFG_MUL24 0x00000017 | |
#define PLLCFG_MUL25 0x00000018 | |
#define PLLCFG_MUL26 0x00000019 | |
#define PLLCFG_MUL27 0x0000001A | |
#define PLLCFG_MUL28 0x0000001B | |
#define PLLCFG_MUL29 0x0000001C | |
#define PLLCFG_MUL30 0x0000001D | |
#define PLLCFG_MUL31 0x0000001E | |
#define PLLCFG_MUL32 0x0000001F | |
#define PLLCFG_MUL33 0x00000020 | |
#define PLLCFG_MUL34 0x00000021 | |
#define PLLCFG_MUL35 0x00000022 | |
#define PLLCFG_MUL36 0x00000023 | |
#define PLLCFG_DIV1 0x00000000 | |
#define PLLCFG_DIV2 0x00010000 | |
#define PLLCFG_DIV3 0x00020000 | |
#define PLLCFG_DIV4 0x00030000 | |
#define PLLCFG_DIV5 0x00040000 | |
#define PLLCFG_DIV6 0x00050000 | |
#define PLLCFG_DIV7 0x00060000 | |
#define PLLCFG_DIV8 0x00070000 | |
#define PLLCFG_DIV9 0x00080000 | |
#define PLLCFG_DIV10 0x00090000 | |
#define PLLCFG_MASK 0x00FF7FFF | |
#define PLLSTAT_MSEL_MASK 0x00007FFF | |
#define PLLSTAT_NSEL_MASK 0x00FF0000 | |
#define PLLSTAT_PLLE (1 << 24) | |
#define PLLSTAT_PLLC (1 << 25) | |
#define PLLSTAT_PLOCK (1 << 26) | |
#define PLLFEED_FEED1 0x000000AA | |
#define PLLFEED_FEED2 0x00000055 | |
#define NVIC_IRQ_WDT 0u // IRQ0, exception number 16 | |
#define NVIC_IRQ_TIMER0 1u // IRQ1, exception number 17 | |
#define NVIC_IRQ_TIMER1 2u // IRQ2, exception number 18 | |
#define NVIC_IRQ_TIMER2 3u // IRQ3, exception number 19 | |
#define NVIC_IRQ_TIMER3 4u // IRQ4, exception number 20 | |
#define NVIC_IRQ_UART0 5u // IRQ5, exception number 21 | |
#define NVIC_IRQ_UART1 6u // IRQ6, exception number 22 | |
#define NVIC_IRQ_UART2 7u // IRQ7, exception number 23 | |
#define NVIC_IRQ_UART3 8u // IRQ8, exception number 24 | |
#define NVIC_IRQ_PWM1 9u // IRQ9, exception number 25 | |
#define NVIC_IRQ_I2C0 10u // IRQ10, exception number 26 | |
#define NVIC_IRQ_I2C1 11u // IRQ11, exception number 27 | |
#define NVIC_IRQ_I2C2 12u // IRQ12, exception number 28 | |
#define NVIC_IRQ_SPI 13u // IRQ13, exception number 29 | |
#define NVIC_IRQ_SSP0 14u // IRQ14, exception number 30 | |
#define NVIC_IRQ_SSP1 15u // IRQ15, exception number 31 | |
#define NVIC_IRQ_PLL0 16u // IRQ16, exception number 32 | |
#define NVIC_IRQ_RTC 17u // IRQ17, exception number 33 | |
#define NVIC_IRQ_EINT0 18u // IRQ18, exception number 34 | |
#define NVIC_IRQ_EINT1 19u // IRQ19, exception number 35 | |
#define NVIC_IRQ_EINT2 20u // IRQ20, exception number 36 | |
#define NVIC_IRQ_EINT3 21u // IRQ21, exception number 37 | |
#define NVIC_IRQ_ADC 22u // IRQ22, exception number 38 | |
#define NVIC_IRQ_BOD 23u // IRQ23, exception number 39 | |
#define NVIC_IRQ_USB 24u // IRQ24, exception number 40 | |
#define NVIC_IRQ_CAN 25u // IRQ25, exception number 41 | |
#define NVIC_IRQ_GPDMA 26u // IRQ26, exception number 42 | |
#define NVIC_IRQ_I2S 27u // IRQ27, exception number 43 | |
#define NVIC_IRQ_ETHERNET 28u // IRQ28, exception number 44 | |
#define NVIC_IRQ_RIT 29u // IRQ29, exception number 45 | |
#define NVIC_IRQ_MCPWM 30u // IRQ30, exception number 46 | |
#define NVIC_IRQ_QE 31u // IRQ31, exception number 47 | |
#define NVIC_IRQ_PLL1 32u // IRQ32, exception number 48 | |
#define NVIC_IRQ_USB_ACT 33u // IRQ33, exception number 49 | |
#define NVIC_IRQ_CAN_ACT 34u // IRQ34, exception number 50 | |
typedef enum IRQn | |
{ | |
/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ | |
NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ | |
MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */ | |
BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */ | |
UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */ | |
SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */ | |
DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */ | |
PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */ | |
SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */ | |
/****** LPC17xx Specific Interrupt Numbers *******************************************************/ | |
WDT_IRQn = 0, /*!< Watchdog Timer Interrupt */ | |
TIMER0_IRQn = 1, /*!< Timer0 Interrupt */ | |
TIMER1_IRQn = 2, /*!< Timer1 Interrupt */ | |
TIMER2_IRQn = 3, /*!< Timer2 Interrupt */ | |
TIMER3_IRQn = 4, /*!< Timer3 Interrupt */ | |
UART0_IRQn = 5, /*!< UART0 Interrupt */ | |
UART1_IRQn = 6, /*!< UART1 Interrupt */ | |
UART2_IRQn = 7, /*!< UART2 Interrupt */ | |
UART3_IRQn = 8, /*!< UART3 Interrupt */ | |
PWM1_IRQn = 9, /*!< PWM1 Interrupt */ | |
I2C0_IRQn = 10, /*!< I2C0 Interrupt */ | |
I2C1_IRQn = 11, /*!< I2C1 Interrupt */ | |
I2C2_IRQn = 12, /*!< I2C2 Interrupt */ | |
SPI_IRQn = 13, /*!< SPI Interrupt */ | |
SSP0_IRQn = 14, /*!< SSP0 Interrupt */ | |
SSP1_IRQn = 15, /*!< SSP1 Interrupt */ | |
PLL0_IRQn = 16, /*!< PLL0 Lock (Main PLL) Interrupt */ | |
RTC_IRQn = 17, /*!< Real Time Clock Interrupt */ | |
EINT0_IRQn = 18, /*!< External Interrupt 0 Interrupt */ | |
EINT1_IRQn = 19, /*!< External Interrupt 1 Interrupt */ | |
EINT2_IRQn = 20, /*!< External Interrupt 2 Interrupt */ | |
EINT3_IRQn = 21, /*!< External Interrupt 3 Interrupt */ | |
ADC_IRQn = 22, /*!< A/D Converter Interrupt */ | |
BOD_IRQn = 23, /*!< Brown-Out Detect Interrupt */ | |
USB_IRQn = 24, /*!< USB Interrupt */ | |
CAN_IRQn = 25, /*!< CAN Interrupt */ | |
DMA_IRQn = 26, /*!< General Purpose DMA Interrupt */ | |
I2S_IRQn = 27, /*!< I2S Interrupt */ | |
ENET_IRQn = 28, /*!< Ethernet Interrupt */ | |
RIT_IRQn = 29, /*!< Repetitive Interrupt Timer Interrupt */ | |
MCPWM_IRQn = 30, /*!< Motor Control PWM Interrupt */ | |
QEI_IRQn = 31, /*!< Quadrature Encoder Interface Interrupt */ | |
PLL1_IRQn = 32, /*!< PLL1 Lock (USB PLL) Interrupt */ | |
} IRQn_Type; | |
#endif // __LPC17xx_H |