/* - ---------------------------------------------------------------------------- */
/* -          ATMEL Microcontroller Software Support  -  ROUSSET  - */
/* - ---------------------------------------------------------------------------- */
/* -  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
/* -  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
/* -  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
/* -  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
/* -  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
/* -  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
/* -  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
/* -  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
/* -  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
/* -  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* - ---------------------------------------------------------------------------- */
/* - File Name           : AT91SAM7X256.h */
/* - Object              : AT91SAM7X256 definitions */
/* - Generated           : AT91 SW Application Group  05/20/2005 (16:22:29) */
/* - */
/* - CVS Reference       : /AT91SAM7X256.pl/1.11/Tue May 10 12:15:32 2005// */
/* - CVS Reference       : /SYS_SAM7X.pl/1.3/Tue Feb  1 17:01:43 2005// */
/* - CVS Reference       : /MC_SAM7X.pl/1.2/Fri May 20 14:13:04 2005// */
/* - CVS Reference       : /PMC_SAM7X.pl/1.4/Tue Feb  8 13:58:10 2005// */
/* - CVS Reference       : /RSTC_SAM7X.pl/1.1/Tue Feb  1 16:16:26 2005// */
/* - CVS Reference       : /UDP_SAM7X.pl/1.1/Tue May 10 11:35:35 2005// */
/* - CVS Reference       : /PWM_SAM7X.pl/1.1/Tue May 10 11:53:07 2005// */
/* - CVS Reference       : /AIC_6075B.pl/1.3/Fri May 20 14:01:30 2005// */
/* - CVS Reference       : /PIO_6057A.pl/1.2/Thu Feb  3 10:18:28 2005// */
/* - CVS Reference       : /RTTC_6081A.pl/1.2/Tue Nov  9 14:43:58 2004// */
/* - CVS Reference       : /PITC_6079A.pl/1.2/Tue Nov  9 14:43:56 2004// */
/* - CVS Reference       : /WDTC_6080A.pl/1.3/Tue Nov  9 14:44:00 2004// */
/* - CVS Reference       : /VREG_6085B.pl/1.1/Tue Feb  1 16:05:48 2005// */
/* - CVS Reference       : /PDC_6074C.pl/1.2/Thu Feb  3 08:48:54 2005// */
/* - CVS Reference       : /DBGU_6059D.pl/1.1/Mon Jan 31 13:15:32 2005// */
/* - CVS Reference       : /SPI_6088D.pl/1.3/Fri May 20 14:08:59 2005// */
/* - CVS Reference       : /US_6089C.pl/1.1/Mon Jul 12 18:23:26 2004// */
/* - CVS Reference       : /SSC_6078A.pl/1.1/Tue Jul 13 07:45:40 2004// */
/* - CVS Reference       : /TWI_6061A.pl/1.1/Tue Jul 13 07:38:06 2004// */
/* - CVS Reference       : /TC_6082A.pl/1.7/Fri Mar 11 12:52:17 2005// */
/* - CVS Reference       : /CAN_6019B.pl/1.1/Tue Mar  8 12:42:22 2005// */
/* - CVS Reference       : /EMACB_6119A.pl/1.5/Thu Feb  3 15:52:04 2005// */
/* - CVS Reference       : /ADC_6051C.pl/1.1/Fri Oct 17 09:12:38 2003// */
/* - CVS Reference       : /AES_6149A.pl/1.10/Mon Feb  7 09:44:25 2005// */
/* - CVS Reference       : /DES3_6150A.pl/1.1/Mon Jan 17 08:34:31 2005// */
/* - ---------------------------------------------------------------------------- */

#ifndef AT91SAM7X256_H
#define AT91SAM7X256_H

typedef volatile unsigned int AT91_REG; /* Hardware register definition */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR System Peripherals */
/* ***************************************************************************** */
typedef struct _AT91S_SYS
{
    AT91_REG AIC_SMR[ 32 ];     /* Source Mode Register */
    AT91_REG AIC_SVR[ 32 ];     /* Source Vector Register */
    AT91_REG AIC_IVR;           /* IRQ Vector Register */
    AT91_REG AIC_FVR;           /* FIQ Vector Register */
    AT91_REG AIC_ISR;           /* Interrupt Status Register */
    AT91_REG AIC_IPR;           /* Interrupt Pending Register */
    AT91_REG AIC_IMR;           /* Interrupt Mask Register */
    AT91_REG AIC_CISR;          /* Core Interrupt Status Register */
    AT91_REG Reserved0[ 2 ];    /* */
    AT91_REG AIC_IECR;          /* Interrupt Enable Command Register */
    AT91_REG AIC_IDCR;          /* Interrupt Disable Command Register */
    AT91_REG AIC_ICCR;          /* Interrupt Clear Command Register */
    AT91_REG AIC_ISCR;          /* Interrupt Set Command Register */
    AT91_REG AIC_EOICR;         /* End of Interrupt Command Register */
    AT91_REG AIC_SPU;           /* Spurious Vector Register */
    AT91_REG AIC_DCR;           /* Debug Control Register (Protect) */
    AT91_REG Reserved1[ 1 ];    /* */
    AT91_REG AIC_FFER;          /* Fast Forcing Enable Register */
    AT91_REG AIC_FFDR;          /* Fast Forcing Disable Register */
    AT91_REG AIC_FFSR;          /* Fast Forcing Status Register */
    AT91_REG Reserved2[ 45 ];   /* */
    AT91_REG DBGU_CR;           /* Control Register */
    AT91_REG DBGU_MR;           /* Mode Register */
    AT91_REG DBGU_IER;          /* Interrupt Enable Register */
    AT91_REG DBGU_IDR;          /* Interrupt Disable Register */
    AT91_REG DBGU_IMR;          /* Interrupt Mask Register */
    AT91_REG DBGU_CSR;          /* Channel Status Register */
    AT91_REG DBGU_RHR;          /* Receiver Holding Register */
    AT91_REG DBGU_THR;          /* Transmitter Holding Register */
    AT91_REG DBGU_BRGR;         /* Baud Rate Generator Register */
    AT91_REG Reserved3[ 7 ];    /* */
    AT91_REG DBGU_CIDR;         /* Chip ID Register */
    AT91_REG DBGU_EXID;         /* Chip ID Extension Register */
    AT91_REG DBGU_FNTR;         /* Force NTRST Register */
    AT91_REG Reserved4[ 45 ];   /* */
    AT91_REG DBGU_RPR;          /* Receive Pointer Register */
    AT91_REG DBGU_RCR;          /* Receive Counter Register */
    AT91_REG DBGU_TPR;          /* Transmit Pointer Register */
    AT91_REG DBGU_TCR;          /* Transmit Counter Register */
    AT91_REG DBGU_RNPR;         /* Receive Next Pointer Register */
    AT91_REG DBGU_RNCR;         /* Receive Next Counter Register */
    AT91_REG DBGU_TNPR;         /* Transmit Next Pointer Register */
    AT91_REG DBGU_TNCR;         /* Transmit Next Counter Register */
    AT91_REG DBGU_PTCR;         /* PDC Transfer Control Register */
    AT91_REG DBGU_PTSR;         /* PDC Transfer Status Register */
    AT91_REG Reserved5[ 54 ];   /* */
    AT91_REG PIOA_PER;          /* PIO Enable Register */
    AT91_REG PIOA_PDR;          /* PIO Disable Register */
    AT91_REG PIOA_PSR;          /* PIO Status Register */
    AT91_REG Reserved6[ 1 ];    /* */
    AT91_REG PIOA_OER;          /* Output Enable Register */
    AT91_REG PIOA_ODR;          /* Output Disable Registerr */
    AT91_REG PIOA_OSR;          /* Output Status Register */
    AT91_REG Reserved7[ 1 ];    /* */
    AT91_REG PIOA_IFER;         /* Input Filter Enable Register */
    AT91_REG PIOA_IFDR;         /* Input Filter Disable Register */
    AT91_REG PIOA_IFSR;         /* Input Filter Status Register */
    AT91_REG Reserved8[ 1 ];    /* */
    AT91_REG PIOA_SODR;         /* Set Output Data Register */
    AT91_REG PIOA_CODR;         /* Clear Output Data Register */
    AT91_REG PIOA_ODSR;         /* Output Data Status Register */
    AT91_REG PIOA_PDSR;         /* Pin Data Status Register */
    AT91_REG PIOA_IER;          /* Interrupt Enable Register */
    AT91_REG PIOA_IDR;          /* Interrupt Disable Register */
    AT91_REG PIOA_IMR;          /* Interrupt Mask Register */
    AT91_REG PIOA_ISR;          /* Interrupt Status Register */
    AT91_REG PIOA_MDER;         /* Multi-driver Enable Register */
    AT91_REG PIOA_MDDR;         /* Multi-driver Disable Register */
    AT91_REG PIOA_MDSR;         /* Multi-driver Status Register */
    AT91_REG Reserved9[ 1 ];    /* */
    AT91_REG PIOA_PPUDR;        /* Pull-up Disable Register */
    AT91_REG PIOA_PPUER;        /* Pull-up Enable Register */
    AT91_REG PIOA_PPUSR;        /* Pull-up Status Register */
    AT91_REG Reserved10[ 1 ];   /* */
    AT91_REG PIOA_ASR;          /* Select A Register */
    AT91_REG PIOA_BSR;          /* Select B Register */
    AT91_REG PIOA_ABSR;         /* AB Select Status Register */
    AT91_REG Reserved11[ 9 ];   /* */
    AT91_REG PIOA_OWER;         /* Output Write Enable Register */
    AT91_REG PIOA_OWDR;         /* Output Write Disable Register */
    AT91_REG PIOA_OWSR;         /* Output Write Status Register */
    AT91_REG Reserved12[ 85 ];  /* */
    AT91_REG PIOB_PER;          /* PIO Enable Register */
    AT91_REG PIOB_PDR;          /* PIO Disable Register */
    AT91_REG PIOB_PSR;          /* PIO Status Register */
    AT91_REG Reserved13[ 1 ];   /* */
    AT91_REG PIOB_OER;          /* Output Enable Register */
    AT91_REG PIOB_ODR;          /* Output Disable Registerr */
    AT91_REG PIOB_OSR;          /* Output Status Register */
    AT91_REG Reserved14[ 1 ];   /* */
    AT91_REG PIOB_IFER;         /* Input Filter Enable Register */
    AT91_REG PIOB_IFDR;         /* Input Filter Disable Register */
    AT91_REG PIOB_IFSR;         /* Input Filter Status Register */
    AT91_REG Reserved15[ 1 ];   /* */
    AT91_REG PIOB_SODR;         /* Set Output Data Register */
    AT91_REG PIOB_CODR;         /* Clear Output Data Register */
    AT91_REG PIOB_ODSR;         /* Output Data Status Register */
    AT91_REG PIOB_PDSR;         /* Pin Data Status Register */
    AT91_REG PIOB_IER;          /* Interrupt Enable Register */
    AT91_REG PIOB_IDR;          /* Interrupt Disable Register */
    AT91_REG PIOB_IMR;          /* Interrupt Mask Register */
    AT91_REG PIOB_ISR;          /* Interrupt Status Register */
    AT91_REG PIOB_MDER;         /* Multi-driver Enable Register */
    AT91_REG PIOB_MDDR;         /* Multi-driver Disable Register */
    AT91_REG PIOB_MDSR;         /* Multi-driver Status Register */
    AT91_REG Reserved16[ 1 ];   /* */
    AT91_REG PIOB_PPUDR;        /* Pull-up Disable Register */
    AT91_REG PIOB_PPUER;        /* Pull-up Enable Register */
    AT91_REG PIOB_PPUSR;        /* Pull-up Status Register */
    AT91_REG Reserved17[ 1 ];   /* */
    AT91_REG PIOB_ASR;          /* Select A Register */
    AT91_REG PIOB_BSR;          /* Select B Register */
    AT91_REG PIOB_ABSR;         /* AB Select Status Register */
    AT91_REG Reserved18[ 9 ];   /* */
    AT91_REG PIOB_OWER;         /* Output Write Enable Register */
    AT91_REG PIOB_OWDR;         /* Output Write Disable Register */
    AT91_REG PIOB_OWSR;         /* Output Write Status Register */
    AT91_REG Reserved19[ 341 ]; /* */
    AT91_REG PMC_SCER;          /* System Clock Enable Register */
    AT91_REG PMC_SCDR;          /* System Clock Disable Register */
    AT91_REG PMC_SCSR;          /* System Clock Status Register */
    AT91_REG Reserved20[ 1 ];   /* */
    AT91_REG PMC_PCER;          /* Peripheral Clock Enable Register */
    AT91_REG PMC_PCDR;          /* Peripheral Clock Disable Register */
    AT91_REG PMC_PCSR;          /* Peripheral Clock Status Register */
    AT91_REG Reserved21[ 1 ];   /* */
    AT91_REG PMC_MOR;           /* Main Oscillator Register */
    AT91_REG PMC_MCFR;          /* Main Clock  Frequency Register */
    AT91_REG Reserved22[ 1 ];   /* */
    AT91_REG PMC_PLLR;          /* PLL Register */
    AT91_REG PMC_MCKR;          /* Master Clock Register */
    AT91_REG Reserved23[ 3 ];   /* */
    AT91_REG PMC_PCKR[ 4 ];     /* Programmable Clock Register */
    AT91_REG Reserved24[ 4 ];   /* */
    AT91_REG PMC_IER;           /* Interrupt Enable Register */
    AT91_REG PMC_IDR;           /* Interrupt Disable Register */
    AT91_REG PMC_SR;            /* Status Register */
    AT91_REG PMC_IMR;           /* Interrupt Mask Register */
    AT91_REG Reserved25[ 36 ];  /* */
    AT91_REG RSTC_RCR;          /* Reset Control Register */
    AT91_REG RSTC_RSR;          /* Reset Status Register */
    AT91_REG RSTC_RMR;          /* Reset Mode Register */
    AT91_REG Reserved26[ 5 ];   /* */
    AT91_REG RTTC_RTMR;         /* Real-time Mode Register */
    AT91_REG RTTC_RTAR;         /* Real-time Alarm Register */
    AT91_REG RTTC_RTVR;         /* Real-time Value Register */
    AT91_REG RTTC_RTSR;         /* Real-time Status Register */
    AT91_REG PITC_PIMR;         /* Period Interval Mode Register */
    AT91_REG PITC_PISR;         /* Period Interval Status Register */
    AT91_REG PITC_PIVR;         /* Period Interval Value Register */
    AT91_REG PITC_PIIR;         /* Period Interval Image Register */
    AT91_REG WDTC_WDCR;         /* Watchdog Control Register */
    AT91_REG WDTC_WDMR;         /* Watchdog Mode Register */
    AT91_REG WDTC_WDSR;         /* Watchdog Status Register */
    AT91_REG Reserved27[ 5 ];   /* */
    AT91_REG VREG_MR;           /* Voltage Regulator Mode Register */
} AT91S_SYS, * AT91PS_SYS;


/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Advanced Interrupt Controller */
/* ***************************************************************************** */
typedef struct _AT91S_AIC
{
    AT91_REG AIC_SMR[ 32 ];  /* Source Mode Register */
    AT91_REG AIC_SVR[ 32 ];  /* Source Vector Register */
    AT91_REG AIC_IVR;        /* IRQ Vector Register */
    AT91_REG AIC_FVR;        /* FIQ Vector Register */
    AT91_REG AIC_ISR;        /* Interrupt Status Register */
    AT91_REG AIC_IPR;        /* Interrupt Pending Register */
    AT91_REG AIC_IMR;        /* Interrupt Mask Register */
    AT91_REG AIC_CISR;       /* Core Interrupt Status Register */
    AT91_REG Reserved0[ 2 ]; /* */
    AT91_REG AIC_IECR;       /* Interrupt Enable Command Register */
    AT91_REG AIC_IDCR;       /* Interrupt Disable Command Register */
    AT91_REG AIC_ICCR;       /* Interrupt Clear Command Register */
    AT91_REG AIC_ISCR;       /* Interrupt Set Command Register */
    AT91_REG AIC_EOICR;      /* End of Interrupt Command Register */
    AT91_REG AIC_SPU;        /* Spurious Vector Register */
    AT91_REG AIC_DCR;        /* Debug Control Register (Protect) */
    AT91_REG Reserved1[ 1 ]; /* */
    AT91_REG AIC_FFER;       /* Fast Forcing Enable Register */
    AT91_REG AIC_FFDR;       /* Fast Forcing Disable Register */
    AT91_REG AIC_FFSR;       /* Fast Forcing Status Register */
} AT91S_AIC, * AT91PS_AIC;

/* -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- */
#define AT91C_AIC_PRIOR                            ( ( unsigned int ) 0x7 << 0 ) /* (AIC) Priority Level */
#define     AT91C_AIC_PRIOR_LOWEST                 ( ( unsigned int ) 0x0 )      /* (AIC) Lowest priority level */
#define     AT91C_AIC_PRIOR_HIGHEST                ( ( unsigned int ) 0x7 )      /* (AIC) Highest priority level */
#define AT91C_AIC_SRCTYPE                          ( ( unsigned int ) 0x3 << 5 ) /* (AIC) Interrupt Source Type */
#define     AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL       ( ( unsigned int ) 0x0 << 5 ) /* (AIC) Internal Sources Code Label High-level Sensitive */
#define     AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL        ( ( unsigned int ) 0x0 << 5 ) /* (AIC) External Sources Code Label Low-level Sensitive */
#define     AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE    ( ( unsigned int ) 0x1 << 5 ) /* (AIC) Internal Sources Code Label Positive Edge triggered */
#define     AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE    ( ( unsigned int ) 0x1 << 5 ) /* (AIC) External Sources Code Label Negative Edge triggered */
#define     AT91C_AIC_SRCTYPE_HIGH_LEVEL           ( ( unsigned int ) 0x2 << 5 ) /* (AIC) Internal Or External Sources Code Label High-level Sensitive */
#define     AT91C_AIC_SRCTYPE_POSITIVE_EDGE        ( ( unsigned int ) 0x3 << 5 ) /* (AIC) Internal Or External Sources Code Label Positive Edge triggered */
/* -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- */
#define AT91C_AIC_NFIQ                             ( ( unsigned int ) 0x1 << 0 ) /* (AIC) NFIQ Status */
#define AT91C_AIC_NIRQ                             ( ( unsigned int ) 0x1 << 1 ) /* (AIC) NIRQ Status */
/* -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- */
#define AT91C_AIC_DCR_PROT                         ( ( unsigned int ) 0x1 << 0 ) /* (AIC) Protection Mode */
#define AT91C_AIC_DCR_GMSK                         ( ( unsigned int ) 0x1 << 1 ) /* (AIC) General Mask */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Peripheral DMA Controller */
/* ***************************************************************************** */
typedef struct _AT91S_PDC
{
    AT91_REG PDC_RPR;  /* Receive Pointer Register */
    AT91_REG PDC_RCR;  /* Receive Counter Register */
    AT91_REG PDC_TPR;  /* Transmit Pointer Register */
    AT91_REG PDC_TCR;  /* Transmit Counter Register */
    AT91_REG PDC_RNPR; /* Receive Next Pointer Register */
    AT91_REG PDC_RNCR; /* Receive Next Counter Register */
    AT91_REG PDC_TNPR; /* Transmit Next Pointer Register */
    AT91_REG PDC_TNCR; /* Transmit Next Counter Register */
    AT91_REG PDC_PTCR; /* PDC Transfer Control Register */
    AT91_REG PDC_PTSR; /* PDC Transfer Status Register */
} AT91S_PDC, * AT91PS_PDC;

/* -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- */
#define AT91C_PDC_RXTEN     ( ( unsigned int ) 0x1 << 0 ) /* (PDC) Receiver Transfer Enable */
#define AT91C_PDC_RXTDIS    ( ( unsigned int ) 0x1 << 1 ) /* (PDC) Receiver Transfer Disable */
#define AT91C_PDC_TXTEN     ( ( unsigned int ) 0x1 << 8 ) /* (PDC) Transmitter Transfer Enable */
#define AT91C_PDC_TXTDIS    ( ( unsigned int ) 0x1 << 9 ) /* (PDC) Transmitter Transfer Disable */
/* -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Debug Unit */
/* ***************************************************************************** */
typedef struct _AT91S_DBGU
{
    AT91_REG DBGU_CR;         /* Control Register */
    AT91_REG DBGU_MR;         /* Mode Register */
    AT91_REG DBGU_IER;        /* Interrupt Enable Register */
    AT91_REG DBGU_IDR;        /* Interrupt Disable Register */
    AT91_REG DBGU_IMR;        /* Interrupt Mask Register */
    AT91_REG DBGU_CSR;        /* Channel Status Register */
    AT91_REG DBGU_RHR;        /* Receiver Holding Register */
    AT91_REG DBGU_THR;        /* Transmitter Holding Register */
    AT91_REG DBGU_BRGR;       /* Baud Rate Generator Register */
    AT91_REG Reserved0[ 7 ];  /* */
    AT91_REG DBGU_CIDR;       /* Chip ID Register */
    AT91_REG DBGU_EXID;       /* Chip ID Extension Register */
    AT91_REG DBGU_FNTR;       /* Force NTRST Register */
    AT91_REG Reserved1[ 45 ]; /* */
    AT91_REG DBGU_RPR;        /* Receive Pointer Register */
    AT91_REG DBGU_RCR;        /* Receive Counter Register */
    AT91_REG DBGU_TPR;        /* Transmit Pointer Register */
    AT91_REG DBGU_TCR;        /* Transmit Counter Register */
    AT91_REG DBGU_RNPR;       /* Receive Next Pointer Register */
    AT91_REG DBGU_RNCR;       /* Receive Next Counter Register */
    AT91_REG DBGU_TNPR;       /* Transmit Next Pointer Register */
    AT91_REG DBGU_TNCR;       /* Transmit Next Counter Register */
    AT91_REG DBGU_PTCR;       /* PDC Transfer Control Register */
    AT91_REG DBGU_PTSR;       /* PDC Transfer Status Register */
} AT91S_DBGU, * AT91PS_DBGU;

/* -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- */
#define AT91C_US_RSTRX                 ( ( unsigned int ) 0x1 << 2 )  /* (DBGU) Reset Receiver */
#define AT91C_US_RSTTX                 ( ( unsigned int ) 0x1 << 3 )  /* (DBGU) Reset Transmitter */
#define AT91C_US_RXEN                  ( ( unsigned int ) 0x1 << 4 )  /* (DBGU) Receiver Enable */
#define AT91C_US_RXDIS                 ( ( unsigned int ) 0x1 << 5 )  /* (DBGU) Receiver Disable */
#define AT91C_US_TXEN                  ( ( unsigned int ) 0x1 << 6 )  /* (DBGU) Transmitter Enable */
#define AT91C_US_TXDIS                 ( ( unsigned int ) 0x1 << 7 )  /* (DBGU) Transmitter Disable */
#define AT91C_US_RSTSTA                ( ( unsigned int ) 0x1 << 8 )  /* (DBGU) Reset Status Bits */
/* -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- */
#define AT91C_US_PAR                   ( ( unsigned int ) 0x7 << 9 )  /* (DBGU) Parity type */
#define     AT91C_US_PAR_EVEN          ( ( unsigned int ) 0x0 << 9 )  /* (DBGU) Even Parity */
#define     AT91C_US_PAR_ODD           ( ( unsigned int ) 0x1 << 9 )  /* (DBGU) Odd Parity */
#define     AT91C_US_PAR_SPACE         ( ( unsigned int ) 0x2 << 9 )  /* (DBGU) Parity forced to 0 (Space) */
#define     AT91C_US_PAR_MARK          ( ( unsigned int ) 0x3 << 9 )  /* (DBGU) Parity forced to 1 (Mark) */
#define     AT91C_US_PAR_NONE          ( ( unsigned int ) 0x4 << 9 )  /* (DBGU) No Parity */
#define     AT91C_US_PAR_MULTI_DROP    ( ( unsigned int ) 0x6 << 9 )  /* (DBGU) Multi-drop mode */
#define AT91C_US_CHMODE                ( ( unsigned int ) 0x3 << 14 ) /* (DBGU) Channel Mode */
#define     AT91C_US_CHMODE_NORMAL     ( ( unsigned int ) 0x0 << 14 ) /* (DBGU) Normal Mode: The USART channel operates as an RX/TX USART. */
#define     AT91C_US_CHMODE_AUTO       ( ( unsigned int ) 0x1 << 14 ) /* (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin. */
#define     AT91C_US_CHMODE_LOCAL      ( ( unsigned int ) 0x2 << 14 ) /* (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal. */
#define     AT91C_US_CHMODE_REMOTE     ( ( unsigned int ) 0x3 << 14 ) /* (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin. */
/* -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- */
#define AT91C_US_RXRDY                 ( ( unsigned int ) 0x1 << 0 )  /* (DBGU) RXRDY Interrupt */
#define AT91C_US_TXRDY                 ( ( unsigned int ) 0x1 << 1 )  /* (DBGU) TXRDY Interrupt */
#define AT91C_US_ENDRX                 ( ( unsigned int ) 0x1 << 3 )  /* (DBGU) End of Receive Transfer Interrupt */
#define AT91C_US_ENDTX                 ( ( unsigned int ) 0x1 << 4 )  /* (DBGU) End of Transmit Interrupt */
#define AT91C_US_OVRE                  ( ( unsigned int ) 0x1 << 5 )  /* (DBGU) Overrun Interrupt */
#define AT91C_US_FRAME                 ( ( unsigned int ) 0x1 << 6 )  /* (DBGU) Framing Error Interrupt */
#define AT91C_US_PARE                  ( ( unsigned int ) 0x1 << 7 )  /* (DBGU) Parity Error Interrupt */
#define AT91C_US_TXEMPTY               ( ( unsigned int ) 0x1 << 9 )  /* (DBGU) TXEMPTY Interrupt */
#define AT91C_US_TXBUFE                ( ( unsigned int ) 0x1 << 11 ) /* (DBGU) TXBUFE Interrupt */
#define AT91C_US_RXBUFF                ( ( unsigned int ) 0x1 << 12 ) /* (DBGU) RXBUFF Interrupt */
#define AT91C_US_COMM_TX               ( ( unsigned int ) 0x1 << 30 ) /* (DBGU) COMM_TX Interrupt */
#define AT91C_US_COMM_RX               ( ( unsigned int ) 0x1 << 31 ) /* (DBGU) COMM_RX Interrupt */
/* -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- */
/* -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- */
/* -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- */
/* -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- */
#define AT91C_US_FORCE_NTRST    ( ( unsigned int ) 0x1 << 0 ) /* (DBGU) Force NTRST in JTAG */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Parallel Input Output Controler */
/* ***************************************************************************** */
typedef struct _AT91S_PIO
{
    AT91_REG PIO_PER;        /* PIO Enable Register */
    AT91_REG PIO_PDR;        /* PIO Disable Register */
    AT91_REG PIO_PSR;        /* PIO Status Register */
    AT91_REG Reserved0[ 1 ]; /* */
    AT91_REG PIO_OER;        /* Output Enable Register */
    AT91_REG PIO_ODR;        /* Output Disable Registerr */
    AT91_REG PIO_OSR;        /* Output Status Register */
    AT91_REG Reserved1[ 1 ]; /* */
    AT91_REG PIO_IFER;       /* Input Filter Enable Register */
    AT91_REG PIO_IFDR;       /* Input Filter Disable Register */
    AT91_REG PIO_IFSR;       /* Input Filter Status Register */
    AT91_REG Reserved2[ 1 ]; /* */
    AT91_REG PIO_SODR;       /* Set Output Data Register */
    AT91_REG PIO_CODR;       /* Clear Output Data Register */
    AT91_REG PIO_ODSR;       /* Output Data Status Register */
    AT91_REG PIO_PDSR;       /* Pin Data Status Register */
    AT91_REG PIO_IER;        /* Interrupt Enable Register */
    AT91_REG PIO_IDR;        /* Interrupt Disable Register */
    AT91_REG PIO_IMR;        /* Interrupt Mask Register */
    AT91_REG PIO_ISR;        /* Interrupt Status Register */
    AT91_REG PIO_MDER;       /* Multi-driver Enable Register */
    AT91_REG PIO_MDDR;       /* Multi-driver Disable Register */
    AT91_REG PIO_MDSR;       /* Multi-driver Status Register */
    AT91_REG Reserved3[ 1 ]; /* */
    AT91_REG PIO_PPUDR;      /* Pull-up Disable Register */
    AT91_REG PIO_PPUER;      /* Pull-up Enable Register */
    AT91_REG PIO_PPUSR;      /* Pull-up Status Register */
    AT91_REG Reserved4[ 1 ]; /* */
    AT91_REG PIO_ASR;        /* Select A Register */
    AT91_REG PIO_BSR;        /* Select B Register */
    AT91_REG PIO_ABSR;       /* AB Select Status Register */
    AT91_REG Reserved5[ 9 ]; /* */
    AT91_REG PIO_OWER;       /* Output Write Enable Register */
    AT91_REG PIO_OWDR;       /* Output Write Disable Register */
    AT91_REG PIO_OWSR;       /* Output Write Status Register */
} AT91S_PIO, * AT91PS_PIO;


/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Clock Generator Controler */
/* ***************************************************************************** */
typedef struct _AT91S_CKGR
{
    AT91_REG CKGR_MOR;       /* Main Oscillator Register */
    AT91_REG CKGR_MCFR;      /* Main Clock  Frequency Register */
    AT91_REG Reserved0[ 1 ]; /* */
    AT91_REG CKGR_PLLR;      /* PLL Register */
} AT91S_CKGR, * AT91PS_CKGR;

/* -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- */
#define AT91C_CKGR_MOSCEN            ( ( unsigned int ) 0x1 << 0 )    /* (CKGR) Main Oscillator Enable */
#define AT91C_CKGR_OSCBYPASS         ( ( unsigned int ) 0x1 << 1 )    /* (CKGR) Main Oscillator Bypass */
#define AT91C_CKGR_OSCOUNT           ( ( unsigned int ) 0xFF << 8 )   /* (CKGR) Main Oscillator Start-up Time */
/* -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- */
#define AT91C_CKGR_MAINF             ( ( unsigned int ) 0xFFFF << 0 ) /* (CKGR) Main Clock Frequency */
#define AT91C_CKGR_MAINRDY           ( ( unsigned int ) 0x1 << 16 )   /* (CKGR) Main Clock Ready */
/* -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- */
#define AT91C_CKGR_DIV               ( ( unsigned int ) 0xFF << 0 )   /* (CKGR) Divider Selected */
#define     AT91C_CKGR_DIV_0         ( ( unsigned int ) 0x0 )         /* (CKGR) Divider output is 0 */
#define     AT91C_CKGR_DIV_BYPASS    ( ( unsigned int ) 0x1 )         /* (CKGR) Divider is bypassed */
#define AT91C_CKGR_PLLCOUNT          ( ( unsigned int ) 0x3F << 8 )   /* (CKGR) PLL Counter */
#define AT91C_CKGR_OUT               ( ( unsigned int ) 0x3 << 14 )   /* (CKGR) PLL Output Frequency Range */
#define     AT91C_CKGR_OUT_0         ( ( unsigned int ) 0x0 << 14 )   /* (CKGR) Please refer to the PLL datasheet */
#define     AT91C_CKGR_OUT_1         ( ( unsigned int ) 0x1 << 14 )   /* (CKGR) Please refer to the PLL datasheet */
#define     AT91C_CKGR_OUT_2         ( ( unsigned int ) 0x2 << 14 )   /* (CKGR) Please refer to the PLL datasheet */
#define     AT91C_CKGR_OUT_3         ( ( unsigned int ) 0x3 << 14 )   /* (CKGR) Please refer to the PLL datasheet */
#define AT91C_CKGR_MUL               ( ( unsigned int ) 0x7FF << 16 ) /* (CKGR) PLL Multiplier */
#define AT91C_CKGR_USBDIV            ( ( unsigned int ) 0x3 << 28 )   /* (CKGR) Divider for USB Clocks */
#define     AT91C_CKGR_USBDIV_0      ( ( unsigned int ) 0x0 << 28 )   /* (CKGR) Divider output is PLL clock output */
#define     AT91C_CKGR_USBDIV_1      ( ( unsigned int ) 0x1 << 28 )   /* (CKGR) Divider output is PLL clock output divided by 2 */
#define     AT91C_CKGR_USBDIV_2      ( ( unsigned int ) 0x2 << 28 )   /* (CKGR) Divider output is PLL clock output divided by 4 */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Power Management Controler */
/* ***************************************************************************** */
typedef struct _AT91S_PMC
{
    AT91_REG PMC_SCER;       /* System Clock Enable Register */
    AT91_REG PMC_SCDR;       /* System Clock Disable Register */
    AT91_REG PMC_SCSR;       /* System Clock Status Register */
    AT91_REG Reserved0[ 1 ]; /* */
    AT91_REG PMC_PCER;       /* Peripheral Clock Enable Register */
    AT91_REG PMC_PCDR;       /* Peripheral Clock Disable Register */
    AT91_REG PMC_PCSR;       /* Peripheral Clock Status Register */
    AT91_REG Reserved1[ 1 ]; /* */
    AT91_REG PMC_MOR;        /* Main Oscillator Register */
    AT91_REG PMC_MCFR;       /* Main Clock  Frequency Register */
    AT91_REG Reserved2[ 1 ]; /* */
    AT91_REG PMC_PLLR;       /* PLL Register */
    AT91_REG PMC_MCKR;       /* Master Clock Register */
    AT91_REG Reserved3[ 3 ]; /* */
    AT91_REG PMC_PCKR[ 4 ];  /* Programmable Clock Register */
    AT91_REG Reserved4[ 4 ]; /* */
    AT91_REG PMC_IER;        /* Interrupt Enable Register */
    AT91_REG PMC_IDR;        /* Interrupt Disable Register */
    AT91_REG PMC_SR;         /* Status Register */
    AT91_REG PMC_IMR;        /* Interrupt Mask Register */
} AT91S_PMC, * AT91PS_PMC;

/* -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- */
#define AT91C_PMC_PCK     ( ( unsigned int ) 0x1 << 0 )  /* (PMC) Processor Clock */
#define AT91C_PMC_UDP     ( ( unsigned int ) 0x1 << 7 )  /* (PMC) USB Device Port Clock */
#define AT91C_PMC_PCK0    ( ( unsigned int ) 0x1 << 8 )  /* (PMC) Programmable Clock Output */
#define AT91C_PMC_PCK1    ( ( unsigned int ) 0x1 << 9 )  /* (PMC) Programmable Clock Output */
#define AT91C_PMC_PCK2    ( ( unsigned int ) 0x1 << 10 ) /* (PMC) Programmable Clock Output */
#define AT91C_PMC_PCK3    ( ( unsigned int ) 0x1 << 11 ) /* (PMC) Programmable Clock Output */
/* -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- */
/* -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- */
/* -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- */
/* -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- */
/* -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- */
/* -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- */
#define AT91C_PMC_CSS                 ( ( unsigned int ) 0x3 << 0 ) /* (PMC) Programmable Clock Selection */
#define     AT91C_PMC_CSS_SLOW_CLK    ( ( unsigned int ) 0x0 )      /* (PMC) Slow Clock is selected */
#define     AT91C_PMC_CSS_MAIN_CLK    ( ( unsigned int ) 0x1 )      /* (PMC) Main Clock is selected */
#define     AT91C_PMC_CSS_PLL_CLK     ( ( unsigned int ) 0x3 )      /* (PMC) Clock from PLL is selected */
#define AT91C_PMC_PRES                ( ( unsigned int ) 0x7 << 2 ) /* (PMC) Programmable Clock Prescaler */
#define     AT91C_PMC_PRES_CLK        ( ( unsigned int ) 0x0 << 2 ) /* (PMC) Selected clock */
#define     AT91C_PMC_PRES_CLK_2      ( ( unsigned int ) 0x1 << 2 ) /* (PMC) Selected clock divided by 2 */
#define     AT91C_PMC_PRES_CLK_4      ( ( unsigned int ) 0x2 << 2 ) /* (PMC) Selected clock divided by 4 */
#define     AT91C_PMC_PRES_CLK_8      ( ( unsigned int ) 0x3 << 2 ) /* (PMC) Selected clock divided by 8 */
#define     AT91C_PMC_PRES_CLK_16     ( ( unsigned int ) 0x4 << 2 ) /* (PMC) Selected clock divided by 16 */
#define     AT91C_PMC_PRES_CLK_32     ( ( unsigned int ) 0x5 << 2 ) /* (PMC) Selected clock divided by 32 */
#define     AT91C_PMC_PRES_CLK_64     ( ( unsigned int ) 0x6 << 2 ) /* (PMC) Selected clock divided by 64 */
/* -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- */
/* -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- */
#define AT91C_PMC_MOSCS               ( ( unsigned int ) 0x1 << 0 )  /* (PMC) MOSC Status/Enable/Disable/Mask */
#define AT91C_PMC_LOCK                ( ( unsigned int ) 0x1 << 2 )  /* (PMC) PLL Status/Enable/Disable/Mask */
#define AT91C_PMC_MCKRDY              ( ( unsigned int ) 0x1 << 3 )  /* (PMC) MCK_RDY Status/Enable/Disable/Mask */
#define AT91C_PMC_PCK0RDY             ( ( unsigned int ) 0x1 << 8 )  /* (PMC) PCK0_RDY Status/Enable/Disable/Mask */
#define AT91C_PMC_PCK1RDY             ( ( unsigned int ) 0x1 << 9 )  /* (PMC) PCK1_RDY Status/Enable/Disable/Mask */
#define AT91C_PMC_PCK2RDY             ( ( unsigned int ) 0x1 << 10 ) /* (PMC) PCK2_RDY Status/Enable/Disable/Mask */
#define AT91C_PMC_PCK3RDY             ( ( unsigned int ) 0x1 << 11 ) /* (PMC) PCK3_RDY Status/Enable/Disable/Mask */
/* -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- */
/* -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- */
/* -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Reset Controller Interface */
/* ***************************************************************************** */
typedef struct _AT91S_RSTC
{
    AT91_REG RSTC_RCR; /* Reset Control Register */
    AT91_REG RSTC_RSR; /* Reset Status Register */
    AT91_REG RSTC_RMR; /* Reset Mode Register */
} AT91S_RSTC, * AT91PS_RSTC;

/* -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- */
#define AT91C_RSTC_PROCRST                ( ( unsigned int ) 0x1 << 0 )   /* (RSTC) Processor Reset */
#define AT91C_RSTC_PERRST                 ( ( unsigned int ) 0x1 << 2 )   /* (RSTC) Peripheral Reset */
#define AT91C_RSTC_EXTRST                 ( ( unsigned int ) 0x1 << 3 )   /* (RSTC) External Reset */
#define AT91C_RSTC_KEY                    ( ( unsigned int ) 0xFF << 24 ) /* (RSTC) Password */
/* -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- */
#define AT91C_RSTC_URSTS                  ( ( unsigned int ) 0x1 << 0 )   /* (RSTC) User Reset Status */
#define AT91C_RSTC_BODSTS                 ( ( unsigned int ) 0x1 << 1 )   /* (RSTC) Brownout Detection Status */
#define AT91C_RSTC_RSTTYP                 ( ( unsigned int ) 0x7 << 8 )   /* (RSTC) Reset Type */
#define     AT91C_RSTC_RSTTYP_POWERUP     ( ( unsigned int ) 0x0 << 8 )   /* (RSTC) Power-up Reset. VDDCORE rising. */
#define     AT91C_RSTC_RSTTYP_WAKEUP      ( ( unsigned int ) 0x1 << 8 )   /* (RSTC) WakeUp Reset. VDDCORE rising. */
#define     AT91C_RSTC_RSTTYP_WATCHDOG    ( ( unsigned int ) 0x2 << 8 )   /* (RSTC) Watchdog Reset. Watchdog overflow occured. */
#define     AT91C_RSTC_RSTTYP_SOFTWARE    ( ( unsigned int ) 0x3 << 8 )   /* (RSTC) Software Reset. Processor reset required by the software. */
#define     AT91C_RSTC_RSTTYP_USER        ( ( unsigned int ) 0x4 << 8 )   /* (RSTC) User Reset. NRST pin detected low. */
#define     AT91C_RSTC_RSTTYP_BROWNOUT    ( ( unsigned int ) 0x5 << 8 )   /* (RSTC) Brownout Reset occured. */
#define AT91C_RSTC_NRSTL                  ( ( unsigned int ) 0x1 << 16 )  /* (RSTC) NRST pin level */
#define AT91C_RSTC_SRCMP                  ( ( unsigned int ) 0x1 << 17 )  /* (RSTC) Software Reset Command in Progress. */
/* -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- */
#define AT91C_RSTC_URSTEN                 ( ( unsigned int ) 0x1 << 0 )   /* (RSTC) User Reset Enable */
#define AT91C_RSTC_URSTIEN                ( ( unsigned int ) 0x1 << 4 )   /* (RSTC) User Reset Interrupt Enable */
#define AT91C_RSTC_ERSTL                  ( ( unsigned int ) 0xF << 8 )   /* (RSTC) User Reset Enable */
#define AT91C_RSTC_BODIEN                 ( ( unsigned int ) 0x1 << 16 )  /* (RSTC) Brownout Detection Interrupt Enable */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Real Time Timer Controller Interface */
/* ***************************************************************************** */
typedef struct _AT91S_RTTC
{
    AT91_REG RTTC_RTMR; /* Real-time Mode Register */
    AT91_REG RTTC_RTAR; /* Real-time Alarm Register */
    AT91_REG RTTC_RTVR; /* Real-time Value Register */
    AT91_REG RTTC_RTSR; /* Real-time Status Register */
} AT91S_RTTC, * AT91PS_RTTC;

/* -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- */
#define AT91C_RTTC_RTPRES       ( ( unsigned int ) 0xFFFF << 0 ) /* (RTTC) Real-time Timer Prescaler Value */
#define AT91C_RTTC_ALMIEN       ( ( unsigned int ) 0x1 << 16 )   /* (RTTC) Alarm Interrupt Enable */
#define AT91C_RTTC_RTTINCIEN    ( ( unsigned int ) 0x1 << 17 )   /* (RTTC) Real Time Timer Increment Interrupt Enable */
#define AT91C_RTTC_RTTRST       ( ( unsigned int ) 0x1 << 18 )   /* (RTTC) Real Time Timer Restart */
/* -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- */
#define AT91C_RTTC_ALMV         ( ( unsigned int ) 0x0 << 0 )    /* (RTTC) Alarm Value */
/* -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- */
#define AT91C_RTTC_CRTV         ( ( unsigned int ) 0x0 << 0 )    /* (RTTC) Current Real-time Value */
/* -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- */
#define AT91C_RTTC_ALMS         ( ( unsigned int ) 0x1 << 0 )    /* (RTTC) Real-time Alarm Status */
#define AT91C_RTTC_RTTINC       ( ( unsigned int ) 0x1 << 1 )    /* (RTTC) Real-time Timer Increment */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Periodic Interval Timer Controller Interface */
/* ***************************************************************************** */
typedef struct _AT91S_PITC
{
    AT91_REG PITC_PIMR; /* Period Interval Mode Register */
    AT91_REG PITC_PISR; /* Period Interval Status Register */
    AT91_REG PITC_PIVR; /* Period Interval Value Register */
    AT91_REG PITC_PIIR; /* Period Interval Image Register */
} AT91S_PITC, * AT91PS_PITC;

/* -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- */
#define AT91C_PITC_PIV       ( ( unsigned int ) 0xFFFFF << 0 ) /* (PITC) Periodic Interval Value */
#define AT91C_PITC_PITEN     ( ( unsigned int ) 0x1 << 24 )    /* (PITC) Periodic Interval Timer Enabled */
#define AT91C_PITC_PITIEN    ( ( unsigned int ) 0x1 << 25 )    /* (PITC) Periodic Interval Timer Interrupt Enable */
/* -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- */
#define AT91C_PITC_PITS      ( ( unsigned int ) 0x1 << 0 )     /* (PITC) Periodic Interval Timer Status */
/* -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- */
#define AT91C_PITC_CPIV      ( ( unsigned int ) 0xFFFFF << 0 ) /* (PITC) Current Periodic Interval Value */
#define AT91C_PITC_PICNT     ( ( unsigned int ) 0xFFF << 20 )  /* (PITC) Periodic Interval Counter */
/* -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Watchdog Timer Controller Interface */
/* ***************************************************************************** */
typedef struct _AT91S_WDTC
{
    AT91_REG WDTC_WDCR; /* Watchdog Control Register */
    AT91_REG WDTC_WDMR; /* Watchdog Mode Register */
    AT91_REG WDTC_WDSR; /* Watchdog Status Register */
} AT91S_WDTC, * AT91PS_WDTC;

/* -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- */
#define AT91C_WDTC_WDRSTT       ( ( unsigned int ) 0x1 << 0 )    /* (WDTC) Watchdog Restart */
#define AT91C_WDTC_KEY          ( ( unsigned int ) 0xFF << 24 )  /* (WDTC) Watchdog KEY Password */
/* -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- */
#define AT91C_WDTC_WDV          ( ( unsigned int ) 0xFFF << 0 )  /* (WDTC) Watchdog Timer Restart */
#define AT91C_WDTC_WDFIEN       ( ( unsigned int ) 0x1 << 12 )   /* (WDTC) Watchdog Fault Interrupt Enable */
#define AT91C_WDTC_WDRSTEN      ( ( unsigned int ) 0x1 << 13 )   /* (WDTC) Watchdog Reset Enable */
#define AT91C_WDTC_WDRPROC      ( ( unsigned int ) 0x1 << 14 )   /* (WDTC) Watchdog Timer Restart */
#define AT91C_WDTC_WDDIS        ( ( unsigned int ) 0x1 << 15 )   /* (WDTC) Watchdog Disable */
#define AT91C_WDTC_WDD          ( ( unsigned int ) 0xFFF << 16 ) /* (WDTC) Watchdog Delta Value */
#define AT91C_WDTC_WDDBGHLT     ( ( unsigned int ) 0x1 << 28 )   /* (WDTC) Watchdog Debug Halt */
#define AT91C_WDTC_WDIDLEHLT    ( ( unsigned int ) 0x1 << 29 )   /* (WDTC) Watchdog Idle Halt */
/* -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- */
#define AT91C_WDTC_WDUNF        ( ( unsigned int ) 0x1 << 0 )    /* (WDTC) Watchdog Underflow */
#define AT91C_WDTC_WDERR        ( ( unsigned int ) 0x1 << 1 )    /* (WDTC) Watchdog Error */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Voltage Regulator Mode Controller Interface */
/* ***************************************************************************** */
typedef struct _AT91S_VREG
{
    AT91_REG VREG_MR; /* Voltage Regulator Mode Register */
} AT91S_VREG, * AT91PS_VREG;

/* -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- */
#define AT91C_VREG_PSTDBY    ( ( unsigned int ) 0x1 << 0 ) /* (VREG) Voltage Regulator Power Standby Mode */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Memory Controller Interface */
/* ***************************************************************************** */
typedef struct _AT91S_MC
{
    AT91_REG MC_RCR;          /* MC Remap Control Register */
    AT91_REG MC_ASR;          /* MC Abort Status Register */
    AT91_REG MC_AASR;         /* MC Abort Address Status Register */
    AT91_REG Reserved0[ 21 ]; /* */
    AT91_REG MC_FMR;          /* MC Flash Mode Register */
    AT91_REG MC_FCR;          /* MC Flash Command Register */
    AT91_REG MC_FSR;          /* MC Flash Status Register */
} AT91S_MC, * AT91PS_MC;

/* -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- */
#define AT91C_MC_RCB                       ( ( unsigned int ) 0x1 << 0 )   /* (MC) Remap Command Bit */
/* -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- */
#define AT91C_MC_UNDADD                    ( ( unsigned int ) 0x1 << 0 )   /* (MC) Undefined Addess Abort Status */
#define AT91C_MC_MISADD                    ( ( unsigned int ) 0x1 << 1 )   /* (MC) Misaligned Addess Abort Status */
#define AT91C_MC_ABTSZ                     ( ( unsigned int ) 0x3 << 8 )   /* (MC) Abort Size Status */
#define     AT91C_MC_ABTSZ_BYTE            ( ( unsigned int ) 0x0 << 8 )   /* (MC) Byte */
#define     AT91C_MC_ABTSZ_HWORD           ( ( unsigned int ) 0x1 << 8 )   /* (MC) Half-word */
#define     AT91C_MC_ABTSZ_WORD            ( ( unsigned int ) 0x2 << 8 )   /* (MC) Word */
#define AT91C_MC_ABTTYP                    ( ( unsigned int ) 0x3 << 10 )  /* (MC) Abort Type Status */
#define     AT91C_MC_ABTTYP_DATAR          ( ( unsigned int ) 0x0 << 10 )  /* (MC) Data Read */
#define     AT91C_MC_ABTTYP_DATAW          ( ( unsigned int ) 0x1 << 10 )  /* (MC) Data Write */
#define     AT91C_MC_ABTTYP_FETCH          ( ( unsigned int ) 0x2 << 10 )  /* (MC) Code Fetch */
#define AT91C_MC_MST0                      ( ( unsigned int ) 0x1 << 16 )  /* (MC) Master 0 Abort Source */
#define AT91C_MC_MST1                      ( ( unsigned int ) 0x1 << 17 )  /* (MC) Master 1 Abort Source */
#define AT91C_MC_SVMST0                    ( ( unsigned int ) 0x1 << 24 )  /* (MC) Saved Master 0 Abort Source */
#define AT91C_MC_SVMST1                    ( ( unsigned int ) 0x1 << 25 )  /* (MC) Saved Master 1 Abort Source */
/* -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- */
#define AT91C_MC_FRDY                      ( ( unsigned int ) 0x1 << 0 )   /* (MC) Flash Ready */
#define AT91C_MC_LOCKE                     ( ( unsigned int ) 0x1 << 2 )   /* (MC) Lock Error */
#define AT91C_MC_PROGE                     ( ( unsigned int ) 0x1 << 3 )   /* (MC) Programming Error */
#define AT91C_MC_NEBP                      ( ( unsigned int ) 0x1 << 7 )   /* (MC) No Erase Before Programming */
#define AT91C_MC_FWS                       ( ( unsigned int ) 0x3 << 8 )   /* (MC) Flash Wait State */
#define     AT91C_MC_FWS_0FWS              ( ( unsigned int ) 0x0 << 8 )   /* (MC) 1 cycle for Read, 2 for Write operations */
#define     AT91C_MC_FWS_1FWS              ( ( unsigned int ) 0x1 << 8 )   /* (MC) 2 cycles for Read, 3 for Write operations */
#define     AT91C_MC_FWS_2FWS              ( ( unsigned int ) 0x2 << 8 )   /* (MC) 3 cycles for Read, 4 for Write operations */
#define     AT91C_MC_FWS_3FWS              ( ( unsigned int ) 0x3 << 8 )   /* (MC) 4 cycles for Read, 4 for Write operations */
#define AT91C_MC_FMCN                      ( ( unsigned int ) 0xFF << 16 ) /* (MC) Flash Microsecond Cycle Number */
/* -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- */
#define AT91C_MC_FCMD                      ( ( unsigned int ) 0xF << 0 )   /* (MC) Flash Command */
#define     AT91C_MC_FCMD_START_PROG       ( ( unsigned int ) 0x1 )        /* (MC) Starts the programming of th epage specified by PAGEN. */
#define     AT91C_MC_FCMD_LOCK             ( ( unsigned int ) 0x2 )        /* (MC) Starts a lock sequence of the sector defined by the bits 4 to 7 of the field PAGEN. */
#define     AT91C_MC_FCMD_PROG_AND_LOCK    ( ( unsigned int ) 0x3 )        /* (MC) The lock sequence automatically happens after the programming sequence is completed. */
#define     AT91C_MC_FCMD_UNLOCK           ( ( unsigned int ) 0x4 )        /* (MC) Starts an unlock sequence of the sector defined by the bits 4 to 7 of the field PAGEN. */
#define     AT91C_MC_FCMD_ERASE_ALL        ( ( unsigned int ) 0x8 )        /* (MC) Starts the erase of the entire flash.If at least a page is locked, the command is cancelled. */
#define     AT91C_MC_FCMD_SET_GP_NVM       ( ( unsigned int ) 0xB )        /* (MC) Set General Purpose NVM bits. */
#define     AT91C_MC_FCMD_CLR_GP_NVM       ( ( unsigned int ) 0xD )        /* (MC) Clear General Purpose NVM bits. */
#define     AT91C_MC_FCMD_SET_SECURITY     ( ( unsigned int ) 0xF )        /* (MC) Set Security Bit. */
#define AT91C_MC_PAGEN                     ( ( unsigned int ) 0x3FF << 8 ) /* (MC) Page Number */
#define AT91C_MC_KEY                       ( ( unsigned int ) 0xFF << 24 ) /* (MC) Writing Protect Key */
/* -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- */
#define AT91C_MC_SECURITY                  ( ( unsigned int ) 0x1 << 4 )   /* (MC) Security Bit Status */
#define AT91C_MC_GPNVM0                    ( ( unsigned int ) 0x1 << 8 )   /* (MC) Sector 0 Lock Status */
#define AT91C_MC_GPNVM1                    ( ( unsigned int ) 0x1 << 9 )   /* (MC) Sector 1 Lock Status */
#define AT91C_MC_GPNVM2                    ( ( unsigned int ) 0x1 << 10 )  /* (MC) Sector 2 Lock Status */
#define AT91C_MC_GPNVM3                    ( ( unsigned int ) 0x1 << 11 )  /* (MC) Sector 3 Lock Status */
#define AT91C_MC_GPNVM4                    ( ( unsigned int ) 0x1 << 12 )  /* (MC) Sector 4 Lock Status */
#define AT91C_MC_GPNVM5                    ( ( unsigned int ) 0x1 << 13 )  /* (MC) Sector 5 Lock Status */
#define AT91C_MC_GPNVM6                    ( ( unsigned int ) 0x1 << 14 )  /* (MC) Sector 6 Lock Status */
#define AT91C_MC_GPNVM7                    ( ( unsigned int ) 0x1 << 15 )  /* (MC) Sector 7 Lock Status */
#define AT91C_MC_LOCKS0                    ( ( unsigned int ) 0x1 << 16 )  /* (MC) Sector 0 Lock Status */
#define AT91C_MC_LOCKS1                    ( ( unsigned int ) 0x1 << 17 )  /* (MC) Sector 1 Lock Status */
#define AT91C_MC_LOCKS2                    ( ( unsigned int ) 0x1 << 18 )  /* (MC) Sector 2 Lock Status */
#define AT91C_MC_LOCKS3                    ( ( unsigned int ) 0x1 << 19 )  /* (MC) Sector 3 Lock Status */
#define AT91C_MC_LOCKS4                    ( ( unsigned int ) 0x1 << 20 )  /* (MC) Sector 4 Lock Status */
#define AT91C_MC_LOCKS5                    ( ( unsigned int ) 0x1 << 21 )  /* (MC) Sector 5 Lock Status */
#define AT91C_MC_LOCKS6                    ( ( unsigned int ) 0x1 << 22 )  /* (MC) Sector 6 Lock Status */
#define AT91C_MC_LOCKS7                    ( ( unsigned int ) 0x1 << 23 )  /* (MC) Sector 7 Lock Status */
#define AT91C_MC_LOCKS8                    ( ( unsigned int ) 0x1 << 24 )  /* (MC) Sector 8 Lock Status */
#define AT91C_MC_LOCKS9                    ( ( unsigned int ) 0x1 << 25 )  /* (MC) Sector 9 Lock Status */
#define AT91C_MC_LOCKS10                   ( ( unsigned int ) 0x1 << 26 )  /* (MC) Sector 10 Lock Status */
#define AT91C_MC_LOCKS11                   ( ( unsigned int ) 0x1 << 27 )  /* (MC) Sector 11 Lock Status */
#define AT91C_MC_LOCKS12                   ( ( unsigned int ) 0x1 << 28 )  /* (MC) Sector 12 Lock Status */
#define AT91C_MC_LOCKS13                   ( ( unsigned int ) 0x1 << 29 )  /* (MC) Sector 13 Lock Status */
#define AT91C_MC_LOCKS14                   ( ( unsigned int ) 0x1 << 30 )  /* (MC) Sector 14 Lock Status */
#define AT91C_MC_LOCKS15                   ( ( unsigned int ) 0x1 << 31 )  /* (MC) Sector 15 Lock Status */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Serial Parallel Interface */
/* ***************************************************************************** */
typedef struct _AT91S_SPI
{
    AT91_REG SPI_CR;          /* Control Register */
    AT91_REG SPI_MR;          /* Mode Register */
    AT91_REG SPI_RDR;         /* Receive Data Register */
    AT91_REG SPI_TDR;         /* Transmit Data Register */
    AT91_REG SPI_SR;          /* Status Register */
    AT91_REG SPI_IER;         /* Interrupt Enable Register */
    AT91_REG SPI_IDR;         /* Interrupt Disable Register */
    AT91_REG SPI_IMR;         /* Interrupt Mask Register */
    AT91_REG Reserved0[ 4 ];  /* */
    AT91_REG SPI_CSR[ 4 ];    /* Chip Select Register */
    AT91_REG Reserved1[ 48 ]; /* */
    AT91_REG SPI_RPR;         /* Receive Pointer Register */
    AT91_REG SPI_RCR;         /* Receive Counter Register */
    AT91_REG SPI_TPR;         /* Transmit Pointer Register */
    AT91_REG SPI_TCR;         /* Transmit Counter Register */
    AT91_REG SPI_RNPR;        /* Receive Next Pointer Register */
    AT91_REG SPI_RNCR;        /* Receive Next Counter Register */
    AT91_REG SPI_TNPR;        /* Transmit Next Pointer Register */
    AT91_REG SPI_TNCR;        /* Transmit Next Counter Register */
    AT91_REG SPI_PTCR;        /* PDC Transfer Control Register */
    AT91_REG SPI_PTSR;        /* PDC Transfer Status Register */
} AT91S_SPI, * AT91PS_SPI;

/* -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- */
#define AT91C_SPI_SPIEN              ( ( unsigned int ) 0x1 << 0 )    /* (SPI) SPI Enable */
#define AT91C_SPI_SPIDIS             ( ( unsigned int ) 0x1 << 1 )    /* (SPI) SPI Disable */
#define AT91C_SPI_SWRST              ( ( unsigned int ) 0x1 << 7 )    /* (SPI) SPI Software reset */
#define AT91C_SPI_LASTXFER           ( ( unsigned int ) 0x1 << 24 )   /* (SPI) SPI Last Transfer */
/* -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- */
#define AT91C_SPI_MSTR               ( ( unsigned int ) 0x1 << 0 )    /* (SPI) Master/Slave Mode */
#define AT91C_SPI_PS                 ( ( unsigned int ) 0x1 << 1 )    /* (SPI) Peripheral Select */
#define     AT91C_SPI_PS_FIXED       ( ( unsigned int ) 0x0 << 1 )    /* (SPI) Fixed Peripheral Select */
#define     AT91C_SPI_PS_VARIABLE    ( ( unsigned int ) 0x1 << 1 )    /* (SPI) Variable Peripheral Select */
#define AT91C_SPI_PCSDEC             ( ( unsigned int ) 0x1 << 2 )    /* (SPI) Chip Select Decode */
#define AT91C_SPI_FDIV               ( ( unsigned int ) 0x1 << 3 )    /* (SPI) Clock Selection */
#define AT91C_SPI_MODFDIS            ( ( unsigned int ) 0x1 << 4 )    /* (SPI) Mode Fault Detection */
#define AT91C_SPI_LLB                ( ( unsigned int ) 0x1 << 7 )    /* (SPI) Clock Selection */
#define AT91C_SPI_PCS                ( ( unsigned int ) 0xF << 16 )   /* (SPI) Peripheral Chip Select */
#define AT91C_SPI_DLYBCS             ( ( unsigned int ) 0xFF << 24 )  /* (SPI) Delay Between Chip Selects */
/* -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- */
#define AT91C_SPI_RD                 ( ( unsigned int ) 0xFFFF << 0 ) /* (SPI) Receive Data */
#define AT91C_SPI_RPCS               ( ( unsigned int ) 0xF << 16 )   /* (SPI) Peripheral Chip Select Status */
/* -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- */
#define AT91C_SPI_TD                 ( ( unsigned int ) 0xFFFF << 0 ) /* (SPI) Transmit Data */
#define AT91C_SPI_TPCS               ( ( unsigned int ) 0xF << 16 )   /* (SPI) Peripheral Chip Select Status */
/* -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- */
#define AT91C_SPI_RDRF               ( ( unsigned int ) 0x1 << 0 )    /* (SPI) Receive Data Register Full */
#define AT91C_SPI_TDRE               ( ( unsigned int ) 0x1 << 1 )    /* (SPI) Transmit Data Register Empty */
#define AT91C_SPI_MODF               ( ( unsigned int ) 0x1 << 2 )    /* (SPI) Mode Fault Error */
#define AT91C_SPI_OVRES              ( ( unsigned int ) 0x1 << 3 )    /* (SPI) Overrun Error Status */
#define AT91C_SPI_ENDRX              ( ( unsigned int ) 0x1 << 4 )    /* (SPI) End of Receiver Transfer */
#define AT91C_SPI_ENDTX              ( ( unsigned int ) 0x1 << 5 )    /* (SPI) End of Receiver Transfer */
#define AT91C_SPI_RXBUFF             ( ( unsigned int ) 0x1 << 6 )    /* (SPI) RXBUFF Interrupt */
#define AT91C_SPI_TXBUFE             ( ( unsigned int ) 0x1 << 7 )    /* (SPI) TXBUFE Interrupt */
#define AT91C_SPI_NSSR               ( ( unsigned int ) 0x1 << 8 )    /* (SPI) NSSR Interrupt */
#define AT91C_SPI_TXEMPTY            ( ( unsigned int ) 0x1 << 9 )    /* (SPI) TXEMPTY Interrupt */
#define AT91C_SPI_SPIENS             ( ( unsigned int ) 0x1 << 16 )   /* (SPI) Enable Status */
/* -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- */
/* -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- */
/* -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- */
/* -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- */
#define AT91C_SPI_CPOL           ( ( unsigned int ) 0x1 << 0 )   /* (SPI) Clock Polarity */
#define AT91C_SPI_NCPHA          ( ( unsigned int ) 0x1 << 1 )   /* (SPI) Clock Phase */
#define AT91C_SPI_CSAAT          ( ( unsigned int ) 0x1 << 3 )   /* (SPI) Chip Select Active After Transfer */
#define AT91C_SPI_BITS           ( ( unsigned int ) 0xF << 4 )   /* (SPI) Bits Per Transfer */
#define     AT91C_SPI_BITS_8     ( ( unsigned int ) 0x0 << 4 )   /* (SPI) 8 Bits Per transfer */
#define     AT91C_SPI_BITS_9     ( ( unsigned int ) 0x1 << 4 )   /* (SPI) 9 Bits Per transfer */
#define     AT91C_SPI_BITS_10    ( ( unsigned int ) 0x2 << 4 )   /* (SPI) 10 Bits Per transfer */
#define     AT91C_SPI_BITS_11    ( ( unsigned int ) 0x3 << 4 )   /* (SPI) 11 Bits Per transfer */
#define     AT91C_SPI_BITS_12    ( ( unsigned int ) 0x4 << 4 )   /* (SPI) 12 Bits Per transfer */
#define     AT91C_SPI_BITS_13    ( ( unsigned int ) 0x5 << 4 )   /* (SPI) 13 Bits Per transfer */
#define     AT91C_SPI_BITS_14    ( ( unsigned int ) 0x6 << 4 )   /* (SPI) 14 Bits Per transfer */
#define     AT91C_SPI_BITS_15    ( ( unsigned int ) 0x7 << 4 )   /* (SPI) 15 Bits Per transfer */
#define     AT91C_SPI_BITS_16    ( ( unsigned int ) 0x8 << 4 )   /* (SPI) 16 Bits Per transfer */
#define AT91C_SPI_SCBR           ( ( unsigned int ) 0xFF << 8 )  /* (SPI) Serial Clock Baud Rate */
#define AT91C_SPI_DLYBS          ( ( unsigned int ) 0xFF << 16 ) /* (SPI) Delay Before SPCK */
#define AT91C_SPI_DLYBCT         ( ( unsigned int ) 0xFF << 24 ) /* (SPI) Delay Between Consecutive Transfers */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Usart */
/* ***************************************************************************** */
typedef struct _AT91S_USART
{
    AT91_REG US_CR;           /* Control Register */
    AT91_REG US_MR;           /* Mode Register */
    AT91_REG US_IER;          /* Interrupt Enable Register */
    AT91_REG US_IDR;          /* Interrupt Disable Register */
    AT91_REG US_IMR;          /* Interrupt Mask Register */
    AT91_REG US_CSR;          /* Channel Status Register */
    AT91_REG US_RHR;          /* Receiver Holding Register */
    AT91_REG US_THR;          /* Transmitter Holding Register */
    AT91_REG US_BRGR;         /* Baud Rate Generator Register */
    AT91_REG US_RTOR;         /* Receiver Time-out Register */
    AT91_REG US_TTGR;         /* Transmitter Time-guard Register */
    AT91_REG Reserved0[ 5 ];  /* */
    AT91_REG US_FIDI;         /* FI_DI_Ratio Register */
    AT91_REG US_NER;          /* Nb Errors Register */
    AT91_REG Reserved1[ 1 ];  /* */
    AT91_REG US_IF;           /* IRDA_FILTER Register */
    AT91_REG Reserved2[ 44 ]; /* */
    AT91_REG US_RPR;          /* Receive Pointer Register */
    AT91_REG US_RCR;          /* Receive Counter Register */
    AT91_REG US_TPR;          /* Transmit Pointer Register */
    AT91_REG US_TCR;          /* Transmit Counter Register */
    AT91_REG US_RNPR;         /* Receive Next Pointer Register */
    AT91_REG US_RNCR;         /* Receive Next Counter Register */
    AT91_REG US_TNPR;         /* Transmit Next Pointer Register */
    AT91_REG US_TNCR;         /* Transmit Next Counter Register */
    AT91_REG US_PTCR;         /* PDC Transfer Control Register */
    AT91_REG US_PTSR;         /* PDC Transfer Status Register */
} AT91S_USART, * AT91PS_USART;

/* -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- */
#define AT91C_US_STTBRK                  ( ( unsigned int ) 0x1 << 9 )  /* (USART) Start Break */
#define AT91C_US_STPBRK                  ( ( unsigned int ) 0x1 << 10 ) /* (USART) Stop Break */
#define AT91C_US_STTTO                   ( ( unsigned int ) 0x1 << 11 ) /* (USART) Start Time-out */
#define AT91C_US_SENDA                   ( ( unsigned int ) 0x1 << 12 ) /* (USART) Send Address */
#define AT91C_US_RSTIT                   ( ( unsigned int ) 0x1 << 13 ) /* (USART) Reset Iterations */
#define AT91C_US_RSTNACK                 ( ( unsigned int ) 0x1 << 14 ) /* (USART) Reset Non Acknowledge */
#define AT91C_US_RETTO                   ( ( unsigned int ) 0x1 << 15 ) /* (USART) Rearm Time-out */
#define AT91C_US_DTREN                   ( ( unsigned int ) 0x1 << 16 ) /* (USART) Data Terminal ready Enable */
#define AT91C_US_DTRDIS                  ( ( unsigned int ) 0x1 << 17 ) /* (USART) Data Terminal ready Disable */
#define AT91C_US_RTSEN                   ( ( unsigned int ) 0x1 << 18 ) /* (USART) Request to Send enable */
#define AT91C_US_RTSDIS                  ( ( unsigned int ) 0x1 << 19 ) /* (USART) Request to Send Disable */
/* -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- */
#define AT91C_US_USMODE                  ( ( unsigned int ) 0xF << 0 )  /* (USART) Usart mode */
#define     AT91C_US_USMODE_NORMAL       ( ( unsigned int ) 0x0 )       /* (USART) Normal */
#define     AT91C_US_USMODE_RS485        ( ( unsigned int ) 0x1 )       /* (USART) RS485 */
#define     AT91C_US_USMODE_HWHSH        ( ( unsigned int ) 0x2 )       /* (USART) Hardware Handshaking */
#define     AT91C_US_USMODE_MODEM        ( ( unsigned int ) 0x3 )       /* (USART) Modem */
#define     AT91C_US_USMODE_ISO7816_0    ( ( unsigned int ) 0x4 )       /* (USART) ISO7816 protocol: T = 0 */
#define     AT91C_US_USMODE_ISO7816_1    ( ( unsigned int ) 0x6 )       /* (USART) ISO7816 protocol: T = 1 */
#define     AT91C_US_USMODE_IRDA         ( ( unsigned int ) 0x8 )       /* (USART) IrDA */
#define     AT91C_US_USMODE_SWHSH        ( ( unsigned int ) 0xC )       /* (USART) Software Handshaking */
#define AT91C_US_CLKS                    ( ( unsigned int ) 0x3 << 4 )  /* (USART) Clock Selection (Baud Rate generator Input Clock */
#define     AT91C_US_CLKS_CLOCK          ( ( unsigned int ) 0x0 << 4 )  /* (USART) Clock */
#define     AT91C_US_CLKS_FDIV1          ( ( unsigned int ) 0x1 << 4 )  /* (USART) fdiv1 */
#define     AT91C_US_CLKS_SLOW           ( ( unsigned int ) 0x2 << 4 )  /* (USART) slow_clock (ARM) */
#define     AT91C_US_CLKS_EXT            ( ( unsigned int ) 0x3 << 4 )  /* (USART) External (SCK) */
#define AT91C_US_CHRL                    ( ( unsigned int ) 0x3 << 6 )  /* (USART) Clock Selection (Baud Rate generator Input Clock */
#define     AT91C_US_CHRL_5_BITS         ( ( unsigned int ) 0x0 << 6 )  /* (USART) Character Length: 5 bits */
#define     AT91C_US_CHRL_6_BITS         ( ( unsigned int ) 0x1 << 6 )  /* (USART) Character Length: 6 bits */
#define     AT91C_US_CHRL_7_BITS         ( ( unsigned int ) 0x2 << 6 )  /* (USART) Character Length: 7 bits */
#define     AT91C_US_CHRL_8_BITS         ( ( unsigned int ) 0x3 << 6 )  /* (USART) Character Length: 8 bits */
#define AT91C_US_SYNC                    ( ( unsigned int ) 0x1 << 8 )  /* (USART) Synchronous Mode Select */
#define AT91C_US_NBSTOP                  ( ( unsigned int ) 0x3 << 12 ) /* (USART) Number of Stop bits */
#define     AT91C_US_NBSTOP_1_BIT        ( ( unsigned int ) 0x0 << 12 ) /* (USART) 1 stop bit */
#define     AT91C_US_NBSTOP_15_BIT       ( ( unsigned int ) 0x1 << 12 ) /* (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits */
#define     AT91C_US_NBSTOP_2_BIT        ( ( unsigned int ) 0x2 << 12 ) /* (USART) 2 stop bits */
#define AT91C_US_MSBF                    ( ( unsigned int ) 0x1 << 16 ) /* (USART) Bit Order */
#define AT91C_US_MODE9                   ( ( unsigned int ) 0x1 << 17 ) /* (USART) 9-bit Character length */
#define AT91C_US_CKLO                    ( ( unsigned int ) 0x1 << 18 ) /* (USART) Clock Output Select */
#define AT91C_US_OVER                    ( ( unsigned int ) 0x1 << 19 ) /* (USART) Over Sampling Mode */
#define AT91C_US_INACK                   ( ( unsigned int ) 0x1 << 20 ) /* (USART) Inhibit Non Acknowledge */
#define AT91C_US_DSNACK                  ( ( unsigned int ) 0x1 << 21 ) /* (USART) Disable Successive NACK */
#define AT91C_US_MAX_ITER                ( ( unsigned int ) 0x1 << 24 ) /* (USART) Number of Repetitions */
#define AT91C_US_FILTER                  ( ( unsigned int ) 0x1 << 28 ) /* (USART) Receive Line Filter */
/* -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- */
#define AT91C_US_RXBRK                   ( ( unsigned int ) 0x1 << 2 )  /* (USART) Break Received/End of Break */
#define AT91C_US_TIMEOUT                 ( ( unsigned int ) 0x1 << 8 )  /* (USART) Receiver Time-out */
#define AT91C_US_ITERATION               ( ( unsigned int ) 0x1 << 10 ) /* (USART) Max number of Repetitions Reached */
#define AT91C_US_NACK                    ( ( unsigned int ) 0x1 << 13 ) /* (USART) Non Acknowledge */
#define AT91C_US_RIIC                    ( ( unsigned int ) 0x1 << 16 ) /* (USART) Ring INdicator Input Change Flag */
#define AT91C_US_DSRIC                   ( ( unsigned int ) 0x1 << 17 ) /* (USART) Data Set Ready Input Change Flag */
#define AT91C_US_DCDIC                   ( ( unsigned int ) 0x1 << 18 ) /* (USART) Data Carrier Flag */
#define AT91C_US_CTSIC                   ( ( unsigned int ) 0x1 << 19 ) /* (USART) Clear To Send Input Change Flag */
/* -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- */
/* -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- */
/* -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- */
#define AT91C_US_RI     ( ( unsigned int ) 0x1 << 20 )   /* (USART) Image of RI Input */
#define AT91C_US_DSR    ( ( unsigned int ) 0x1 << 21 )   /* (USART) Image of DSR Input */
#define AT91C_US_DCD    ( ( unsigned int ) 0x1 << 22 )   /* (USART) Image of DCD Input */
#define AT91C_US_CTS    ( ( unsigned int ) 0x1 << 23 )   /* (USART) Image of CTS Input */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Synchronous Serial Controller Interface */
/* ***************************************************************************** */
typedef struct _AT91S_SSC
{
    AT91_REG SSC_CR;          /* Control Register */
    AT91_REG SSC_CMR;         /* Clock Mode Register */
    AT91_REG Reserved0[ 2 ];  /* */
    AT91_REG SSC_RCMR;        /* Receive Clock ModeRegister */
    AT91_REG SSC_RFMR;        /* Receive Frame Mode Register */
    AT91_REG SSC_TCMR;        /* Transmit Clock Mode Register */
    AT91_REG SSC_TFMR;        /* Transmit Frame Mode Register */
    AT91_REG SSC_RHR;         /* Receive Holding Register */
    AT91_REG SSC_THR;         /* Transmit Holding Register */
    AT91_REG Reserved1[ 2 ];  /* */
    AT91_REG SSC_RSHR;        /* Receive Sync Holding Register */
    AT91_REG SSC_TSHR;        /* Transmit Sync Holding Register */
    AT91_REG Reserved2[ 2 ];  /* */
    AT91_REG SSC_SR;          /* Status Register */
    AT91_REG SSC_IER;         /* Interrupt Enable Register */
    AT91_REG SSC_IDR;         /* Interrupt Disable Register */
    AT91_REG SSC_IMR;         /* Interrupt Mask Register */
    AT91_REG Reserved3[ 44 ]; /* */
    AT91_REG SSC_RPR;         /* Receive Pointer Register */
    AT91_REG SSC_RCR;         /* Receive Counter Register */
    AT91_REG SSC_TPR;         /* Transmit Pointer Register */
    AT91_REG SSC_TCR;         /* Transmit Counter Register */
    AT91_REG SSC_RNPR;        /* Receive Next Pointer Register */
    AT91_REG SSC_RNCR;        /* Receive Next Counter Register */
    AT91_REG SSC_TNPR;        /* Transmit Next Pointer Register */
    AT91_REG SSC_TNCR;        /* Transmit Next Counter Register */
    AT91_REG SSC_PTCR;        /* PDC Transfer Control Register */
    AT91_REG SSC_PTSR;        /* PDC Transfer Status Register */
} AT91S_SSC, * AT91PS_SSC;

/* -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- */
#define AT91C_SSC_RXEN                   ( ( unsigned int ) 0x1 << 0 )   /* (SSC) Receive Enable */
#define AT91C_SSC_RXDIS                  ( ( unsigned int ) 0x1 << 1 )   /* (SSC) Receive Disable */
#define AT91C_SSC_TXEN                   ( ( unsigned int ) 0x1 << 8 )   /* (SSC) Transmit Enable */
#define AT91C_SSC_TXDIS                  ( ( unsigned int ) 0x1 << 9 )   /* (SSC) Transmit Disable */
#define AT91C_SSC_SWRST                  ( ( unsigned int ) 0x1 << 15 )  /* (SSC) Software Reset */
/* -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- */
#define AT91C_SSC_CKS                    ( ( unsigned int ) 0x3 << 0 )   /* (SSC) Receive/Transmit Clock Selection */
#define     AT91C_SSC_CKS_DIV            ( ( unsigned int ) 0x0 )        /* (SSC) Divided Clock */
#define     AT91C_SSC_CKS_TK             ( ( unsigned int ) 0x1 )        /* (SSC) TK Clock signal */
#define     AT91C_SSC_CKS_RK             ( ( unsigned int ) 0x2 )        /* (SSC) RK pin */
#define AT91C_SSC_CKO                    ( ( unsigned int ) 0x7 << 2 )   /* (SSC) Receive/Transmit Clock Output Mode Selection */
#define     AT91C_SSC_CKO_NONE           ( ( unsigned int ) 0x0 << 2 )   /* (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only */
#define     AT91C_SSC_CKO_CONTINOUS      ( ( unsigned int ) 0x1 << 2 )   /* (SSC) Continuous Receive/Transmit Clock RK pin: Output */
#define     AT91C_SSC_CKO_DATA_TX        ( ( unsigned int ) 0x2 << 2 )   /* (SSC) Receive/Transmit Clock only during data transfers RK pin: Output */
#define AT91C_SSC_CKI                    ( ( unsigned int ) 0x1 << 5 )   /* (SSC) Receive/Transmit Clock Inversion */
#define AT91C_SSC_START                  ( ( unsigned int ) 0xF << 8 )   /* (SSC) Receive/Transmit Start Selection */
#define     AT91C_SSC_START_CONTINOUS    ( ( unsigned int ) 0x0 << 8 )   /* (SSC) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data. */
#define     AT91C_SSC_START_TX           ( ( unsigned int ) 0x1 << 8 )   /* (SSC) Transmit/Receive start */
#define     AT91C_SSC_START_LOW_RF       ( ( unsigned int ) 0x2 << 8 )   /* (SSC) Detection of a low level on RF input */
#define     AT91C_SSC_START_HIGH_RF      ( ( unsigned int ) 0x3 << 8 )   /* (SSC) Detection of a high level on RF input */
#define     AT91C_SSC_START_FALL_RF      ( ( unsigned int ) 0x4 << 8 )   /* (SSC) Detection of a falling edge on RF input */
#define     AT91C_SSC_START_RISE_RF      ( ( unsigned int ) 0x5 << 8 )   /* (SSC) Detection of a rising edge on RF input */
#define     AT91C_SSC_START_LEVEL_RF     ( ( unsigned int ) 0x6 << 8 )   /* (SSC) Detection of any level change on RF input */
#define     AT91C_SSC_START_EDGE_RF      ( ( unsigned int ) 0x7 << 8 )   /* (SSC) Detection of any edge on RF input */
#define     AT91C_SSC_START_0            ( ( unsigned int ) 0x8 << 8 )   /* (SSC) Compare 0 */
#define AT91C_SSC_STTDLY                 ( ( unsigned int ) 0xFF << 16 ) /* (SSC) Receive/Transmit Start Delay */
#define AT91C_SSC_PERIOD                 ( ( unsigned int ) 0xFF << 24 ) /* (SSC) Receive/Transmit Period Divider Selection */
/* -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- */
#define AT91C_SSC_DATLEN                 ( ( unsigned int ) 0x1F << 0 )  /* (SSC) Data Length */
#define AT91C_SSC_LOOP                   ( ( unsigned int ) 0x1 << 5 )   /* (SSC) Loop Mode */
#define AT91C_SSC_MSBF                   ( ( unsigned int ) 0x1 << 7 )   /* (SSC) Most Significant Bit First */
#define AT91C_SSC_DATNB                  ( ( unsigned int ) 0xF << 8 )   /* (SSC) Data Number per Frame */
#define AT91C_SSC_FSLEN                  ( ( unsigned int ) 0xF << 16 )  /* (SSC) Receive/Transmit Frame Sync length */
#define AT91C_SSC_FSOS                   ( ( unsigned int ) 0x7 << 20 )  /* (SSC) Receive/Transmit Frame Sync Output Selection */
#define     AT91C_SSC_FSOS_NONE          ( ( unsigned int ) 0x0 << 20 )  /* (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only */
#define     AT91C_SSC_FSOS_NEGATIVE      ( ( unsigned int ) 0x1 << 20 )  /* (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse */
#define     AT91C_SSC_FSOS_POSITIVE      ( ( unsigned int ) 0x2 << 20 )  /* (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse */
#define     AT91C_SSC_FSOS_LOW           ( ( unsigned int ) 0x3 << 20 )  /* (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer */
#define     AT91C_SSC_FSOS_HIGH          ( ( unsigned int ) 0x4 << 20 )  /* (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer */
#define     AT91C_SSC_FSOS_TOGGLE        ( ( unsigned int ) 0x5 << 20 )  /* (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer */
#define AT91C_SSC_FSEDGE                 ( ( unsigned int ) 0x1 << 24 )  /* (SSC) Frame Sync Edge Detection */
/* -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- */
/* -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- */
#define AT91C_SSC_DATDEF                 ( ( unsigned int ) 0x1 << 5 )  /* (SSC) Data Default Value */
#define AT91C_SSC_FSDEN                  ( ( unsigned int ) 0x1 << 23 ) /* (SSC) Frame Sync Data Enable */
/* -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- */
#define AT91C_SSC_TXRDY                  ( ( unsigned int ) 0x1 << 0 )  /* (SSC) Transmit Ready */
#define AT91C_SSC_TXEMPTY                ( ( unsigned int ) 0x1 << 1 )  /* (SSC) Transmit Empty */
#define AT91C_SSC_ENDTX                  ( ( unsigned int ) 0x1 << 2 )  /* (SSC) End Of Transmission */
#define AT91C_SSC_TXBUFE                 ( ( unsigned int ) 0x1 << 3 )  /* (SSC) Transmit Buffer Empty */
#define AT91C_SSC_RXRDY                  ( ( unsigned int ) 0x1 << 4 )  /* (SSC) Receive Ready */
#define AT91C_SSC_OVRUN                  ( ( unsigned int ) 0x1 << 5 )  /* (SSC) Receive Overrun */
#define AT91C_SSC_ENDRX                  ( ( unsigned int ) 0x1 << 6 )  /* (SSC) End of Reception */
#define AT91C_SSC_RXBUFF                 ( ( unsigned int ) 0x1 << 7 )  /* (SSC) Receive Buffer Full */
#define AT91C_SSC_TXSYN                  ( ( unsigned int ) 0x1 << 10 ) /* (SSC) Transmit Sync */
#define AT91C_SSC_RXSYN                  ( ( unsigned int ) 0x1 << 11 ) /* (SSC) Receive Sync */
#define AT91C_SSC_TXENA                  ( ( unsigned int ) 0x1 << 16 ) /* (SSC) Transmit Enable */
#define AT91C_SSC_RXENA                  ( ( unsigned int ) 0x1 << 17 ) /* (SSC) Receive Enable */
/* -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- */
/* -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- */
/* -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Two-wire Interface */
/* ***************************************************************************** */
typedef struct _AT91S_TWI
{
    AT91_REG TWI_CR;         /* Control Register */
    AT91_REG TWI_MMR;        /* Master Mode Register */
    AT91_REG Reserved0[ 1 ]; /* */
    AT91_REG TWI_IADR;       /* Internal Address Register */
    AT91_REG TWI_CWGR;       /* Clock Waveform Generator Register */
    AT91_REG Reserved1[ 3 ]; /* */
    AT91_REG TWI_SR;         /* Status Register */
    AT91_REG TWI_IER;        /* Interrupt Enable Register */
    AT91_REG TWI_IDR;        /* Interrupt Disable Register */
    AT91_REG TWI_IMR;        /* Interrupt Mask Register */
    AT91_REG TWI_RHR;        /* Receive Holding Register */
    AT91_REG TWI_THR;        /* Transmit Holding Register */
} AT91S_TWI, * AT91PS_TWI;

/* -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- */
#define AT91C_TWI_START                ( ( unsigned int ) 0x1 << 0 )   /* (TWI) Send a START Condition */
#define AT91C_TWI_STOP                 ( ( unsigned int ) 0x1 << 1 )   /* (TWI) Send a STOP Condition */
#define AT91C_TWI_MSEN                 ( ( unsigned int ) 0x1 << 2 )   /* (TWI) TWI Master Transfer Enabled */
#define AT91C_TWI_MSDIS                ( ( unsigned int ) 0x1 << 3 )   /* (TWI) TWI Master Transfer Disabled */
#define AT91C_TWI_SWRST                ( ( unsigned int ) 0x1 << 7 )   /* (TWI) Software Reset */
/* -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- */
#define AT91C_TWI_IADRSZ               ( ( unsigned int ) 0x3 << 8 )   /* (TWI) Internal Device Address Size */
#define     AT91C_TWI_IADRSZ_NO        ( ( unsigned int ) 0x0 << 8 )   /* (TWI) No internal device address */
#define     AT91C_TWI_IADRSZ_1_BYTE    ( ( unsigned int ) 0x1 << 8 )   /* (TWI) One-byte internal device address */
#define     AT91C_TWI_IADRSZ_2_BYTE    ( ( unsigned int ) 0x2 << 8 )   /* (TWI) Two-byte internal device address */
#define     AT91C_TWI_IADRSZ_3_BYTE    ( ( unsigned int ) 0x3 << 8 )   /* (TWI) Three-byte internal device address */
#define AT91C_TWI_MREAD                ( ( unsigned int ) 0x1 << 12 )  /* (TWI) Master Read Direction */
#define AT91C_TWI_DADR                 ( ( unsigned int ) 0x7F << 16 ) /* (TWI) Device Address */
/* -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- */
#define AT91C_TWI_CLDIV                ( ( unsigned int ) 0xFF << 0 )  /* (TWI) Clock Low Divider */
#define AT91C_TWI_CHDIV                ( ( unsigned int ) 0xFF << 8 )  /* (TWI) Clock High Divider */
#define AT91C_TWI_CKDIV                ( ( unsigned int ) 0x7 << 16 )  /* (TWI) Clock Divider */
/* -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- */
#define AT91C_TWI_TXCOMP               ( ( unsigned int ) 0x1 << 0 )   /* (TWI) Transmission Completed */
#define AT91C_TWI_RXRDY                ( ( unsigned int ) 0x1 << 1 )   /* (TWI) Receive holding register ReaDY */
#define AT91C_TWI_TXRDY                ( ( unsigned int ) 0x1 << 2 )   /* (TWI) Transmit holding register ReaDY */
#define AT91C_TWI_OVRE                 ( ( unsigned int ) 0x1 << 6 )   /* (TWI) Overrun Error */
#define AT91C_TWI_UNRE                 ( ( unsigned int ) 0x1 << 7 )   /* (TWI) Underrun Error */
#define AT91C_TWI_NACK                 ( ( unsigned int ) 0x1 << 8 )   /* (TWI) Not Acknowledged */
/* -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- */
/* -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- */
/* -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR PWMC Channel Interface */
/* ***************************************************************************** */
typedef struct _AT91S_PWMC_CH
{
    AT91_REG PWMC_CMR;           /* Channel Mode Register */
    AT91_REG PWMC_CDTYR;         /* Channel Duty Cycle Register */
    AT91_REG PWMC_CPRDR;         /* Channel Period Register */
    AT91_REG PWMC_CCNTR;         /* Channel Counter Register */
    AT91_REG PWMC_CUPDR;         /* Channel Update Register */
    AT91_REG PWMC_Reserved[ 3 ]; /* Reserved */
} AT91S_PWMC_CH, * AT91PS_PWMC_CH;

/* -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- */
#define AT91C_PWMC_CPRE             ( ( unsigned int ) 0xF << 0 )  /* (PWMC_CH) Channel Pre-scaler : PWMC_CLKx */
#define     AT91C_PWMC_CPRE_MCK     ( ( unsigned int ) 0x0 )       /* (PWMC_CH) */
#define     AT91C_PWMC_CPRE_MCKA    ( ( unsigned int ) 0xB )       /* (PWMC_CH) */
#define     AT91C_PWMC_CPRE_MCKB    ( ( unsigned int ) 0xC )       /* (PWMC_CH) */
#define AT91C_PWMC_CALG             ( ( unsigned int ) 0x1 << 8 )  /* (PWMC_CH) Channel Alignment */
#define AT91C_PWMC_CPOL             ( ( unsigned int ) 0x1 << 9 )  /* (PWMC_CH) Channel Polarity */
#define AT91C_PWMC_CPD              ( ( unsigned int ) 0x1 << 10 ) /* (PWMC_CH) Channel Update Period */
/* -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- */
#define AT91C_PWMC_CDTY             ( ( unsigned int ) 0x0 << 0 )  /* (PWMC_CH) Channel Duty Cycle */
/* -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- */
#define AT91C_PWMC_CPRD             ( ( unsigned int ) 0x0 << 0 )  /* (PWMC_CH) Channel Period */
/* -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- */
#define AT91C_PWMC_CCNT             ( ( unsigned int ) 0x0 << 0 )  /* (PWMC_CH) Channel Counter */
/* -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- */
#define AT91C_PWMC_CUPD             ( ( unsigned int ) 0x0 << 0 )  /* (PWMC_CH) Channel Update */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Pulse Width Modulation Controller Interface */
/* ***************************************************************************** */
typedef struct _AT91S_PWMC
{
    AT91_REG PWMC_MR;           /* PWMC Mode Register */
    AT91_REG PWMC_ENA;          /* PWMC Enable Register */
    AT91_REG PWMC_DIS;          /* PWMC Disable Register */
    AT91_REG PWMC_SR;           /* PWMC Status Register */
    AT91_REG PWMC_IER;          /* PWMC Interrupt Enable Register */
    AT91_REG PWMC_IDR;          /* PWMC Interrupt Disable Register */
    AT91_REG PWMC_IMR;          /* PWMC Interrupt Mask Register */
    AT91_REG PWMC_ISR;          /* PWMC Interrupt Status Register */
    AT91_REG Reserved0[ 55 ];   /* */
    AT91_REG PWMC_VR;           /* PWMC Version Register */
    AT91_REG Reserved1[ 64 ];   /* */
    AT91S_PWMC_CH PWMC_CH[ 4 ]; /* PWMC Channel */
} AT91S_PWMC, * AT91PS_PWMC;

/* -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- */
#define AT91C_PWMC_DIVA            ( ( unsigned int ) 0xFF << 0 )  /* (PWMC) CLKA divide factor. */
#define AT91C_PWMC_PREA            ( ( unsigned int ) 0xF << 8 )   /* (PWMC) Divider Input Clock Prescaler A */
#define     AT91C_PWMC_PREA_MCK    ( ( unsigned int ) 0x0 << 8 )   /* (PWMC) */
#define AT91C_PWMC_DIVB            ( ( unsigned int ) 0xFF << 16 ) /* (PWMC) CLKB divide factor. */
#define AT91C_PWMC_PREB            ( ( unsigned int ) 0xF << 24 )  /* (PWMC) Divider Input Clock Prescaler B */
#define     AT91C_PWMC_PREB_MCK    ( ( unsigned int ) 0x0 << 24 )  /* (PWMC) */
/* -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- */
#define AT91C_PWMC_CHID0           ( ( unsigned int ) 0x1 << 0 )   /* (PWMC) Channel ID 0 */
#define AT91C_PWMC_CHID1           ( ( unsigned int ) 0x1 << 1 )   /* (PWMC) Channel ID 1 */
#define AT91C_PWMC_CHID2           ( ( unsigned int ) 0x1 << 2 )   /* (PWMC) Channel ID 2 */
#define AT91C_PWMC_CHID3           ( ( unsigned int ) 0x1 << 3 )   /* (PWMC) Channel ID 3 */
/* -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- */
/* -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- */
/* -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- */
/* -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- */
/* -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- */
/* -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR USB Device Interface */
/* ***************************************************************************** */
typedef struct _AT91S_UDP
{
    AT91_REG UDP_NUM;        /* Frame Number Register */
    AT91_REG UDP_GLBSTATE;   /* Global State Register */
    AT91_REG UDP_FADDR;      /* Function Address Register */
    AT91_REG Reserved0[ 1 ]; /* */
    AT91_REG UDP_IER;        /* Interrupt Enable Register */
    AT91_REG UDP_IDR;        /* Interrupt Disable Register */
    AT91_REG UDP_IMR;        /* Interrupt Mask Register */
    AT91_REG UDP_ISR;        /* Interrupt Status Register */
    AT91_REG UDP_ICR;        /* Interrupt Clear Register */
    AT91_REG Reserved1[ 1 ]; /* */
    AT91_REG UDP_RSTEP;      /* Reset Endpoint Register */
    AT91_REG Reserved2[ 1 ]; /* */
    AT91_REG UDP_CSR[ 6 ];   /* Endpoint Control and Status Register */
    AT91_REG Reserved3[ 2 ]; /* */
    AT91_REG UDP_FDR[ 6 ];   /* Endpoint FIFO Data Register */
    AT91_REG Reserved4[ 3 ]; /* */
    AT91_REG UDP_TXVC;       /* Transceiver Control Register */
} AT91S_UDP, * AT91PS_UDP;

/* -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- */
#define AT91C_UDP_FRM_NUM    ( ( unsigned int ) 0x7FF << 0 ) /* (UDP) Frame Number as Defined in the Packet Field Formats */
#define AT91C_UDP_FRM_ERR    ( ( unsigned int ) 0x1 << 16 )  /* (UDP) Frame Error */
#define AT91C_UDP_FRM_OK     ( ( unsigned int ) 0x1 << 17 )  /* (UDP) Frame OK */
/* -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- */
#define AT91C_UDP_FADDEN     ( ( unsigned int ) 0x1 << 0 )   /* (UDP) Function Address Enable */
#define AT91C_UDP_CONFG      ( ( unsigned int ) 0x1 << 1 )   /* (UDP) Configured */
#define AT91C_UDP_ESR        ( ( unsigned int ) 0x1 << 2 )   /* (UDP) Enable Send Resume */
#define AT91C_UDP_RSMINPR    ( ( unsigned int ) 0x1 << 3 )   /* (UDP) A Resume Has Been Sent to the Host */
#define AT91C_UDP_RMWUPE     ( ( unsigned int ) 0x1 << 4 )   /* (UDP) Remote Wake Up Enable */
/* -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- */
#define AT91C_UDP_FADD       ( ( unsigned int ) 0xFF << 0 )  /* (UDP) Function Address Value */
#define AT91C_UDP_FEN        ( ( unsigned int ) 0x1 << 8 )   /* (UDP) Function Enable */
/* -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- */
#define AT91C_UDP_EPINT0     ( ( unsigned int ) 0x1 << 0 )   /* (UDP) Endpoint 0 Interrupt */
#define AT91C_UDP_EPINT1     ( ( unsigned int ) 0x1 << 1 )   /* (UDP) Endpoint 0 Interrupt */
#define AT91C_UDP_EPINT2     ( ( unsigned int ) 0x1 << 2 )   /* (UDP) Endpoint 2 Interrupt */
#define AT91C_UDP_EPINT3     ( ( unsigned int ) 0x1 << 3 )   /* (UDP) Endpoint 3 Interrupt */
#define AT91C_UDP_EPINT4     ( ( unsigned int ) 0x1 << 4 )   /* (UDP) Endpoint 4 Interrupt */
#define AT91C_UDP_EPINT5     ( ( unsigned int ) 0x1 << 5 )   /* (UDP) Endpoint 5 Interrupt */
#define AT91C_UDP_RXSUSP     ( ( unsigned int ) 0x1 << 8 )   /* (UDP) USB Suspend Interrupt */
#define AT91C_UDP_RXRSM      ( ( unsigned int ) 0x1 << 9 )   /* (UDP) USB Resume Interrupt */
#define AT91C_UDP_EXTRSM     ( ( unsigned int ) 0x1 << 10 )  /* (UDP) USB External Resume Interrupt */
#define AT91C_UDP_SOFINT     ( ( unsigned int ) 0x1 << 11 )  /* (UDP) USB Start Of frame Interrupt */
#define AT91C_UDP_WAKEUP     ( ( unsigned int ) 0x1 << 13 )  /* (UDP) USB Resume Interrupt */
/* -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- */
/* -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- */
/* -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- */
#define AT91C_UDP_ENDBUSRES              ( ( unsigned int ) 0x1 << 12 ) /* (UDP) USB End Of Bus Reset Interrupt */
/* -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- */
/* -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- */
#define AT91C_UDP_EP0                    ( ( unsigned int ) 0x1 << 0 )    /* (UDP) Reset Endpoint 0 */
#define AT91C_UDP_EP1                    ( ( unsigned int ) 0x1 << 1 )    /* (UDP) Reset Endpoint 1 */
#define AT91C_UDP_EP2                    ( ( unsigned int ) 0x1 << 2 )    /* (UDP) Reset Endpoint 2 */
#define AT91C_UDP_EP3                    ( ( unsigned int ) 0x1 << 3 )    /* (UDP) Reset Endpoint 3 */
#define AT91C_UDP_EP4                    ( ( unsigned int ) 0x1 << 4 )    /* (UDP) Reset Endpoint 4 */
#define AT91C_UDP_EP5                    ( ( unsigned int ) 0x1 << 5 )    /* (UDP) Reset Endpoint 5 */
/* -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- */
#define AT91C_UDP_TXCOMP                 ( ( unsigned int ) 0x1 << 0 )    /* (UDP) Generates an IN packet with data previously written in the DPR */
#define AT91C_UDP_RX_DATA_BK0            ( ( unsigned int ) 0x1 << 1 )    /* (UDP) Receive Data Bank 0 */
#define AT91C_UDP_RXSETUP                ( ( unsigned int ) 0x1 << 2 )    /* (UDP) Sends STALL to the Host (Control endpoints) */
#define AT91C_UDP_ISOERROR               ( ( unsigned int ) 0x1 << 3 )    /* (UDP) Isochronous error (Isochronous endpoints) */
#define AT91C_UDP_TXPKTRDY               ( ( unsigned int ) 0x1 << 4 )    /* (UDP) Transmit Packet Ready */
#define AT91C_UDP_FORCESTALL             ( ( unsigned int ) 0x1 << 5 )    /* (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints). */
#define AT91C_UDP_RX_DATA_BK1            ( ( unsigned int ) 0x1 << 6 )    /* (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes). */
#define AT91C_UDP_DIR                    ( ( unsigned int ) 0x1 << 7 )    /* (UDP) Transfer Direction */
#define AT91C_UDP_EPTYPE                 ( ( unsigned int ) 0x7 << 8 )    /* (UDP) Endpoint type */
#define     AT91C_UDP_EPTYPE_CTRL        ( ( unsigned int ) 0x0 << 8 )    /* (UDP) Control */
#define     AT91C_UDP_EPTYPE_ISO_OUT     ( ( unsigned int ) 0x1 << 8 )    /* (UDP) Isochronous OUT */
#define     AT91C_UDP_EPTYPE_BULK_OUT    ( ( unsigned int ) 0x2 << 8 )    /* (UDP) Bulk OUT */
#define     AT91C_UDP_EPTYPE_INT_OUT     ( ( unsigned int ) 0x3 << 8 )    /* (UDP) Interrupt OUT */
#define     AT91C_UDP_EPTYPE_ISO_IN      ( ( unsigned int ) 0x5 << 8 )    /* (UDP) Isochronous IN */
#define     AT91C_UDP_EPTYPE_BULK_IN     ( ( unsigned int ) 0x6 << 8 )    /* (UDP) Bulk IN */
#define     AT91C_UDP_EPTYPE_INT_IN      ( ( unsigned int ) 0x7 << 8 )    /* (UDP) Interrupt IN */
#define AT91C_UDP_DTGLE                  ( ( unsigned int ) 0x1 << 11 )   /* (UDP) Data Toggle */
#define AT91C_UDP_EPEDS                  ( ( unsigned int ) 0x1 << 15 )   /* (UDP) Endpoint Enable Disable */
#define AT91C_UDP_RXBYTECNT              ( ( unsigned int ) 0x7FF << 16 ) /* (UDP) Number Of Bytes Available in the FIFO */
/* -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- */
#define AT91C_UDP_TXVDIS                 ( ( unsigned int ) 0x1 << 8 )    /* (UDP) */
#define AT91C_UDP_PUON                   ( ( unsigned int ) 0x1 << 9 )    /* (UDP) Pull-up ON */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Timer Counter Channel Interface */
/* ***************************************************************************** */
typedef struct _AT91S_TC
{
    AT91_REG TC_CCR;         /* Channel Control Register */
    AT91_REG TC_CMR;         /* Channel Mode Register (Capture Mode / Waveform Mode) */
    AT91_REG Reserved0[ 2 ]; /* */
    AT91_REG TC_CV;          /* Counter Value */
    AT91_REG TC_RA;          /* Register A */
    AT91_REG TC_RB;          /* Register B */
    AT91_REG TC_RC;          /* Register C */
    AT91_REG TC_SR;          /* Status Register */
    AT91_REG TC_IER;         /* Interrupt Enable Register */
    AT91_REG TC_IDR;         /* Interrupt Disable Register */
    AT91_REG TC_IMR;         /* Interrupt Mask Register */
} AT91S_TC, * AT91PS_TC;

/* -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- */
#define AT91C_TC_CLKEN                        ( ( unsigned int ) 0x1 << 0 )  /* (TC) Counter Clock Enable Command */
#define AT91C_TC_CLKDIS                       ( ( unsigned int ) 0x1 << 1 )  /* (TC) Counter Clock Disable Command */
#define AT91C_TC_SWTRG                        ( ( unsigned int ) 0x1 << 2 )  /* (TC) Software Trigger Command */
/* -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- */
#define AT91C_TC_CLKS                         ( ( unsigned int ) 0x7 << 0 )  /* (TC) Clock Selection */
#define     AT91C_TC_CLKS_TIMER_DIV1_CLOCK    ( ( unsigned int ) 0x0 )       /* (TC) Clock selected: TIMER_DIV1_CLOCK */
#define     AT91C_TC_CLKS_TIMER_DIV2_CLOCK    ( ( unsigned int ) 0x1 )       /* (TC) Clock selected: TIMER_DIV2_CLOCK */
#define     AT91C_TC_CLKS_TIMER_DIV3_CLOCK    ( ( unsigned int ) 0x2 )       /* (TC) Clock selected: TIMER_DIV3_CLOCK */
#define     AT91C_TC_CLKS_TIMER_DIV4_CLOCK    ( ( unsigned int ) 0x3 )       /* (TC) Clock selected: TIMER_DIV4_CLOCK */
#define     AT91C_TC_CLKS_TIMER_DIV5_CLOCK    ( ( unsigned int ) 0x4 )       /* (TC) Clock selected: TIMER_DIV5_CLOCK */
#define     AT91C_TC_CLKS_XC0                 ( ( unsigned int ) 0x5 )       /* (TC) Clock selected: XC0 */
#define     AT91C_TC_CLKS_XC1                 ( ( unsigned int ) 0x6 )       /* (TC) Clock selected: XC1 */
#define     AT91C_TC_CLKS_XC2                 ( ( unsigned int ) 0x7 )       /* (TC) Clock selected: XC2 */
#define AT91C_TC_CLKI                         ( ( unsigned int ) 0x1 << 3 )  /* (TC) Clock Invert */
#define AT91C_TC_BURST                        ( ( unsigned int ) 0x3 << 4 )  /* (TC) Burst Signal Selection */
#define     AT91C_TC_BURST_NONE               ( ( unsigned int ) 0x0 << 4 )  /* (TC) The clock is not gated by an external signal */
#define     AT91C_TC_BURST_XC0                ( ( unsigned int ) 0x1 << 4 )  /* (TC) XC0 is ANDed with the selected clock */
#define     AT91C_TC_BURST_XC1                ( ( unsigned int ) 0x2 << 4 )  /* (TC) XC1 is ANDed with the selected clock */
#define     AT91C_TC_BURST_XC2                ( ( unsigned int ) 0x3 << 4 )  /* (TC) XC2 is ANDed with the selected clock */
#define AT91C_TC_CPCSTOP                      ( ( unsigned int ) 0x1 << 6 )  /* (TC) Counter Clock Stopped with RC Compare */
#define AT91C_TC_LDBSTOP                      ( ( unsigned int ) 0x1 << 6 )  /* (TC) Counter Clock Stopped with RB Loading */
#define AT91C_TC_CPCDIS                       ( ( unsigned int ) 0x1 << 7 )  /* (TC) Counter Clock Disable with RC Compare */
#define AT91C_TC_LDBDIS                       ( ( unsigned int ) 0x1 << 7 )  /* (TC) Counter Clock Disabled with RB Loading */
#define AT91C_TC_ETRGEDG                      ( ( unsigned int ) 0x3 << 8 )  /* (TC) External Trigger Edge Selection */
#define     AT91C_TC_ETRGEDG_NONE             ( ( unsigned int ) 0x0 << 8 )  /* (TC) Edge: None */
#define     AT91C_TC_ETRGEDG_RISING           ( ( unsigned int ) 0x1 << 8 )  /* (TC) Edge: rising edge */
#define     AT91C_TC_ETRGEDG_FALLING          ( ( unsigned int ) 0x2 << 8 )  /* (TC) Edge: falling edge */
#define     AT91C_TC_ETRGEDG_BOTH             ( ( unsigned int ) 0x3 << 8 )  /* (TC) Edge: each edge */
#define AT91C_TC_EEVTEDG                      ( ( unsigned int ) 0x3 << 8 )  /* (TC) External Event Edge Selection */
#define     AT91C_TC_EEVTEDG_NONE             ( ( unsigned int ) 0x0 << 8 )  /* (TC) Edge: None */
#define     AT91C_TC_EEVTEDG_RISING           ( ( unsigned int ) 0x1 << 8 )  /* (TC) Edge: rising edge */
#define     AT91C_TC_EEVTEDG_FALLING          ( ( unsigned int ) 0x2 << 8 )  /* (TC) Edge: falling edge */
#define     AT91C_TC_EEVTEDG_BOTH             ( ( unsigned int ) 0x3 << 8 )  /* (TC) Edge: each edge */
#define AT91C_TC_EEVT                         ( ( unsigned int ) 0x3 << 10 ) /* (TC) External Event  Selection */
#define     AT91C_TC_EEVT_TIOB                ( ( unsigned int ) 0x0 << 10 ) /* (TC) Signal selected as external event: TIOB TIOB direction: input */
#define     AT91C_TC_EEVT_XC0                 ( ( unsigned int ) 0x1 << 10 ) /* (TC) Signal selected as external event: XC0 TIOB direction: output */
#define     AT91C_TC_EEVT_XC1                 ( ( unsigned int ) 0x2 << 10 ) /* (TC) Signal selected as external event: XC1 TIOB direction: output */
#define     AT91C_TC_EEVT_XC2                 ( ( unsigned int ) 0x3 << 10 ) /* (TC) Signal selected as external event: XC2 TIOB direction: output */
#define AT91C_TC_ABETRG                       ( ( unsigned int ) 0x1 << 10 ) /* (TC) TIOA or TIOB External Trigger Selection */
#define AT91C_TC_ENETRG                       ( ( unsigned int ) 0x1 << 12 ) /* (TC) External Event Trigger enable */
#define AT91C_TC_WAVESEL                      ( ( unsigned int ) 0x3 << 13 ) /* (TC) Waveform  Selection */
#define     AT91C_TC_WAVESEL_UP               ( ( unsigned int ) 0x0 << 13 ) /* (TC) UP mode without atomatic trigger on RC Compare */
#define     AT91C_TC_WAVESEL_UPDOWN           ( ( unsigned int ) 0x1 << 13 ) /* (TC) UPDOWN mode without automatic trigger on RC Compare */
#define     AT91C_TC_WAVESEL_UP_AUTO          ( ( unsigned int ) 0x2 << 13 ) /* (TC) UP mode with automatic trigger on RC Compare */
#define     AT91C_TC_WAVESEL_UPDOWN_AUTO      ( ( unsigned int ) 0x3 << 13 ) /* (TC) UPDOWN mode with automatic trigger on RC Compare */
#define AT91C_TC_CPCTRG                       ( ( unsigned int ) 0x1 << 14 ) /* (TC) RC Compare Trigger Enable */
#define AT91C_TC_WAVE                         ( ( unsigned int ) 0x1 << 15 ) /* (TC) */
#define AT91C_TC_ACPA                         ( ( unsigned int ) 0x3 << 16 ) /* (TC) RA Compare Effect on TIOA */
#define     AT91C_TC_ACPA_NONE                ( ( unsigned int ) 0x0 << 16 ) /* (TC) Effect: none */
#define     AT91C_TC_ACPA_SET                 ( ( unsigned int ) 0x1 << 16 ) /* (TC) Effect: set */
#define     AT91C_TC_ACPA_CLEAR               ( ( unsigned int ) 0x2 << 16 ) /* (TC) Effect: clear */
#define     AT91C_TC_ACPA_TOGGLE              ( ( unsigned int ) 0x3 << 16 ) /* (TC) Effect: toggle */
#define AT91C_TC_LDRA                         ( ( unsigned int ) 0x3 << 16 ) /* (TC) RA Loading Selection */
#define     AT91C_TC_LDRA_NONE                ( ( unsigned int ) 0x0 << 16 ) /* (TC) Edge: None */
#define     AT91C_TC_LDRA_RISING              ( ( unsigned int ) 0x1 << 16 ) /* (TC) Edge: rising edge of TIOA */
#define     AT91C_TC_LDRA_FALLING             ( ( unsigned int ) 0x2 << 16 ) /* (TC) Edge: falling edge of TIOA */
#define     AT91C_TC_LDRA_BOTH                ( ( unsigned int ) 0x3 << 16 ) /* (TC) Edge: each edge of TIOA */
#define AT91C_TC_ACPC                         ( ( unsigned int ) 0x3 << 18 ) /* (TC) RC Compare Effect on TIOA */
#define     AT91C_TC_ACPC_NONE                ( ( unsigned int ) 0x0 << 18 ) /* (TC) Effect: none */
#define     AT91C_TC_ACPC_SET                 ( ( unsigned int ) 0x1 << 18 ) /* (TC) Effect: set */
#define     AT91C_TC_ACPC_CLEAR               ( ( unsigned int ) 0x2 << 18 ) /* (TC) Effect: clear */
#define     AT91C_TC_ACPC_TOGGLE              ( ( unsigned int ) 0x3 << 18 ) /* (TC) Effect: toggle */
#define AT91C_TC_LDRB                         ( ( unsigned int ) 0x3 << 18 ) /* (TC) RB Loading Selection */
#define     AT91C_TC_LDRB_NONE                ( ( unsigned int ) 0x0 << 18 ) /* (TC) Edge: None */
#define     AT91C_TC_LDRB_RISING              ( ( unsigned int ) 0x1 << 18 ) /* (TC) Edge: rising edge of TIOA */
#define     AT91C_TC_LDRB_FALLING             ( ( unsigned int ) 0x2 << 18 ) /* (TC) Edge: falling edge of TIOA */
#define     AT91C_TC_LDRB_BOTH                ( ( unsigned int ) 0x3 << 18 ) /* (TC) Edge: each edge of TIOA */
#define AT91C_TC_AEEVT                        ( ( unsigned int ) 0x3 << 20 ) /* (TC) External Event Effect on TIOA */
#define     AT91C_TC_AEEVT_NONE               ( ( unsigned int ) 0x0 << 20 ) /* (TC) Effect: none */
#define     AT91C_TC_AEEVT_SET                ( ( unsigned int ) 0x1 << 20 ) /* (TC) Effect: set */
#define     AT91C_TC_AEEVT_CLEAR              ( ( unsigned int ) 0x2 << 20 ) /* (TC) Effect: clear */
#define     AT91C_TC_AEEVT_TOGGLE             ( ( unsigned int ) 0x3 << 20 ) /* (TC) Effect: toggle */
#define AT91C_TC_ASWTRG                       ( ( unsigned int ) 0x3 << 22 ) /* (TC) Software Trigger Effect on TIOA */
#define     AT91C_TC_ASWTRG_NONE              ( ( unsigned int ) 0x0 << 22 ) /* (TC) Effect: none */
#define     AT91C_TC_ASWTRG_SET               ( ( unsigned int ) 0x1 << 22 ) /* (TC) Effect: set */
#define     AT91C_TC_ASWTRG_CLEAR             ( ( unsigned int ) 0x2 << 22 ) /* (TC) Effect: clear */
#define     AT91C_TC_ASWTRG_TOGGLE            ( ( unsigned int ) 0x3 << 22 ) /* (TC) Effect: toggle */
#define AT91C_TC_BCPB                         ( ( unsigned int ) 0x3 << 24 ) /* (TC) RB Compare Effect on TIOB */
#define     AT91C_TC_BCPB_NONE                ( ( unsigned int ) 0x0 << 24 ) /* (TC) Effect: none */
#define     AT91C_TC_BCPB_SET                 ( ( unsigned int ) 0x1 << 24 ) /* (TC) Effect: set */
#define     AT91C_TC_BCPB_CLEAR               ( ( unsigned int ) 0x2 << 24 ) /* (TC) Effect: clear */
#define     AT91C_TC_BCPB_TOGGLE              ( ( unsigned int ) 0x3 << 24 ) /* (TC) Effect: toggle */
#define AT91C_TC_BCPC                         ( ( unsigned int ) 0x3 << 26 ) /* (TC) RC Compare Effect on TIOB */
#define     AT91C_TC_BCPC_NONE                ( ( unsigned int ) 0x0 << 26 ) /* (TC) Effect: none */
#define     AT91C_TC_BCPC_SET                 ( ( unsigned int ) 0x1 << 26 ) /* (TC) Effect: set */
#define     AT91C_TC_BCPC_CLEAR               ( ( unsigned int ) 0x2 << 26 ) /* (TC) Effect: clear */
#define     AT91C_TC_BCPC_TOGGLE              ( ( unsigned int ) 0x3 << 26 ) /* (TC) Effect: toggle */
#define AT91C_TC_BEEVT                        ( ( unsigned int ) 0x3 << 28 ) /* (TC) External Event Effect on TIOB */
#define     AT91C_TC_BEEVT_NONE               ( ( unsigned int ) 0x0 << 28 ) /* (TC) Effect: none */
#define     AT91C_TC_BEEVT_SET                ( ( unsigned int ) 0x1 << 28 ) /* (TC) Effect: set */
#define     AT91C_TC_BEEVT_CLEAR              ( ( unsigned int ) 0x2 << 28 ) /* (TC) Effect: clear */
#define     AT91C_TC_BEEVT_TOGGLE             ( ( unsigned int ) 0x3 << 28 ) /* (TC) Effect: toggle */
#define AT91C_TC_BSWTRG                       ( ( unsigned int ) 0x3 << 30 ) /* (TC) Software Trigger Effect on TIOB */
#define     AT91C_TC_BSWTRG_NONE              ( ( unsigned int ) 0x0 << 30 ) /* (TC) Effect: none */
#define     AT91C_TC_BSWTRG_SET               ( ( unsigned int ) 0x1 << 30 ) /* (TC) Effect: set */
#define     AT91C_TC_BSWTRG_CLEAR             ( ( unsigned int ) 0x2 << 30 ) /* (TC) Effect: clear */
#define     AT91C_TC_BSWTRG_TOGGLE            ( ( unsigned int ) 0x3 << 30 ) /* (TC) Effect: toggle */
/* -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- */
#define AT91C_TC_COVFS                        ( ( unsigned int ) 0x1 << 0 )  /* (TC) Counter Overflow */
#define AT91C_TC_LOVRS                        ( ( unsigned int ) 0x1 << 1 )  /* (TC) Load Overrun */
#define AT91C_TC_CPAS                         ( ( unsigned int ) 0x1 << 2 )  /* (TC) RA Compare */
#define AT91C_TC_CPBS                         ( ( unsigned int ) 0x1 << 3 )  /* (TC) RB Compare */
#define AT91C_TC_CPCS                         ( ( unsigned int ) 0x1 << 4 )  /* (TC) RC Compare */
#define AT91C_TC_LDRAS                        ( ( unsigned int ) 0x1 << 5 )  /* (TC) RA Loading */
#define AT91C_TC_LDRBS                        ( ( unsigned int ) 0x1 << 6 )  /* (TC) RB Loading */
#define AT91C_TC_ETRGS                        ( ( unsigned int ) 0x1 << 7 )  /* (TC) External Trigger */
#define AT91C_TC_CLKSTA                       ( ( unsigned int ) 0x1 << 16 ) /* (TC) Clock Enabling */
#define AT91C_TC_MTIOA                        ( ( unsigned int ) 0x1 << 17 ) /* (TC) TIOA Mirror */
#define AT91C_TC_MTIOB                        ( ( unsigned int ) 0x1 << 18 ) /* (TC) TIOA Mirror */
/* -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- */
/* -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- */
/* -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Timer Counter Interface */
/* ***************************************************************************** */
typedef struct _AT91S_TCB
{
    AT91S_TC TCB_TC0;        /* TC Channel 0 */
    AT91_REG Reserved0[ 4 ]; /* */
    AT91S_TC TCB_TC1;        /* TC Channel 1 */
    AT91_REG Reserved1[ 4 ]; /* */
    AT91S_TC TCB_TC2;        /* TC Channel 2 */
    AT91_REG Reserved2[ 4 ]; /* */
    AT91_REG TCB_BCR;        /* TC Block Control Register */
    AT91_REG TCB_BMR;        /* TC Block Mode Register */
} AT91S_TCB, * AT91PS_TCB;

/* -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- */
#define AT91C_TCB_SYNC                 ( ( unsigned int ) 0x1 << 0 ) /* (TCB) Synchro Command */
/* -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- */
#define AT91C_TCB_TC0XC0S              ( ( unsigned int ) 0x3 << 0 ) /* (TCB) External Clock Signal 0 Selection */
#define     AT91C_TCB_TC0XC0S_TCLK0    ( ( unsigned int ) 0x0 )      /* (TCB) TCLK0 connected to XC0 */
#define     AT91C_TCB_TC0XC0S_NONE     ( ( unsigned int ) 0x1 )      /* (TCB) None signal connected to XC0 */
#define     AT91C_TCB_TC0XC0S_TIOA1    ( ( unsigned int ) 0x2 )      /* (TCB) TIOA1 connected to XC0 */
#define     AT91C_TCB_TC0XC0S_TIOA2    ( ( unsigned int ) 0x3 )      /* (TCB) TIOA2 connected to XC0 */
#define AT91C_TCB_TC1XC1S              ( ( unsigned int ) 0x3 << 2 ) /* (TCB) External Clock Signal 1 Selection */
#define     AT91C_TCB_TC1XC1S_TCLK1    ( ( unsigned int ) 0x0 << 2 ) /* (TCB) TCLK1 connected to XC1 */
#define     AT91C_TCB_TC1XC1S_NONE     ( ( unsigned int ) 0x1 << 2 ) /* (TCB) None signal connected to XC1 */
#define     AT91C_TCB_TC1XC1S_TIOA0    ( ( unsigned int ) 0x2 << 2 ) /* (TCB) TIOA0 connected to XC1 */
#define     AT91C_TCB_TC1XC1S_TIOA2    ( ( unsigned int ) 0x3 << 2 ) /* (TCB) TIOA2 connected to XC1 */
#define AT91C_TCB_TC2XC2S              ( ( unsigned int ) 0x3 << 4 ) /* (TCB) External Clock Signal 2 Selection */
#define     AT91C_TCB_TC2XC2S_TCLK2    ( ( unsigned int ) 0x0 << 4 ) /* (TCB) TCLK2 connected to XC2 */
#define     AT91C_TCB_TC2XC2S_NONE     ( ( unsigned int ) 0x1 << 4 ) /* (TCB) None signal connected to XC2 */
#define     AT91C_TCB_TC2XC2S_TIOA0    ( ( unsigned int ) 0x2 << 4 ) /* (TCB) TIOA0 connected to XC2 */
#define     AT91C_TCB_TC2XC2S_TIOA1    ( ( unsigned int ) 0x3 << 4 ) /* (TCB) TIOA2 connected to XC2 */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Control Area Network MailBox Interface */
/* ***************************************************************************** */
typedef struct _AT91S_CAN_MB
{
    AT91_REG CAN_MB_MMR;  /* MailBox Mode Register */
    AT91_REG CAN_MB_MAM;  /* MailBox Acceptance Mask Register */
    AT91_REG CAN_MB_MID;  /* MailBox ID Register */
    AT91_REG CAN_MB_MFID; /* MailBox Family ID Register */
    AT91_REG CAN_MB_MSR;  /* MailBox Status Register */
    AT91_REG CAN_MB_MDL;  /* MailBox Data Low Register */
    AT91_REG CAN_MB_MDH;  /* MailBox Data High Register */
    AT91_REG CAN_MB_MCR;  /* MailBox Control Register */
} AT91S_CAN_MB, * AT91PS_CAN_MB;

/* -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- */
#define AT91C_CAN_MTIMEMARK              ( ( unsigned int ) 0xFFFF << 0 )  /* (CAN_MB) Mailbox Timemark */
#define AT91C_CAN_PRIOR                  ( ( unsigned int ) 0xF << 16 )    /* (CAN_MB) Mailbox Priority */
#define AT91C_CAN_MOT                    ( ( unsigned int ) 0x7 << 24 )    /* (CAN_MB) Mailbox Object Type */
#define     AT91C_CAN_MOT_DIS            ( ( unsigned int ) 0x0 << 24 )    /* (CAN_MB) */
#define     AT91C_CAN_MOT_RX             ( ( unsigned int ) 0x1 << 24 )    /* (CAN_MB) */
#define     AT91C_CAN_MOT_RXOVERWRITE    ( ( unsigned int ) 0x2 << 24 )    /* (CAN_MB) */
#define     AT91C_CAN_MOT_TX             ( ( unsigned int ) 0x3 << 24 )    /* (CAN_MB) */
#define     AT91C_CAN_MOT_CONSUMER       ( ( unsigned int ) 0x4 << 24 )    /* (CAN_MB) */
#define     AT91C_CAN_MOT_PRODUCER       ( ( unsigned int ) 0x5 << 24 )    /* (CAN_MB) */
/* -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- */
#define AT91C_CAN_MIDvB                  ( ( unsigned int ) 0x3FFFF << 0 ) /* (CAN_MB) Complementary bits for identifier in extended mode */
#define AT91C_CAN_MIDvA                  ( ( unsigned int ) 0x7FF << 18 )  /* (CAN_MB) Identifier for standard frame mode */
#define AT91C_CAN_MIDE                   ( ( unsigned int ) 0x1 << 29 )    /* (CAN_MB) Identifier Version */
/* -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- */
/* -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- */
/* -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- */
#define AT91C_CAN_MTIMESTAMP    ( ( unsigned int ) 0xFFFF << 0 ) /* (CAN_MB) Timer Value */
#define AT91C_CAN_MDLC          ( ( unsigned int ) 0xF << 16 )   /* (CAN_MB) Mailbox Data Length Code */
#define AT91C_CAN_MRTR          ( ( unsigned int ) 0x1 << 20 )   /* (CAN_MB) Mailbox Remote Transmission Request */
#define AT91C_CAN_MABT          ( ( unsigned int ) 0x1 << 22 )   /* (CAN_MB) Mailbox Message Abort */
#define AT91C_CAN_MRDY          ( ( unsigned int ) 0x1 << 23 )   /* (CAN_MB) Mailbox Ready */
#define AT91C_CAN_MMI           ( ( unsigned int ) 0x1 << 24 )   /* (CAN_MB) Mailbox Message Ignored */
/* -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- */
/* -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- */
/* -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- */
#define AT91C_CAN_MACR    ( ( unsigned int ) 0x1 << 22 ) /* (CAN_MB) Abort Request for Mailbox */
#define AT91C_CAN_MTCR    ( ( unsigned int ) 0x1 << 23 ) /* (CAN_MB) Mailbox Transfer Command */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Control Area Network Interface */
/* ***************************************************************************** */
typedef struct _AT91S_CAN
{
    AT91_REG CAN_MR;          /* Mode Register */
    AT91_REG CAN_IER;         /* Interrupt Enable Register */
    AT91_REG CAN_IDR;         /* Interrupt Disable Register */
    AT91_REG CAN_IMR;         /* Interrupt Mask Register */
    AT91_REG CAN_SR;          /* Status Register */
    AT91_REG CAN_BR;          /* Baudrate Register */
    AT91_REG CAN_TIM;         /* Timer Register */
    AT91_REG CAN_TIMESTP;     /* Time Stamp Register */
    AT91_REG CAN_ECR;         /* Error Counter Register */
    AT91_REG CAN_TCR;         /* Transfer Command Register */
    AT91_REG CAN_ACR;         /* Abort Command Register */
    AT91_REG Reserved0[ 52 ]; /* */
    AT91_REG CAN_VR;          /* Version Register */
    AT91_REG Reserved1[ 64 ]; /* */
    AT91S_CAN_MB CAN_MB0;     /* CAN Mailbox 0 */
    AT91S_CAN_MB CAN_MB1;     /* CAN Mailbox 1 */
    AT91S_CAN_MB CAN_MB2;     /* CAN Mailbox 2 */
    AT91S_CAN_MB CAN_MB3;     /* CAN Mailbox 3 */
    AT91S_CAN_MB CAN_MB4;     /* CAN Mailbox 4 */
    AT91S_CAN_MB CAN_MB5;     /* CAN Mailbox 5 */
    AT91S_CAN_MB CAN_MB6;     /* CAN Mailbox 6 */
    AT91S_CAN_MB CAN_MB7;     /* CAN Mailbox 7 */
    AT91S_CAN_MB CAN_MB8;     /* CAN Mailbox 8 */
    AT91S_CAN_MB CAN_MB9;     /* CAN Mailbox 9 */
    AT91S_CAN_MB CAN_MB10;    /* CAN Mailbox 10 */
    AT91S_CAN_MB CAN_MB11;    /* CAN Mailbox 11 */
    AT91S_CAN_MB CAN_MB12;    /* CAN Mailbox 12 */
    AT91S_CAN_MB CAN_MB13;    /* CAN Mailbox 13 */
    AT91S_CAN_MB CAN_MB14;    /* CAN Mailbox 14 */
    AT91S_CAN_MB CAN_MB15;    /* CAN Mailbox 15 */
} AT91S_CAN, * AT91PS_CAN;

/* -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- */
#define AT91C_CAN_CANEN     ( ( unsigned int ) 0x1 << 0 )  /* (CAN) CAN Controller Enable */
#define AT91C_CAN_LPM       ( ( unsigned int ) 0x1 << 1 )  /* (CAN) Disable/Enable Low Power Mode */
#define AT91C_CAN_ABM       ( ( unsigned int ) 0x1 << 2 )  /* (CAN) Disable/Enable Autobaud/Listen Mode */
#define AT91C_CAN_OVL       ( ( unsigned int ) 0x1 << 3 )  /* (CAN) Disable/Enable Overload Frame */
#define AT91C_CAN_TEOF      ( ( unsigned int ) 0x1 << 4 )  /* (CAN) Time Stamp messages at each end of Frame */
#define AT91C_CAN_TTM       ( ( unsigned int ) 0x1 << 5 )  /* (CAN) Disable/Enable Time Trigger Mode */
#define AT91C_CAN_TIMFRZ    ( ( unsigned int ) 0x1 << 6 )  /* (CAN) Enable Timer Freeze */
#define AT91C_CAN_DRPT      ( ( unsigned int ) 0x1 << 7 )  /* (CAN) Disable Repeat */
/* -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- */
#define AT91C_CAN_MB0       ( ( unsigned int ) 0x1 << 0 )  /* (CAN) Mailbox 0 Flag */
#define AT91C_CAN_MB1       ( ( unsigned int ) 0x1 << 1 )  /* (CAN) Mailbox 1 Flag */
#define AT91C_CAN_MB2       ( ( unsigned int ) 0x1 << 2 )  /* (CAN) Mailbox 2 Flag */
#define AT91C_CAN_MB3       ( ( unsigned int ) 0x1 << 3 )  /* (CAN) Mailbox 3 Flag */
#define AT91C_CAN_MB4       ( ( unsigned int ) 0x1 << 4 )  /* (CAN) Mailbox 4 Flag */
#define AT91C_CAN_MB5       ( ( unsigned int ) 0x1 << 5 )  /* (CAN) Mailbox 5 Flag */
#define AT91C_CAN_MB6       ( ( unsigned int ) 0x1 << 6 )  /* (CAN) Mailbox 6 Flag */
#define AT91C_CAN_MB7       ( ( unsigned int ) 0x1 << 7 )  /* (CAN) Mailbox 7 Flag */
#define AT91C_CAN_MB8       ( ( unsigned int ) 0x1 << 8 )  /* (CAN) Mailbox 8 Flag */
#define AT91C_CAN_MB9       ( ( unsigned int ) 0x1 << 9 )  /* (CAN) Mailbox 9 Flag */
#define AT91C_CAN_MB10      ( ( unsigned int ) 0x1 << 10 ) /* (CAN) Mailbox 10 Flag */
#define AT91C_CAN_MB11      ( ( unsigned int ) 0x1 << 11 ) /* (CAN) Mailbox 11 Flag */
#define AT91C_CAN_MB12      ( ( unsigned int ) 0x1 << 12 ) /* (CAN) Mailbox 12 Flag */
#define AT91C_CAN_MB13      ( ( unsigned int ) 0x1 << 13 ) /* (CAN) Mailbox 13 Flag */
#define AT91C_CAN_MB14      ( ( unsigned int ) 0x1 << 14 ) /* (CAN) Mailbox 14 Flag */
#define AT91C_CAN_MB15      ( ( unsigned int ) 0x1 << 15 ) /* (CAN) Mailbox 15 Flag */
#define AT91C_CAN_ERRA      ( ( unsigned int ) 0x1 << 16 ) /* (CAN) Error Active Mode Flag */
#define AT91C_CAN_WARN      ( ( unsigned int ) 0x1 << 17 ) /* (CAN) Warning Limit Flag */
#define AT91C_CAN_ERRP      ( ( unsigned int ) 0x1 << 18 ) /* (CAN) Error Passive Mode Flag */
#define AT91C_CAN_BOFF      ( ( unsigned int ) 0x1 << 19 ) /* (CAN) Bus Off Mode Flag */
#define AT91C_CAN_SLEEP     ( ( unsigned int ) 0x1 << 20 ) /* (CAN) Sleep Flag */
#define AT91C_CAN_WAKEUP    ( ( unsigned int ) 0x1 << 21 ) /* (CAN) Wakeup Flag */
#define AT91C_CAN_TOVF      ( ( unsigned int ) 0x1 << 22 ) /* (CAN) Timer Overflow Flag */
#define AT91C_CAN_TSTP      ( ( unsigned int ) 0x1 << 23 ) /* (CAN) Timestamp Flag */
#define AT91C_CAN_CERR      ( ( unsigned int ) 0x1 << 24 ) /* (CAN) CRC Error */
#define AT91C_CAN_SERR      ( ( unsigned int ) 0x1 << 25 ) /* (CAN) Stuffing Error */
#define AT91C_CAN_AERR      ( ( unsigned int ) 0x1 << 26 ) /* (CAN) Acknowledgment Error */
#define AT91C_CAN_FERR      ( ( unsigned int ) 0x1 << 27 ) /* (CAN) Form Error */
#define AT91C_CAN_BERR      ( ( unsigned int ) 0x1 << 28 ) /* (CAN) Bit Error */
/* -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- */
/* -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- */
/* -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- */
#define AT91C_CAN_RBSY      ( ( unsigned int ) 0x1 << 29 )   /* (CAN) Receiver Busy */
#define AT91C_CAN_TBSY      ( ( unsigned int ) 0x1 << 30 )   /* (CAN) Transmitter Busy */
#define AT91C_CAN_OVLY      ( ( unsigned int ) 0x1 << 31 )   /* (CAN) Overload Busy */
/* -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- */
#define AT91C_CAN_PHASE2    ( ( unsigned int ) 0x7 << 0 )    /* (CAN) Phase 2 segment */
#define AT91C_CAN_PHASE1    ( ( unsigned int ) 0x7 << 4 )    /* (CAN) Phase 1 segment */
#define AT91C_CAN_PROPAG    ( ( unsigned int ) 0x7 << 8 )    /* (CAN) Programmation time segment */
#define AT91C_CAN_SYNC      ( ( unsigned int ) 0x3 << 12 )   /* (CAN) Re-synchronization jump width segment */
#define AT91C_CAN_BRP       ( ( unsigned int ) 0x7F << 16 )  /* (CAN) Baudrate Prescaler */
#define AT91C_CAN_SMP       ( ( unsigned int ) 0x1 << 24 )   /* (CAN) Sampling mode */
/* -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- */
#define AT91C_CAN_TIMER     ( ( unsigned int ) 0xFFFF << 0 ) /* (CAN) Timer field */
/* -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- */
/* -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- */
#define AT91C_CAN_REC       ( ( unsigned int ) 0xFF << 0 )  /* (CAN) Receive Error Counter */
#define AT91C_CAN_TEC       ( ( unsigned int ) 0xFF << 16 ) /* (CAN) Transmit Error Counter */
/* -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- */
#define AT91C_CAN_TIMRST    ( ( unsigned int ) 0x1 << 31 )  /* (CAN) Timer Reset Field */
/* -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Ethernet MAC 10/100 */
/* ***************************************************************************** */
typedef struct _AT91S_EMAC
{
    AT91_REG EMAC_NCR;        /* Network Control Register */
    AT91_REG EMAC_NCFGR;      /* Network Configuration Register */
    AT91_REG EMAC_NSR;        /* Network Status Register */
    AT91_REG Reserved0[ 2 ];  /* */
    AT91_REG EMAC_TSR;        /* Transmit Status Register */
    AT91_REG EMAC_RBQP;       /* Receive Buffer Queue Pointer */
    AT91_REG EMAC_TBQP;       /* Transmit Buffer Queue Pointer */
    AT91_REG EMAC_RSR;        /* Receive Status Register */
    AT91_REG EMAC_ISR;        /* Interrupt Status Register */
    AT91_REG EMAC_IER;        /* Interrupt Enable Register */
    AT91_REG EMAC_IDR;        /* Interrupt Disable Register */
    AT91_REG EMAC_IMR;        /* Interrupt Mask Register */
    AT91_REG EMAC_MAN;        /* PHY Maintenance Register */
    AT91_REG EMAC_PTR;        /* Pause Time Register */
    AT91_REG EMAC_PFR;        /* Pause Frames received Register */
    AT91_REG EMAC_FTO;        /* Frames Transmitted OK Register */
    AT91_REG EMAC_SCF;        /* Single Collision Frame Register */
    AT91_REG EMAC_MCF;        /* Multiple Collision Frame Register */
    AT91_REG EMAC_FRO;        /* Frames Received OK Register */
    AT91_REG EMAC_FCSE;       /* Frame Check Sequence Error Register */
    AT91_REG EMAC_ALE;        /* Alignment Error Register */
    AT91_REG EMAC_DTF;        /* Deferred Transmission Frame Register */
    AT91_REG EMAC_LCOL;       /* Late Collision Register */
    AT91_REG EMAC_ECOL;       /* Excessive Collision Register */
    AT91_REG EMAC_TUND;       /* Transmit Underrun Error Register */
    AT91_REG EMAC_CSE;        /* Carrier Sense Error Register */
    AT91_REG EMAC_RRE;        /* Receive Ressource Error Register */
    AT91_REG EMAC_ROV;        /* Receive Overrun Errors Register */
    AT91_REG EMAC_RSE;        /* Receive Symbol Errors Register */
    AT91_REG EMAC_ELE;        /* Excessive Length Errors Register */
    AT91_REG EMAC_RJA;        /* Receive Jabbers Register */
    AT91_REG EMAC_USF;        /* Undersize Frames Register */
    AT91_REG EMAC_STE;        /* SQE Test Error Register */
    AT91_REG EMAC_RLE;        /* Receive Length Field Mismatch Register */
    AT91_REG EMAC_TPF;        /* Transmitted Pause Frames Register */
    AT91_REG EMAC_HRB;        /* Hash Address Bottom[31:0] */
    AT91_REG EMAC_HRT;        /* Hash Address Top[63:32] */
    AT91_REG EMAC_SA1L;       /* Specific Address 1 Bottom, First 4 bytes */
    AT91_REG EMAC_SA1H;       /* Specific Address 1 Top, Last 2 bytes */
    AT91_REG EMAC_SA2L;       /* Specific Address 2 Bottom, First 4 bytes */
    AT91_REG EMAC_SA2H;       /* Specific Address 2 Top, Last 2 bytes */
    AT91_REG EMAC_SA3L;       /* Specific Address 3 Bottom, First 4 bytes */
    AT91_REG EMAC_SA3H;       /* Specific Address 3 Top, Last 2 bytes */
    AT91_REG EMAC_SA4L;       /* Specific Address 4 Bottom, First 4 bytes */
    AT91_REG EMAC_SA4H;       /* Specific Address 4 Top, Last 2 bytes */
    AT91_REG EMAC_TID;        /* Type ID Checking Register */
    AT91_REG EMAC_TPQ;        /* Transmit Pause Quantum Register */
    AT91_REG EMAC_USRIO;      /* USER Input/Output Register */
    AT91_REG EMAC_WOL;        /* Wake On LAN Register */
    AT91_REG Reserved1[ 13 ]; /* */
    AT91_REG EMAC_REV;        /* Revision Register */
} AT91S_EMAC, * AT91PS_EMAC;

/* -------- EMAC_NCR : (EMAC Offset: 0x0)  -------- */
#define AT91C_EMAC_LB                   ( ( unsigned int ) 0x1 << 0 )  /* (EMAC) Loopback. Optional. When set, loopback signal is at high level. */
#define AT91C_EMAC_LLB                  ( ( unsigned int ) 0x1 << 1 )  /* (EMAC) Loopback local. */
#define AT91C_EMAC_RE                   ( ( unsigned int ) 0x1 << 2 )  /* (EMAC) Receive enable. */
#define AT91C_EMAC_TE                   ( ( unsigned int ) 0x1 << 3 )  /* (EMAC) Transmit enable. */
#define AT91C_EMAC_MPE                  ( ( unsigned int ) 0x1 << 4 )  /* (EMAC) Management port enable. */
#define AT91C_EMAC_CLRSTAT              ( ( unsigned int ) 0x1 << 5 )  /* (EMAC) Clear statistics registers. */
#define AT91C_EMAC_INCSTAT              ( ( unsigned int ) 0x1 << 6 )  /* (EMAC) Increment statistics registers. */
#define AT91C_EMAC_WESTAT               ( ( unsigned int ) 0x1 << 7 )  /* (EMAC) Write enable for statistics registers. */
#define AT91C_EMAC_BP                   ( ( unsigned int ) 0x1 << 8 )  /* (EMAC) Back pressure. */
#define AT91C_EMAC_TSTART               ( ( unsigned int ) 0x1 << 9 )  /* (EMAC) Start Transmission. */
#define AT91C_EMAC_THALT                ( ( unsigned int ) 0x1 << 10 ) /* (EMAC) Transmission Halt. */
#define AT91C_EMAC_TPFR                 ( ( unsigned int ) 0x1 << 11 ) /* (EMAC) Transmit pause frame */
#define AT91C_EMAC_TZQ                  ( ( unsigned int ) 0x1 << 12 ) /* (EMAC) Transmit zero quantum pause frame */
/* -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- */
#define AT91C_EMAC_SPD                  ( ( unsigned int ) 0x1 << 0 )  /* (EMAC) Speed. */
#define AT91C_EMAC_FD                   ( ( unsigned int ) 0x1 << 1 )  /* (EMAC) Full duplex. */
#define AT91C_EMAC_JFRAME               ( ( unsigned int ) 0x1 << 3 )  /* (EMAC) Jumbo Frames. */
#define AT91C_EMAC_CAF                  ( ( unsigned int ) 0x1 << 4 )  /* (EMAC) Copy all frames. */
#define AT91C_EMAC_NBC                  ( ( unsigned int ) 0x1 << 5 )  /* (EMAC) No broadcast. */
#define AT91C_EMAC_MTI                  ( ( unsigned int ) 0x1 << 6 )  /* (EMAC) Multicast hash event enable */
#define AT91C_EMAC_UNI                  ( ( unsigned int ) 0x1 << 7 )  /* (EMAC) Unicast hash enable. */
#define AT91C_EMAC_BIG                  ( ( unsigned int ) 0x1 << 8 )  /* (EMAC) Receive 1522 bytes. */
#define AT91C_EMAC_EAE                  ( ( unsigned int ) 0x1 << 9 )  /* (EMAC) External address match enable. */
#define AT91C_EMAC_CLK                  ( ( unsigned int ) 0x3 << 10 ) /* (EMAC) */
#define     AT91C_EMAC_CLK_HCLK_8       ( ( unsigned int ) 0x0 << 10 ) /* (EMAC) HCLK divided by 8 */
#define     AT91C_EMAC_CLK_HCLK_16      ( ( unsigned int ) 0x1 << 10 ) /* (EMAC) HCLK divided by 16 */
#define     AT91C_EMAC_CLK_HCLK_32      ( ( unsigned int ) 0x2 << 10 ) /* (EMAC) HCLK divided by 32 */
#define     AT91C_EMAC_CLK_HCLK_64      ( ( unsigned int ) 0x3 << 10 ) /* (EMAC) HCLK divided by 64 */
#define AT91C_EMAC_RTY                  ( ( unsigned int ) 0x1 << 12 ) /* (EMAC) */
#define AT91C_EMAC_PAE                  ( ( unsigned int ) 0x1 << 13 ) /* (EMAC) */
#define AT91C_EMAC_RBOF                 ( ( unsigned int ) 0x3 << 14 ) /* (EMAC) */
#define     AT91C_EMAC_RBOF_OFFSET_0    ( ( unsigned int ) 0x0 << 14 ) /* (EMAC) no offset from start of receive buffer */
#define     AT91C_EMAC_RBOF_OFFSET_1    ( ( unsigned int ) 0x1 << 14 ) /* (EMAC) one byte offset from start of receive buffer */
#define     AT91C_EMAC_RBOF_OFFSET_2    ( ( unsigned int ) 0x2 << 14 ) /* (EMAC) two bytes offset from start of receive buffer */
#define     AT91C_EMAC_RBOF_OFFSET_3    ( ( unsigned int ) 0x3 << 14 ) /* (EMAC) three bytes offset from start of receive buffer */
#define AT91C_EMAC_RLCE                 ( ( unsigned int ) 0x1 << 16 ) /* (EMAC) Receive Length field Checking Enable */
#define AT91C_EMAC_DRFCS                ( ( unsigned int ) 0x1 << 17 ) /* (EMAC) Discard Receive FCS */
#define AT91C_EMAC_EFRHD                ( ( unsigned int ) 0x1 << 18 ) /* (EMAC) */
#define AT91C_EMAC_IRXFCS               ( ( unsigned int ) 0x1 << 19 ) /* (EMAC) Ignore RX FCS */
/* -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- */
#define AT91C_EMAC_LINKR                ( ( unsigned int ) 0x1 << 0 )  /* (EMAC) */
#define AT91C_EMAC_MDIO                 ( ( unsigned int ) 0x1 << 1 )  /* (EMAC) */
#define AT91C_EMAC_IDLE                 ( ( unsigned int ) 0x1 << 2 )  /* (EMAC) */
/* -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- */
#define AT91C_EMAC_UBR                  ( ( unsigned int ) 0x1 << 0 )  /* (EMAC) */
#define AT91C_EMAC_COL                  ( ( unsigned int ) 0x1 << 1 )  /* (EMAC) */
#define AT91C_EMAC_RLES                 ( ( unsigned int ) 0x1 << 2 )  /* (EMAC) */
#define AT91C_EMAC_TGO                  ( ( unsigned int ) 0x1 << 3 )  /* (EMAC) Transmit Go */
#define AT91C_EMAC_BEX                  ( ( unsigned int ) 0x1 << 4 )  /* (EMAC) Buffers exhausted mid frame */
#define AT91C_EMAC_COMP                 ( ( unsigned int ) 0x1 << 5 )  /* (EMAC) */
#define AT91C_EMAC_UND                  ( ( unsigned int ) 0x1 << 6 )  /* (EMAC) */
/* -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- */
#define AT91C_EMAC_BNA                  ( ( unsigned int ) 0x1 << 0 )  /* (EMAC) */
#define AT91C_EMAC_REC                  ( ( unsigned int ) 0x1 << 1 )  /* (EMAC) */
#define AT91C_EMAC_OVR                  ( ( unsigned int ) 0x1 << 2 )  /* (EMAC) */
/* -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- */
#define AT91C_EMAC_MFD                  ( ( unsigned int ) 0x1 << 0 )  /* (EMAC) */
#define AT91C_EMAC_RCOMP                ( ( unsigned int ) 0x1 << 1 )  /* (EMAC) */
#define AT91C_EMAC_RXUBR                ( ( unsigned int ) 0x1 << 2 )  /* (EMAC) */
#define AT91C_EMAC_TXUBR                ( ( unsigned int ) 0x1 << 3 )  /* (EMAC) */
#define AT91C_EMAC_TUNDR                ( ( unsigned int ) 0x1 << 4 )  /* (EMAC) */
#define AT91C_EMAC_RLEX                 ( ( unsigned int ) 0x1 << 5 )  /* (EMAC) */
#define AT91C_EMAC_TXERR                ( ( unsigned int ) 0x1 << 6 )  /* (EMAC) */
#define AT91C_EMAC_TCOMP                ( ( unsigned int ) 0x1 << 7 )  /* (EMAC) */
#define AT91C_EMAC_LINK                 ( ( unsigned int ) 0x1 << 9 )  /* (EMAC) */
#define AT91C_EMAC_ROVR                 ( ( unsigned int ) 0x1 << 10 ) /* (EMAC) */
#define AT91C_EMAC_HRESP                ( ( unsigned int ) 0x1 << 11 ) /* (EMAC) */
#define AT91C_EMAC_PFRE                 ( ( unsigned int ) 0x1 << 12 ) /* (EMAC) */
#define AT91C_EMAC_PTZ                  ( ( unsigned int ) 0x1 << 13 ) /* (EMAC) */
/* -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- */
/* -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- */
/* -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- */
/* -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- */
#define AT91C_EMAC_DATA       ( ( unsigned int ) 0xFFFF << 0 )  /* (EMAC) */
#define AT91C_EMAC_CODE       ( ( unsigned int ) 0x3 << 16 )    /* (EMAC) */
#define AT91C_EMAC_REGA       ( ( unsigned int ) 0x1F << 18 )   /* (EMAC) */
#define AT91C_EMAC_PHYA       ( ( unsigned int ) 0x1F << 23 )   /* (EMAC) */
#define AT91C_EMAC_RW         ( ( unsigned int ) 0x3 << 28 )    /* (EMAC) */
#define AT91C_EMAC_SOF        ( ( unsigned int ) 0x3 << 30 )    /* (EMAC) */
/* -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- */
#define AT91C_EMAC_RMII       ( ( unsigned int ) 0x1 << 0 )     /* (EMAC) Reduce MII */
/* -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- */
#define AT91C_EMAC_IP         ( ( unsigned int ) 0xFFFF << 0 )  /* (EMAC) ARP request IP address */
#define AT91C_EMAC_MAG        ( ( unsigned int ) 0x1 << 16 )    /* (EMAC) Magic packet event enable */
#define AT91C_EMAC_ARP        ( ( unsigned int ) 0x1 << 17 )    /* (EMAC) ARP request event enable */
#define AT91C_EMAC_SA1        ( ( unsigned int ) 0x1 << 18 )    /* (EMAC) Specific address register 1 event enable */
/* -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- */
#define AT91C_EMAC_REVREF     ( ( unsigned int ) 0xFFFF << 0 )  /* (EMAC) */
#define AT91C_EMAC_PARTREF    ( ( unsigned int ) 0xFFFF << 16 ) /* (EMAC) */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Analog to Digital Convertor */
/* ***************************************************************************** */
typedef struct _AT91S_ADC
{
    AT91_REG ADC_CR;          /* ADC Control Register */
    AT91_REG ADC_MR;          /* ADC Mode Register */
    AT91_REG Reserved0[ 2 ];  /* */
    AT91_REG ADC_CHER;        /* ADC Channel Enable Register */
    AT91_REG ADC_CHDR;        /* ADC Channel Disable Register */
    AT91_REG ADC_CHSR;        /* ADC Channel Status Register */
    AT91_REG ADC_SR;          /* ADC Status Register */
    AT91_REG ADC_LCDR;        /* ADC Last Converted Data Register */
    AT91_REG ADC_IER;         /* ADC Interrupt Enable Register */
    AT91_REG ADC_IDR;         /* ADC Interrupt Disable Register */
    AT91_REG ADC_IMR;         /* ADC Interrupt Mask Register */
    AT91_REG ADC_CDR0;        /* ADC Channel Data Register 0 */
    AT91_REG ADC_CDR1;        /* ADC Channel Data Register 1 */
    AT91_REG ADC_CDR2;        /* ADC Channel Data Register 2 */
    AT91_REG ADC_CDR3;        /* ADC Channel Data Register 3 */
    AT91_REG ADC_CDR4;        /* ADC Channel Data Register 4 */
    AT91_REG ADC_CDR5;        /* ADC Channel Data Register 5 */
    AT91_REG ADC_CDR6;        /* ADC Channel Data Register 6 */
    AT91_REG ADC_CDR7;        /* ADC Channel Data Register 7 */
    AT91_REG Reserved1[ 44 ]; /* */
    AT91_REG ADC_RPR;         /* Receive Pointer Register */
    AT91_REG ADC_RCR;         /* Receive Counter Register */
    AT91_REG ADC_TPR;         /* Transmit Pointer Register */
    AT91_REG ADC_TCR;         /* Transmit Counter Register */
    AT91_REG ADC_RNPR;        /* Receive Next Pointer Register */
    AT91_REG ADC_RNCR;        /* Receive Next Counter Register */
    AT91_REG ADC_TNPR;        /* Transmit Next Pointer Register */
    AT91_REG ADC_TNCR;        /* Transmit Next Counter Register */
    AT91_REG ADC_PTCR;        /* PDC Transfer Control Register */
    AT91_REG ADC_PTSR;        /* PDC Transfer Status Register */
} AT91S_ADC, * AT91PS_ADC;

/* -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- */
#define AT91C_ADC_SWRST                    ( ( unsigned int ) 0x1 << 0 )   /* (ADC) Software Reset */
#define AT91C_ADC_START                    ( ( unsigned int ) 0x1 << 1 )   /* (ADC) Start Conversion */
/* -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- */
#define AT91C_ADC_TRGEN                    ( ( unsigned int ) 0x1 << 0 )   /* (ADC) Trigger Enable */
#define     AT91C_ADC_TRGEN_DIS            ( ( unsigned int ) 0x0 )        /* (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software */
#define     AT91C_ADC_TRGEN_EN             ( ( unsigned int ) 0x1 )        /* (ADC) Hardware trigger selected by TRGSEL field is enabled. */
#define AT91C_ADC_TRGSEL                   ( ( unsigned int ) 0x7 << 1 )   /* (ADC) Trigger Selection */
#define     AT91C_ADC_TRGSEL_TIOA0         ( ( unsigned int ) 0x0 << 1 )   /* (ADC) Selected TRGSEL = TIAO0 */
#define     AT91C_ADC_TRGSEL_TIOA1         ( ( unsigned int ) 0x1 << 1 )   /* (ADC) Selected TRGSEL = TIAO1 */
#define     AT91C_ADC_TRGSEL_TIOA2         ( ( unsigned int ) 0x2 << 1 )   /* (ADC) Selected TRGSEL = TIAO2 */
#define     AT91C_ADC_TRGSEL_TIOA3         ( ( unsigned int ) 0x3 << 1 )   /* (ADC) Selected TRGSEL = TIAO3 */
#define     AT91C_ADC_TRGSEL_TIOA4         ( ( unsigned int ) 0x4 << 1 )   /* (ADC) Selected TRGSEL = TIAO4 */
#define     AT91C_ADC_TRGSEL_TIOA5         ( ( unsigned int ) 0x5 << 1 )   /* (ADC) Selected TRGSEL = TIAO5 */
#define     AT91C_ADC_TRGSEL_EXT           ( ( unsigned int ) 0x6 << 1 )   /* (ADC) Selected TRGSEL = External Trigger */
#define AT91C_ADC_LOWRES                   ( ( unsigned int ) 0x1 << 4 )   /* (ADC) Resolution. */
#define     AT91C_ADC_LOWRES_10_BIT        ( ( unsigned int ) 0x0 << 4 )   /* (ADC) 10-bit resolution */
#define     AT91C_ADC_LOWRES_8_BIT         ( ( unsigned int ) 0x1 << 4 )   /* (ADC) 8-bit resolution */
#define AT91C_ADC_SLEEP                    ( ( unsigned int ) 0x1 << 5 )   /* (ADC) Sleep Mode */
#define     AT91C_ADC_SLEEP_NORMAL_MODE    ( ( unsigned int ) 0x0 << 5 )   /* (ADC) Normal Mode */
#define     AT91C_ADC_SLEEP_MODE           ( ( unsigned int ) 0x1 << 5 )   /* (ADC) Sleep Mode */
#define AT91C_ADC_PRESCAL                  ( ( unsigned int ) 0x3F << 8 )  /* (ADC) Prescaler rate selection */
#define AT91C_ADC_STARTUP                  ( ( unsigned int ) 0x1F << 16 ) /* (ADC) Startup Time */
#define AT91C_ADC_SHTIM                    ( ( unsigned int ) 0xF << 24 )  /* (ADC) Sample & Hold Time */
/* --------     ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- */
#define AT91C_ADC_CH0                      ( ( unsigned int ) 0x1 << 0 )   /* (ADC) Channel 0 */
#define AT91C_ADC_CH1                      ( ( unsigned int ) 0x1 << 1 )   /* (ADC) Channel 1 */
#define AT91C_ADC_CH2                      ( ( unsigned int ) 0x1 << 2 )   /* (ADC) Channel 2 */
#define AT91C_ADC_CH3                      ( ( unsigned int ) 0x1 << 3 )   /* (ADC) Channel 3 */
#define AT91C_ADC_CH4                      ( ( unsigned int ) 0x1 << 4 )   /* (ADC) Channel 4 */
#define AT91C_ADC_CH5                      ( ( unsigned int ) 0x1 << 5 )   /* (ADC) Channel 5 */
#define AT91C_ADC_CH6                      ( ( unsigned int ) 0x1 << 6 )   /* (ADC) Channel 6 */
#define AT91C_ADC_CH7                      ( ( unsigned int ) 0x1 << 7 )   /* (ADC) Channel 7 */
/* --------     ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- */
/* --------     ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- */
/* -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- */
#define AT91C_ADC_EOC0      ( ( unsigned int ) 0x1 << 0 )   /* (ADC) End of Conversion */
#define AT91C_ADC_EOC1      ( ( unsigned int ) 0x1 << 1 )   /* (ADC) End of Conversion */
#define AT91C_ADC_EOC2      ( ( unsigned int ) 0x1 << 2 )   /* (ADC) End of Conversion */
#define AT91C_ADC_EOC3      ( ( unsigned int ) 0x1 << 3 )   /* (ADC) End of Conversion */
#define AT91C_ADC_EOC4      ( ( unsigned int ) 0x1 << 4 )   /* (ADC) End of Conversion */
#define AT91C_ADC_EOC5      ( ( unsigned int ) 0x1 << 5 )   /* (ADC) End of Conversion */
#define AT91C_ADC_EOC6      ( ( unsigned int ) 0x1 << 6 )   /* (ADC) End of Conversion */
#define AT91C_ADC_EOC7      ( ( unsigned int ) 0x1 << 7 )   /* (ADC) End of Conversion */
#define AT91C_ADC_OVRE0     ( ( unsigned int ) 0x1 << 8 )   /* (ADC) Overrun Error */
#define AT91C_ADC_OVRE1     ( ( unsigned int ) 0x1 << 9 )   /* (ADC) Overrun Error */
#define AT91C_ADC_OVRE2     ( ( unsigned int ) 0x1 << 10 )  /* (ADC) Overrun Error */
#define AT91C_ADC_OVRE3     ( ( unsigned int ) 0x1 << 11 )  /* (ADC) Overrun Error */
#define AT91C_ADC_OVRE4     ( ( unsigned int ) 0x1 << 12 )  /* (ADC) Overrun Error */
#define AT91C_ADC_OVRE5     ( ( unsigned int ) 0x1 << 13 )  /* (ADC) Overrun Error */
#define AT91C_ADC_OVRE6     ( ( unsigned int ) 0x1 << 14 )  /* (ADC) Overrun Error */
#define AT91C_ADC_OVRE7     ( ( unsigned int ) 0x1 << 15 )  /* (ADC) Overrun Error */
#define AT91C_ADC_DRDY      ( ( unsigned int ) 0x1 << 16 )  /* (ADC) Data Ready */
#define AT91C_ADC_GOVRE     ( ( unsigned int ) 0x1 << 17 )  /* (ADC) General Overrun */
#define AT91C_ADC_ENDRX     ( ( unsigned int ) 0x1 << 18 )  /* (ADC) End of Receiver Transfer */
#define AT91C_ADC_RXBUFF    ( ( unsigned int ) 0x1 << 19 )  /* (ADC) RXBUFF Interrupt */
/* -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- */
#define AT91C_ADC_LDATA     ( ( unsigned int ) 0x3FF << 0 ) /* (ADC) Last Data Converted */
/* -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- */
/* -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- */
/* -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- */
/* -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- */
#define AT91C_ADC_DATA    ( ( unsigned int ) 0x3FF << 0 )  /* (ADC) Converted Data */
/* -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- */
/* -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- */
/* -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- */
/* -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- */
/* -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- */
/* -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- */
/* -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Advanced  Encryption Standard */
/* ***************************************************************************** */
typedef struct _AT91S_AES
{
    AT91_REG AES_CR;           /* Control Register */
    AT91_REG AES_MR;           /* Mode Register */
    AT91_REG Reserved0[ 2 ];   /* */
    AT91_REG AES_IER;          /* Interrupt Enable Register */
    AT91_REG AES_IDR;          /* Interrupt Disable Register */
    AT91_REG AES_IMR;          /* Interrupt Mask Register */
    AT91_REG AES_ISR;          /* Interrupt Status Register */
    AT91_REG AES_KEYWxR[ 4 ];  /* Key Word x Register */
    AT91_REG Reserved1[ 4 ];   /* */
    AT91_REG AES_IDATAxR[ 4 ]; /* Input Data x Register */
    AT91_REG AES_ODATAxR[ 4 ]; /* Output Data x Register */
    AT91_REG AES_IVxR[ 4 ];    /* Initialization Vector x Register */
    AT91_REG Reserved2[ 35 ];  /* */
    AT91_REG AES_VR;           /* AES Version Register */
    AT91_REG AES_RPR;          /* Receive Pointer Register */
    AT91_REG AES_RCR;          /* Receive Counter Register */
    AT91_REG AES_TPR;          /* Transmit Pointer Register */
    AT91_REG AES_TCR;          /* Transmit Counter Register */
    AT91_REG AES_RNPR;         /* Receive Next Pointer Register */
    AT91_REG AES_RNCR;         /* Receive Next Counter Register */
    AT91_REG AES_TNPR;         /* Transmit Next Pointer Register */
    AT91_REG AES_TNCR;         /* Transmit Next Counter Register */
    AT91_REG AES_PTCR;         /* PDC Transfer Control Register */
    AT91_REG AES_PTSR;         /* PDC Transfer Status Register */
} AT91S_AES, * AT91PS_AES;

/* -------- AES_CR : (AES Offset: 0x0) Control Register -------- */
#define AT91C_AES_START                 ( ( unsigned int ) 0x1 << 0 )   /* (AES) Starts Processing */
#define AT91C_AES_SWRST                 ( ( unsigned int ) 0x1 << 8 )   /* (AES) Software Reset */
#define AT91C_AES_LOADSEED              ( ( unsigned int ) 0x1 << 16 )  /* (AES) Random Number Generator Seed Loading */
/* -------- AES_MR : (AES Offset: 0x4) Mode Register -------- */
#define AT91C_AES_CIPHER                ( ( unsigned int ) 0x1 << 0 )   /* (AES) Processing Mode */
#define AT91C_AES_PROCDLY               ( ( unsigned int ) 0xF << 4 )   /* (AES) Processing Delay */
#define AT91C_AES_SMOD                  ( ( unsigned int ) 0x3 << 8 )   /* (AES) Start Mode */
#define     AT91C_AES_SMOD_MANUAL       ( ( unsigned int ) 0x0 << 8 )   /* (AES) Manual Mode: The START bit in register AES_CR must be set to begin encryption or decryption. */
#define     AT91C_AES_SMOD_AUTO         ( ( unsigned int ) 0x1 << 8 )   /* (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet). */
#define     AT91C_AES_SMOD_PDC          ( ( unsigned int ) 0x2 << 8 )   /* (AES) PDC Mode (cf datasheet). */
#define AT91C_AES_OPMOD                 ( ( unsigned int ) 0x7 << 12 )  /* (AES) Operation Mode */
#define     AT91C_AES_OPMOD_ECB         ( ( unsigned int ) 0x0 << 12 )  /* (AES) ECB Electronic CodeBook mode. */
#define     AT91C_AES_OPMOD_CBC         ( ( unsigned int ) 0x1 << 12 )  /* (AES) CBC Cipher Block Chaining mode. */
#define     AT91C_AES_OPMOD_OFB         ( ( unsigned int ) 0x2 << 12 )  /* (AES) OFB Output Feedback mode. */
#define     AT91C_AES_OPMOD_CFB         ( ( unsigned int ) 0x3 << 12 )  /* (AES) CFB Cipher Feedback mode. */
#define     AT91C_AES_OPMOD_CTR         ( ( unsigned int ) 0x4 << 12 )  /* (AES) CTR Counter mode. */
#define AT91C_AES_LOD                   ( ( unsigned int ) 0x1 << 15 )  /* (AES) Last Output Data Mode */
#define AT91C_AES_CFBS                  ( ( unsigned int ) 0x7 << 16 )  /* (AES) Cipher Feedback Data Size */
#define     AT91C_AES_CFBS_128_BIT      ( ( unsigned int ) 0x0 << 16 )  /* (AES) 128-bit. */
#define     AT91C_AES_CFBS_64_BIT       ( ( unsigned int ) 0x1 << 16 )  /* (AES) 64-bit. */
#define     AT91C_AES_CFBS_32_BIT       ( ( unsigned int ) 0x2 << 16 )  /* (AES) 32-bit. */
#define     AT91C_AES_CFBS_16_BIT       ( ( unsigned int ) 0x3 << 16 )  /* (AES) 16-bit. */
#define     AT91C_AES_CFBS_8_BIT        ( ( unsigned int ) 0x4 << 16 )  /* (AES) 8-bit. */
#define AT91C_AES_CKEY                  ( ( unsigned int ) 0xF << 20 )  /* (AES) Countermeasure Key */
#define AT91C_AES_CTYPE                 ( ( unsigned int ) 0x1F << 24 ) /* (AES) Countermeasure Type */
#define     AT91C_AES_CTYPE_TYPE1_EN    ( ( unsigned int ) 0x1 << 24 )  /* (AES) Countermeasure type 1 is enabled. */
#define     AT91C_AES_CTYPE_TYPE2_EN    ( ( unsigned int ) 0x2 << 24 )  /* (AES) Countermeasure type 2 is enabled. */
#define     AT91C_AES_CTYPE_TYPE3_EN    ( ( unsigned int ) 0x4 << 24 )  /* (AES) Countermeasure type 3 is enabled. */
#define     AT91C_AES_CTYPE_TYPE4_EN    ( ( unsigned int ) 0x8 << 24 )  /* (AES) Countermeasure type 4 is enabled. */
#define     AT91C_AES_CTYPE_TYPE5_EN    ( ( unsigned int ) 0x10 << 24 ) /* (AES) Countermeasure type 5 is enabled. */
/* -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- */
#define AT91C_AES_DATRDY                ( ( unsigned int ) 0x1 << 0 )   /* (AES) DATRDY */
#define AT91C_AES_ENDRX                 ( ( unsigned int ) 0x1 << 1 )   /* (AES) PDC Read Buffer End */
#define AT91C_AES_ENDTX                 ( ( unsigned int ) 0x1 << 2 )   /* (AES) PDC Write Buffer End */
#define AT91C_AES_RXBUFF                ( ( unsigned int ) 0x1 << 3 )   /* (AES) PDC Read Buffer Full */
#define AT91C_AES_TXBUFE                ( ( unsigned int ) 0x1 << 4 )   /* (AES) PDC Write Buffer Empty */
#define AT91C_AES_URAD                  ( ( unsigned int ) 0x1 << 8 )   /* (AES) Unspecified Register Access Detection */
/* -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- */
/* -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- */
/* -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- */
#define AT91C_AES_URAT                              ( ( unsigned int ) 0x7 << 12 ) /* (AES) Unspecified Register Access Type Status */
#define     AT91C_AES_URAT_IN_DAT_WRITE_DATPROC     ( ( unsigned int ) 0x0 << 12 ) /* (AES) Input data register written during the data processing in PDC mode. */
#define     AT91C_AES_URAT_OUT_DAT_READ_DATPROC     ( ( unsigned int ) 0x1 << 12 ) /* (AES) Output data register read during the data processing. */
#define     AT91C_AES_URAT_MODEREG_WRITE_DATPROC    ( ( unsigned int ) 0x2 << 12 ) /* (AES) Mode register written during the data processing. */
#define     AT91C_AES_URAT_OUT_DAT_READ_SUBKEY      ( ( unsigned int ) 0x3 << 12 ) /* (AES) Output data register read during the sub-keys generation. */
#define     AT91C_AES_URAT_MODEREG_WRITE_SUBKEY     ( ( unsigned int ) 0x4 << 12 ) /* (AES) Mode register written during the sub-keys generation. */
#define     AT91C_AES_URAT_WO_REG_READ              ( ( unsigned int ) 0x5 << 12 ) /* (AES) Write-only register read access. */

/* ***************************************************************************** */
/*              SOFTWARE API DEFINITION  FOR Triple Data Encryption Standard */
/* ***************************************************************************** */
typedef struct _AT91S_TDES
{
    AT91_REG TDES_CR;           /* Control Register */
    AT91_REG TDES_MR;           /* Mode Register */
    AT91_REG Reserved0[ 2 ];    /* */
    AT91_REG TDES_IER;          /* Interrupt Enable Register */
    AT91_REG TDES_IDR;          /* Interrupt Disable Register */
    AT91_REG TDES_IMR;          /* Interrupt Mask Register */
    AT91_REG TDES_ISR;          /* Interrupt Status Register */
    AT91_REG TDES_KEY1WxR[ 2 ]; /* Key 1 Word x Register */
    AT91_REG TDES_KEY2WxR[ 2 ]; /* Key 2 Word x Register */
    AT91_REG TDES_KEY3WxR[ 2 ]; /* Key 3 Word x Register */
    AT91_REG Reserved1[ 2 ];    /* */
    AT91_REG TDES_IDATAxR[ 2 ]; /* Input Data x Register */
    AT91_REG Reserved2[ 2 ];    /* */
    AT91_REG TDES_ODATAxR[ 2 ]; /* Output Data x Register */
    AT91_REG Reserved3[ 2 ];    /* */
    AT91_REG TDES_IVxR[ 2 ];    /* Initialization Vector x Register */
    AT91_REG Reserved4[ 37 ];   /* */
    AT91_REG TDES_VR;           /* TDES Version Register */
    AT91_REG TDES_RPR;          /* Receive Pointer Register */
    AT91_REG TDES_RCR;          /* Receive Counter Register */
    AT91_REG TDES_TPR;          /* Transmit Pointer Register */
    AT91_REG TDES_TCR;          /* Transmit Counter Register */
    AT91_REG TDES_RNPR;         /* Receive Next Pointer Register */
    AT91_REG TDES_RNCR;         /* Receive Next Counter Register */
    AT91_REG TDES_TNPR;         /* Transmit Next Pointer Register */
    AT91_REG TDES_TNCR;         /* Transmit Next Counter Register */
    AT91_REG TDES_PTCR;         /* PDC Transfer Control Register */
    AT91_REG TDES_PTSR;         /* PDC Transfer Status Register */
} AT91S_TDES, * AT91PS_TDES;

/* -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- */
#define AT91C_TDES_START              ( ( unsigned int ) 0x1 << 0 )  /* (TDES) Starts Processing */
#define AT91C_TDES_SWRST              ( ( unsigned int ) 0x1 << 8 )  /* (TDES) Software Reset */
/* -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- */
#define AT91C_TDES_CIPHER             ( ( unsigned int ) 0x1 << 0 )  /* (TDES) Processing Mode */
#define AT91C_TDES_TDESMOD            ( ( unsigned int ) 0x1 << 1 )  /* (TDES) Single or Triple DES Mode */
#define AT91C_TDES_KEYMOD             ( ( unsigned int ) 0x1 << 4 )  /* (TDES) Key Mode */
#define AT91C_TDES_SMOD               ( ( unsigned int ) 0x3 << 8 )  /* (TDES) Start Mode */
#define     AT91C_TDES_SMOD_MANUAL    ( ( unsigned int ) 0x0 << 8 )  /* (TDES) Manual Mode: The START bit in register TDES_CR must be set to begin encryption or decryption. */
#define     AT91C_TDES_SMOD_AUTO      ( ( unsigned int ) 0x1 << 8 )  /* (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet). */
#define     AT91C_TDES_SMOD_PDC       ( ( unsigned int ) 0x2 << 8 )  /* (TDES) PDC Mode (cf datasheet). */
#define AT91C_TDES_OPMOD              ( ( unsigned int ) 0x3 << 12 ) /* (TDES) Operation Mode */
#define     AT91C_TDES_OPMOD_ECB      ( ( unsigned int ) 0x0 << 12 ) /* (TDES) ECB Electronic CodeBook mode. */
#define     AT91C_TDES_OPMOD_CBC      ( ( unsigned int ) 0x1 << 12 ) /* (TDES) CBC Cipher Block Chaining mode. */
#define     AT91C_TDES_OPMOD_OFB      ( ( unsigned int ) 0x2 << 12 ) /* (TDES) OFB Output Feedback mode. */
#define     AT91C_TDES_OPMOD_CFB      ( ( unsigned int ) 0x3 << 12 ) /* (TDES) CFB Cipher Feedback mode. */
#define AT91C_TDES_LOD                ( ( unsigned int ) 0x1 << 15 ) /* (TDES) Last Output Data Mode */
#define AT91C_TDES_CFBS               ( ( unsigned int ) 0x3 << 16 ) /* (TDES) Cipher Feedback Data Size */
#define     AT91C_TDES_CFBS_64_BIT    ( ( unsigned int ) 0x0 << 16 ) /* (TDES) 64-bit. */
#define     AT91C_TDES_CFBS_32_BIT    ( ( unsigned int ) 0x1 << 16 ) /* (TDES) 32-bit. */
#define     AT91C_TDES_CFBS_16_BIT    ( ( unsigned int ) 0x2 << 16 ) /* (TDES) 16-bit. */
#define     AT91C_TDES_CFBS_8_BIT     ( ( unsigned int ) 0x3 << 16 ) /* (TDES) 8-bit. */
/* -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- */
#define AT91C_TDES_DATRDY             ( ( unsigned int ) 0x1 << 0 )  /* (TDES) DATRDY */
#define AT91C_TDES_ENDRX              ( ( unsigned int ) 0x1 << 1 )  /* (TDES) PDC Read Buffer End */
#define AT91C_TDES_ENDTX              ( ( unsigned int ) 0x1 << 2 )  /* (TDES) PDC Write Buffer End */
#define AT91C_TDES_RXBUFF             ( ( unsigned int ) 0x1 << 3 )  /* (TDES) PDC Read Buffer Full */
#define AT91C_TDES_TXBUFE             ( ( unsigned int ) 0x1 << 4 )  /* (TDES) PDC Write Buffer Empty */
#define AT91C_TDES_URAD               ( ( unsigned int ) 0x1 << 8 )  /* (TDES) Unspecified Register Access Detection */
/* -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- */
/* -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- */
/* -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- */
#define AT91C_TDES_URAT                              ( ( unsigned int ) 0x3 << 12 ) /* (TDES) Unspecified Register Access Type Status */
#define     AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC     ( ( unsigned int ) 0x0 << 12 ) /* (TDES) Input data register written during the data processing in PDC mode. */
#define     AT91C_TDES_URAT_OUT_DAT_READ_DATPROC     ( ( unsigned int ) 0x1 << 12 ) /* (TDES) Output data register read during the data processing. */
#define     AT91C_TDES_URAT_MODEREG_WRITE_DATPROC    ( ( unsigned int ) 0x2 << 12 ) /* (TDES) Mode register written during the data processing. */
#define     AT91C_TDES_URAT_WO_REG_READ              ( ( unsigned int ) 0x3 << 12 ) /* (TDES) Write-only register read access. */

/* ***************************************************************************** */
/*               REGISTER ADDRESS DEFINITION FOR AT91SAM7X256 */
/* ***************************************************************************** */
/* ========== Register definition for SYS peripheral ========== */
/* ========== Register definition for AIC peripheral ========== */
#define AT91C_AIC_IVR              ( ( AT91_REG * ) 0xFFFFF100 ) /* (AIC) IRQ Vector Register */
#define AT91C_AIC_SMR              ( ( AT91_REG * ) 0xFFFFF000 ) /* (AIC) Source Mode Register */
#define AT91C_AIC_FVR              ( ( AT91_REG * ) 0xFFFFF104 ) /* (AIC) FIQ Vector Register */
#define AT91C_AIC_DCR              ( ( AT91_REG * ) 0xFFFFF138 ) /* (AIC) Debug Control Register (Protect) */
#define AT91C_AIC_EOICR            ( ( AT91_REG * ) 0xFFFFF130 ) /* (AIC) End of Interrupt Command Register */
#define AT91C_AIC_SVR              ( ( AT91_REG * ) 0xFFFFF080 ) /* (AIC) Source Vector Register */
#define AT91C_AIC_FFSR             ( ( AT91_REG * ) 0xFFFFF148 ) /* (AIC) Fast Forcing Status Register */
#define AT91C_AIC_ICCR             ( ( AT91_REG * ) 0xFFFFF128 ) /* (AIC) Interrupt Clear Command Register */
#define AT91C_AIC_ISR              ( ( AT91_REG * ) 0xFFFFF108 ) /* (AIC) Interrupt Status Register */
#define AT91C_AIC_IMR              ( ( AT91_REG * ) 0xFFFFF110 ) /* (AIC) Interrupt Mask Register */
#define AT91C_AIC_IPR              ( ( AT91_REG * ) 0xFFFFF10C ) /* (AIC) Interrupt Pending Register */
#define AT91C_AIC_FFER             ( ( AT91_REG * ) 0xFFFFF140 ) /* (AIC) Fast Forcing Enable Register */
#define AT91C_AIC_IECR             ( ( AT91_REG * ) 0xFFFFF120 ) /* (AIC) Interrupt Enable Command Register */
#define AT91C_AIC_ISCR             ( ( AT91_REG * ) 0xFFFFF12C ) /* (AIC) Interrupt Set Command Register */
#define AT91C_AIC_FFDR             ( ( AT91_REG * ) 0xFFFFF144 ) /* (AIC) Fast Forcing Disable Register */
#define AT91C_AIC_CISR             ( ( AT91_REG * ) 0xFFFFF114 ) /* (AIC) Core Interrupt Status Register */
#define AT91C_AIC_IDCR             ( ( AT91_REG * ) 0xFFFFF124 ) /* (AIC) Interrupt Disable Command Register */
#define AT91C_AIC_SPU              ( ( AT91_REG * ) 0xFFFFF134 ) /* (AIC) Spurious Vector Register */
/* ========== Register definition for PDC_DBGU peripheral ========== */
#define AT91C_DBGU_TCR             ( ( AT91_REG * ) 0xFFFFF30C ) /* (PDC_DBGU) Transmit Counter Register */
#define AT91C_DBGU_RNPR            ( ( AT91_REG * ) 0xFFFFF310 ) /* (PDC_DBGU) Receive Next Pointer Register */
#define AT91C_DBGU_TNPR            ( ( AT91_REG * ) 0xFFFFF318 ) /* (PDC_DBGU) Transmit Next Pointer Register */
#define AT91C_DBGU_TPR             ( ( AT91_REG * ) 0xFFFFF308 ) /* (PDC_DBGU) Transmit Pointer Register */
#define AT91C_DBGU_RPR             ( ( AT91_REG * ) 0xFFFFF300 ) /* (PDC_DBGU) Receive Pointer Register */
#define AT91C_DBGU_RCR             ( ( AT91_REG * ) 0xFFFFF304 ) /* (PDC_DBGU) Receive Counter Register */
#define AT91C_DBGU_RNCR            ( ( AT91_REG * ) 0xFFFFF314 ) /* (PDC_DBGU) Receive Next Counter Register */
#define AT91C_DBGU_PTCR            ( ( AT91_REG * ) 0xFFFFF320 ) /* (PDC_DBGU) PDC Transfer Control Register */
#define AT91C_DBGU_PTSR            ( ( AT91_REG * ) 0xFFFFF324 ) /* (PDC_DBGU) PDC Transfer Status Register */
#define AT91C_DBGU_TNCR            ( ( AT91_REG * ) 0xFFFFF31C ) /* (PDC_DBGU) Transmit Next Counter Register */
/* ========== Register definition for DBGU peripheral ========== */
#define AT91C_DBGU_EXID            ( ( AT91_REG * ) 0xFFFFF244 ) /* (DBGU) Chip ID Extension Register */
#define AT91C_DBGU_BRGR            ( ( AT91_REG * ) 0xFFFFF220 ) /* (DBGU) Baud Rate Generator Register */
#define AT91C_DBGU_IDR             ( ( AT91_REG * ) 0xFFFFF20C ) /* (DBGU) Interrupt Disable Register */
#define AT91C_DBGU_CSR             ( ( AT91_REG * ) 0xFFFFF214 ) /* (DBGU) Channel Status Register */
#define AT91C_DBGU_CIDR            ( ( AT91_REG * ) 0xFFFFF240 ) /* (DBGU) Chip ID Register */
#define AT91C_DBGU_MR              ( ( AT91_REG * ) 0xFFFFF204 ) /* (DBGU) Mode Register */
#define AT91C_DBGU_IMR             ( ( AT91_REG * ) 0xFFFFF210 ) /* (DBGU) Interrupt Mask Register */
#define AT91C_DBGU_CR              ( ( AT91_REG * ) 0xFFFFF200 ) /* (DBGU) Control Register */
#define AT91C_DBGU_FNTR            ( ( AT91_REG * ) 0xFFFFF248 ) /* (DBGU) Force NTRST Register */
#define AT91C_DBGU_THR             ( ( AT91_REG * ) 0xFFFFF21C ) /* (DBGU) Transmitter Holding Register */
#define AT91C_DBGU_RHR             ( ( AT91_REG * ) 0xFFFFF218 ) /* (DBGU) Receiver Holding Register */
#define AT91C_DBGU_IER             ( ( AT91_REG * ) 0xFFFFF208 ) /* (DBGU) Interrupt Enable Register */
/* ========== Register definition for PIOA peripheral ========== */
#define AT91C_PIOA_ODR             ( ( AT91_REG * ) 0xFFFFF414 ) /* (PIOA) Output Disable Registerr */
#define AT91C_PIOA_SODR            ( ( AT91_REG * ) 0xFFFFF430 ) /* (PIOA) Set Output Data Register */
#define AT91C_PIOA_ISR             ( ( AT91_REG * ) 0xFFFFF44C ) /* (PIOA) Interrupt Status Register */
#define AT91C_PIOA_ABSR            ( ( AT91_REG * ) 0xFFFFF478 ) /* (PIOA) AB Select Status Register */
#define AT91C_PIOA_IER             ( ( AT91_REG * ) 0xFFFFF440 ) /* (PIOA) Interrupt Enable Register */
#define AT91C_PIOA_PPUDR           ( ( AT91_REG * ) 0xFFFFF460 ) /* (PIOA) Pull-up Disable Register */
#define AT91C_PIOA_IMR             ( ( AT91_REG * ) 0xFFFFF448 ) /* (PIOA) Interrupt Mask Register */
#define AT91C_PIOA_PER             ( ( AT91_REG * ) 0xFFFFF400 ) /* (PIOA) PIO Enable Register */
#define AT91C_PIOA_IFDR            ( ( AT91_REG * ) 0xFFFFF424 ) /* (PIOA) Input Filter Disable Register */
#define AT91C_PIOA_OWDR            ( ( AT91_REG * ) 0xFFFFF4A4 ) /* (PIOA) Output Write Disable Register */
#define AT91C_PIOA_MDSR            ( ( AT91_REG * ) 0xFFFFF458 ) /* (PIOA) Multi-driver Status Register */
#define AT91C_PIOA_IDR             ( ( AT91_REG * ) 0xFFFFF444 ) /* (PIOA) Interrupt Disable Register */
#define AT91C_PIOA_ODSR            ( ( AT91_REG * ) 0xFFFFF438 ) /* (PIOA) Output Data Status Register */
#define AT91C_PIOA_PPUSR           ( ( AT91_REG * ) 0xFFFFF468 ) /* (PIOA) Pull-up Status Register */
#define AT91C_PIOA_OWSR            ( ( AT91_REG * ) 0xFFFFF4A8 ) /* (PIOA) Output Write Status Register */
#define AT91C_PIOA_BSR             ( ( AT91_REG * ) 0xFFFFF474 ) /* (PIOA) Select B Register */
#define AT91C_PIOA_OWER            ( ( AT91_REG * ) 0xFFFFF4A0 ) /* (PIOA) Output Write Enable Register */
#define AT91C_PIOA_IFER            ( ( AT91_REG * ) 0xFFFFF420 ) /* (PIOA) Input Filter Enable Register */
#define AT91C_PIOA_PDSR            ( ( AT91_REG * ) 0xFFFFF43C ) /* (PIOA) Pin Data Status Register */
#define AT91C_PIOA_PPUER           ( ( AT91_REG * ) 0xFFFFF464 ) /* (PIOA) Pull-up Enable Register */
#define AT91C_PIOA_OSR             ( ( AT91_REG * ) 0xFFFFF418 ) /* (PIOA) Output Status Register */
#define AT91C_PIOA_ASR             ( ( AT91_REG * ) 0xFFFFF470 ) /* (PIOA) Select A Register */
#define AT91C_PIOA_MDDR            ( ( AT91_REG * ) 0xFFFFF454 ) /* (PIOA) Multi-driver Disable Register */
#define AT91C_PIOA_CODR            ( ( AT91_REG * ) 0xFFFFF434 ) /* (PIOA) Clear Output Data Register */
#define AT91C_PIOA_MDER            ( ( AT91_REG * ) 0xFFFFF450 ) /* (PIOA) Multi-driver Enable Register */
#define AT91C_PIOA_PDR             ( ( AT91_REG * ) 0xFFFFF404 ) /* (PIOA) PIO Disable Register */
#define AT91C_PIOA_IFSR            ( ( AT91_REG * ) 0xFFFFF428 ) /* (PIOA) Input Filter Status Register */
#define AT91C_PIOA_OER             ( ( AT91_REG * ) 0xFFFFF410 ) /* (PIOA) Output Enable Register */
#define AT91C_PIOA_PSR             ( ( AT91_REG * ) 0xFFFFF408 ) /* (PIOA) PIO Status Register */
/* ========== Register definition for PIOB peripheral ========== */
#define AT91C_PIOB_OWDR            ( ( AT91_REG * ) 0xFFFFF6A4 ) /* (PIOB) Output Write Disable Register */
#define AT91C_PIOB_MDER            ( ( AT91_REG * ) 0xFFFFF650 ) /* (PIOB) Multi-driver Enable Register */
#define AT91C_PIOB_PPUSR           ( ( AT91_REG * ) 0xFFFFF668 ) /* (PIOB) Pull-up Status Register */
#define AT91C_PIOB_IMR             ( ( AT91_REG * ) 0xFFFFF648 ) /* (PIOB) Interrupt Mask Register */
#define AT91C_PIOB_ASR             ( ( AT91_REG * ) 0xFFFFF670 ) /* (PIOB) Select A Register */
#define AT91C_PIOB_PPUDR           ( ( AT91_REG * ) 0xFFFFF660 ) /* (PIOB) Pull-up Disable Register */
#define AT91C_PIOB_PSR             ( ( AT91_REG * ) 0xFFFFF608 ) /* (PIOB) PIO Status Register */
#define AT91C_PIOB_IER             ( ( AT91_REG * ) 0xFFFFF640 ) /* (PIOB) Interrupt Enable Register */
#define AT91C_PIOB_CODR            ( ( AT91_REG * ) 0xFFFFF634 ) /* (PIOB) Clear Output Data Register */
#define AT91C_PIOB_OWER            ( ( AT91_REG * ) 0xFFFFF6A0 ) /* (PIOB) Output Write Enable Register */
#define AT91C_PIOB_ABSR            ( ( AT91_REG * ) 0xFFFFF678 ) /* (PIOB) AB Select Status Register */
#define AT91C_PIOB_IFDR            ( ( AT91_REG * ) 0xFFFFF624 ) /* (PIOB) Input Filter Disable Register */
#define AT91C_PIOB_PDSR            ( ( AT91_REG * ) 0xFFFFF63C ) /* (PIOB) Pin Data Status Register */
#define AT91C_PIOB_IDR             ( ( AT91_REG * ) 0xFFFFF644 ) /* (PIOB) Interrupt Disable Register */
#define AT91C_PIOB_OWSR            ( ( AT91_REG * ) 0xFFFFF6A8 ) /* (PIOB) Output Write Status Register */
#define AT91C_PIOB_PDR             ( ( AT91_REG * ) 0xFFFFF604 ) /* (PIOB) PIO Disable Register */
#define AT91C_PIOB_ODR             ( ( AT91_REG * ) 0xFFFFF614 ) /* (PIOB) Output Disable Registerr */
#define AT91C_PIOB_IFSR            ( ( AT91_REG * ) 0xFFFFF628 ) /* (PIOB) Input Filter Status Register */
#define AT91C_PIOB_PPUER           ( ( AT91_REG * ) 0xFFFFF664 ) /* (PIOB) Pull-up Enable Register */
#define AT91C_PIOB_SODR            ( ( AT91_REG * ) 0xFFFFF630 ) /* (PIOB) Set Output Data Register */
#define AT91C_PIOB_ISR             ( ( AT91_REG * ) 0xFFFFF64C ) /* (PIOB) Interrupt Status Register */
#define AT91C_PIOB_ODSR            ( ( AT91_REG * ) 0xFFFFF638 ) /* (PIOB) Output Data Status Register */
#define AT91C_PIOB_OSR             ( ( AT91_REG * ) 0xFFFFF618 ) /* (PIOB) Output Status Register */
#define AT91C_PIOB_MDSR            ( ( AT91_REG * ) 0xFFFFF658 ) /* (PIOB) Multi-driver Status Register */
#define AT91C_PIOB_IFER            ( ( AT91_REG * ) 0xFFFFF620 ) /* (PIOB) Input Filter Enable Register */
#define AT91C_PIOB_BSR             ( ( AT91_REG * ) 0xFFFFF674 ) /* (PIOB) Select B Register */
#define AT91C_PIOB_MDDR            ( ( AT91_REG * ) 0xFFFFF654 ) /* (PIOB) Multi-driver Disable Register */
#define AT91C_PIOB_OER             ( ( AT91_REG * ) 0xFFFFF610 ) /* (PIOB) Output Enable Register */
#define AT91C_PIOB_PER             ( ( AT91_REG * ) 0xFFFFF600 ) /* (PIOB) PIO Enable Register */
/* ========== Register definition for CKGR peripheral ========== */
#define AT91C_CKGR_MOR             ( ( AT91_REG * ) 0xFFFFFC20 ) /* (CKGR) Main Oscillator Register */
#define AT91C_CKGR_PLLR            ( ( AT91_REG * ) 0xFFFFFC2C ) /* (CKGR) PLL Register */
#define AT91C_CKGR_MCFR            ( ( AT91_REG * ) 0xFFFFFC24 ) /* (CKGR) Main Clock  Frequency Register */
/* ========== Register definition for PMC peripheral ========== */
#define AT91C_PMC_IDR              ( ( AT91_REG * ) 0xFFFFFC64 ) /* (PMC) Interrupt Disable Register */
#define AT91C_PMC_MOR              ( ( AT91_REG * ) 0xFFFFFC20 ) /* (PMC) Main Oscillator Register */
#define AT91C_PMC_PLLR             ( ( AT91_REG * ) 0xFFFFFC2C ) /* (PMC) PLL Register */
#define AT91C_PMC_PCER             ( ( AT91_REG * ) 0xFFFFFC10 ) /* (PMC) Peripheral Clock Enable Register */
#define AT91C_PMC_PCKR             ( ( AT91_REG * ) 0xFFFFFC40 ) /* (PMC) Programmable Clock Register */
#define AT91C_PMC_MCKR             ( ( AT91_REG * ) 0xFFFFFC30 ) /* (PMC) Master Clock Register */
#define AT91C_PMC_SCDR             ( ( AT91_REG * ) 0xFFFFFC04 ) /* (PMC) System Clock Disable Register */
#define AT91C_PMC_PCDR             ( ( AT91_REG * ) 0xFFFFFC14 ) /* (PMC) Peripheral Clock Disable Register */
#define AT91C_PMC_SCSR             ( ( AT91_REG * ) 0xFFFFFC08 ) /* (PMC) System Clock Status Register */
#define AT91C_PMC_PCSR             ( ( AT91_REG * ) 0xFFFFFC18 ) /* (PMC) Peripheral Clock Status Register */
#define AT91C_PMC_MCFR             ( ( AT91_REG * ) 0xFFFFFC24 ) /* (PMC) Main Clock  Frequency Register */
#define AT91C_PMC_SCER             ( ( AT91_REG * ) 0xFFFFFC00 ) /* (PMC) System Clock Enable Register */
#define AT91C_PMC_IMR              ( ( AT91_REG * ) 0xFFFFFC6C ) /* (PMC) Interrupt Mask Register */
#define AT91C_PMC_IER              ( ( AT91_REG * ) 0xFFFFFC60 ) /* (PMC) Interrupt Enable Register */
#define AT91C_PMC_SR               ( ( AT91_REG * ) 0xFFFFFC68 ) /* (PMC) Status Register */
/* ========== Register definition for RSTC peripheral ========== */
#define AT91C_RSTC_RCR             ( ( AT91_REG * ) 0xFFFFFD00 ) /* (RSTC) Reset Control Register */
#define AT91C_RSTC_RMR             ( ( AT91_REG * ) 0xFFFFFD08 ) /* (RSTC) Reset Mode Register */
#define AT91C_RSTC_RSR             ( ( AT91_REG * ) 0xFFFFFD04 ) /* (RSTC) Reset Status Register */
/* ========== Register definition for RTTC peripheral ========== */
#define AT91C_RTTC_RTSR            ( ( AT91_REG * ) 0xFFFFFD2C ) /* (RTTC) Real-time Status Register */
#define AT91C_RTTC_RTMR            ( ( AT91_REG * ) 0xFFFFFD20 ) /* (RTTC) Real-time Mode Register */
#define AT91C_RTTC_RTVR            ( ( AT91_REG * ) 0xFFFFFD28 ) /* (RTTC) Real-time Value Register */
#define AT91C_RTTC_RTAR            ( ( AT91_REG * ) 0xFFFFFD24 ) /* (RTTC) Real-time Alarm Register */
/* ========== Register definition for PITC peripheral ========== */
#define AT91C_PITC_PIVR            ( ( AT91_REG * ) 0xFFFFFD38 ) /* (PITC) Period Interval Value Register */
#define AT91C_PITC_PISR            ( ( AT91_REG * ) 0xFFFFFD34 ) /* (PITC) Period Interval Status Register */
#define AT91C_PITC_PIIR            ( ( AT91_REG * ) 0xFFFFFD3C ) /* (PITC) Period Interval Image Register */
#define AT91C_PITC_PIMR            ( ( AT91_REG * ) 0xFFFFFD30 ) /* (PITC) Period Interval Mode Register */
/* ========== Register definition for WDTC peripheral ========== */
#define AT91C_WDTC_WDCR            ( ( AT91_REG * ) 0xFFFFFD40 ) /* (WDTC) Watchdog Control Register */
#define AT91C_WDTC_WDSR            ( ( AT91_REG * ) 0xFFFFFD48 ) /* (WDTC) Watchdog Status Register */
#define AT91C_WDTC_WDMR            ( ( AT91_REG * ) 0xFFFFFD44 ) /* (WDTC) Watchdog Mode Register */
/* ========== Register definition for VREG peripheral ========== */
#define AT91C_VREG_MR              ( ( AT91_REG * ) 0xFFFFFD60 ) /* (VREG) Voltage Regulator Mode Register */
/* ========== Register definition for MC peripheral ========== */
#define AT91C_MC_ASR               ( ( AT91_REG * ) 0xFFFFFF04 ) /* (MC) MC Abort Status Register */
#define AT91C_MC_RCR               ( ( AT91_REG * ) 0xFFFFFF00 ) /* (MC) MC Remap Control Register */
#define AT91C_MC_FCR               ( ( AT91_REG * ) 0xFFFFFF64 ) /* (MC) MC Flash Command Register */
#define AT91C_MC_AASR              ( ( AT91_REG * ) 0xFFFFFF08 ) /* (MC) MC Abort Address Status Register */
#define AT91C_MC_FSR               ( ( AT91_REG * ) 0xFFFFFF68 ) /* (MC) MC Flash Status Register */
#define AT91C_MC_FMR               ( ( AT91_REG * ) 0xFFFFFF60 ) /* (MC) MC Flash Mode Register */
/* ========== Register definition for PDC_SPI1 peripheral ========== */
#define AT91C_SPI1_PTCR            ( ( AT91_REG * ) 0xFFFE4120 ) /* (PDC_SPI1) PDC Transfer Control Register */
#define AT91C_SPI1_RPR             ( ( AT91_REG * ) 0xFFFE4100 ) /* (PDC_SPI1) Receive Pointer Register */
#define AT91C_SPI1_TNCR            ( ( AT91_REG * ) 0xFFFE411C ) /* (PDC_SPI1) Transmit Next Counter Register */
#define AT91C_SPI1_TPR             ( ( AT91_REG * ) 0xFFFE4108 ) /* (PDC_SPI1) Transmit Pointer Register */
#define AT91C_SPI1_TNPR            ( ( AT91_REG * ) 0xFFFE4118 ) /* (PDC_SPI1) Transmit Next Pointer Register */
#define AT91C_SPI1_TCR             ( ( AT91_REG * ) 0xFFFE410C ) /* (PDC_SPI1) Transmit Counter Register */
#define AT91C_SPI1_RCR             ( ( AT91_REG * ) 0xFFFE4104 ) /* (PDC_SPI1) Receive Counter Register */
#define AT91C_SPI1_RNPR            ( ( AT91_REG * ) 0xFFFE4110 ) /* (PDC_SPI1) Receive Next Pointer Register */
#define AT91C_SPI1_RNCR            ( ( AT91_REG * ) 0xFFFE4114 ) /* (PDC_SPI1) Receive Next Counter Register */
#define AT91C_SPI1_PTSR            ( ( AT91_REG * ) 0xFFFE4124 ) /* (PDC_SPI1) PDC Transfer Status Register */
/* ========== Register definition for SPI1 peripheral ========== */
#define AT91C_SPI1_IMR             ( ( AT91_REG * ) 0xFFFE401C ) /* (SPI1) Interrupt Mask Register */
#define AT91C_SPI1_IER             ( ( AT91_REG * ) 0xFFFE4014 ) /* (SPI1) Interrupt Enable Register */
#define AT91C_SPI1_MR              ( ( AT91_REG * ) 0xFFFE4004 ) /* (SPI1) Mode Register */
#define AT91C_SPI1_RDR             ( ( AT91_REG * ) 0xFFFE4008 ) /* (SPI1) Receive Data Register */
#define AT91C_SPI1_IDR             ( ( AT91_REG * ) 0xFFFE4018 ) /* (SPI1) Interrupt Disable Register */
#define AT91C_SPI1_SR              ( ( AT91_REG * ) 0xFFFE4010 ) /* (SPI1) Status Register */
#define AT91C_SPI1_TDR             ( ( AT91_REG * ) 0xFFFE400C ) /* (SPI1) Transmit Data Register */
#define AT91C_SPI1_CR              ( ( AT91_REG * ) 0xFFFE4000 ) /* (SPI1) Control Register */
#define AT91C_SPI1_CSR             ( ( AT91_REG * ) 0xFFFE4030 ) /* (SPI1) Chip Select Register */
/* ========== Register definition for PDC_SPI0 peripheral ========== */
#define AT91C_SPI0_PTCR            ( ( AT91_REG * ) 0xFFFE0120 ) /* (PDC_SPI0) PDC Transfer Control Register */
#define AT91C_SPI0_TPR             ( ( AT91_REG * ) 0xFFFE0108 ) /* (PDC_SPI0) Transmit Pointer Register */
#define AT91C_SPI0_TCR             ( ( AT91_REG * ) 0xFFFE010C ) /* (PDC_SPI0) Transmit Counter Register */
#define AT91C_SPI0_RCR             ( ( AT91_REG * ) 0xFFFE0104 ) /* (PDC_SPI0) Receive Counter Register */
#define AT91C_SPI0_PTSR            ( ( AT91_REG * ) 0xFFFE0124 ) /* (PDC_SPI0) PDC Transfer Status Register */
#define AT91C_SPI0_RNPR            ( ( AT91_REG * ) 0xFFFE0110 ) /* (PDC_SPI0) Receive Next Pointer Register */
#define AT91C_SPI0_RPR             ( ( AT91_REG * ) 0xFFFE0100 ) /* (PDC_SPI0) Receive Pointer Register */
#define AT91C_SPI0_TNCR            ( ( AT91_REG * ) 0xFFFE011C ) /* (PDC_SPI0) Transmit Next Counter Register */
#define AT91C_SPI0_RNCR            ( ( AT91_REG * ) 0xFFFE0114 ) /* (PDC_SPI0) Receive Next Counter Register */
#define AT91C_SPI0_TNPR            ( ( AT91_REG * ) 0xFFFE0118 ) /* (PDC_SPI0) Transmit Next Pointer Register */
/* ========== Register definition for SPI0 peripheral ========== */
#define AT91C_SPI0_IER             ( ( AT91_REG * ) 0xFFFE0014 ) /* (SPI0) Interrupt Enable Register */
#define AT91C_SPI0_SR              ( ( AT91_REG * ) 0xFFFE0010 ) /* (SPI0) Status Register */
#define AT91C_SPI0_IDR             ( ( AT91_REG * ) 0xFFFE0018 ) /* (SPI0) Interrupt Disable Register */
#define AT91C_SPI0_CR              ( ( AT91_REG * ) 0xFFFE0000 ) /* (SPI0) Control Register */
#define AT91C_SPI0_MR              ( ( AT91_REG * ) 0xFFFE0004 ) /* (SPI0) Mode Register */
#define AT91C_SPI0_IMR             ( ( AT91_REG * ) 0xFFFE001C ) /* (SPI0) Interrupt Mask Register */
#define AT91C_SPI0_TDR             ( ( AT91_REG * ) 0xFFFE000C ) /* (SPI0) Transmit Data Register */
#define AT91C_SPI0_RDR             ( ( AT91_REG * ) 0xFFFE0008 ) /* (SPI0) Receive Data Register */
#define AT91C_SPI0_CSR             ( ( AT91_REG * ) 0xFFFE0030 ) /* (SPI0) Chip Select Register */
/* ========== Register definition for PDC_US1 peripheral ========== */
#define AT91C_US1_RNCR             ( ( AT91_REG * ) 0xFFFC4114 ) /* (PDC_US1) Receive Next Counter Register */
#define AT91C_US1_PTCR             ( ( AT91_REG * ) 0xFFFC4120 ) /* (PDC_US1) PDC Transfer Control Register */
#define AT91C_US1_TCR              ( ( AT91_REG * ) 0xFFFC410C ) /* (PDC_US1) Transmit Counter Register */
#define AT91C_US1_PTSR             ( ( AT91_REG * ) 0xFFFC4124 ) /* (PDC_US1) PDC Transfer Status Register */
#define AT91C_US1_TNPR             ( ( AT91_REG * ) 0xFFFC4118 ) /* (PDC_US1) Transmit Next Pointer Register */
#define AT91C_US1_RCR              ( ( AT91_REG * ) 0xFFFC4104 ) /* (PDC_US1) Receive Counter Register */
#define AT91C_US1_RNPR             ( ( AT91_REG * ) 0xFFFC4110 ) /* (PDC_US1) Receive Next Pointer Register */
#define AT91C_US1_RPR              ( ( AT91_REG * ) 0xFFFC4100 ) /* (PDC_US1) Receive Pointer Register */
#define AT91C_US1_TNCR             ( ( AT91_REG * ) 0xFFFC411C ) /* (PDC_US1) Transmit Next Counter Register */
#define AT91C_US1_TPR              ( ( AT91_REG * ) 0xFFFC4108 ) /* (PDC_US1) Transmit Pointer Register */
/* ========== Register definition for US1 peripheral ========== */
#define AT91C_US1_IF               ( ( AT91_REG * ) 0xFFFC404C ) /* (US1) IRDA_FILTER Register */
#define AT91C_US1_NER              ( ( AT91_REG * ) 0xFFFC4044 ) /* (US1) Nb Errors Register */
#define AT91C_US1_RTOR             ( ( AT91_REG * ) 0xFFFC4024 ) /* (US1) Receiver Time-out Register */
#define AT91C_US1_CSR              ( ( AT91_REG * ) 0xFFFC4014 ) /* (US1) Channel Status Register */
#define AT91C_US1_IDR              ( ( AT91_REG * ) 0xFFFC400C ) /* (US1) Interrupt Disable Register */
#define AT91C_US1_IER              ( ( AT91_REG * ) 0xFFFC4008 ) /* (US1) Interrupt Enable Register */
#define AT91C_US1_THR              ( ( AT91_REG * ) 0xFFFC401C ) /* (US1) Transmitter Holding Register */
#define AT91C_US1_TTGR             ( ( AT91_REG * ) 0xFFFC4028 ) /* (US1) Transmitter Time-guard Register */
#define AT91C_US1_RHR              ( ( AT91_REG * ) 0xFFFC4018 ) /* (US1) Receiver Holding Register */
#define AT91C_US1_BRGR             ( ( AT91_REG * ) 0xFFFC4020 ) /* (US1) Baud Rate Generator Register */
#define AT91C_US1_IMR              ( ( AT91_REG * ) 0xFFFC4010 ) /* (US1) Interrupt Mask Register */
#define AT91C_US1_FIDI             ( ( AT91_REG * ) 0xFFFC4040 ) /* (US1) FI_DI_Ratio Register */
#define AT91C_US1_CR               ( ( AT91_REG * ) 0xFFFC4000 ) /* (US1) Control Register */
#define AT91C_US1_MR               ( ( AT91_REG * ) 0xFFFC4004 ) /* (US1) Mode Register */
/* ========== Register definition for PDC_US0 peripheral ========== */
#define AT91C_US0_TNPR             ( ( AT91_REG * ) 0xFFFC0118 ) /* (PDC_US0) Transmit Next Pointer Register */
#define AT91C_US0_RNPR             ( ( AT91_REG * ) 0xFFFC0110 ) /* (PDC_US0) Receive Next Pointer Register */
#define AT91C_US0_TCR              ( ( AT91_REG * ) 0xFFFC010C ) /* (PDC_US0) Transmit Counter Register */
#define AT91C_US0_PTCR             ( ( AT91_REG * ) 0xFFFC0120 ) /* (PDC_US0) PDC Transfer Control Register */
#define AT91C_US0_PTSR             ( ( AT91_REG * ) 0xFFFC0124 ) /* (PDC_US0) PDC Transfer Status Register */
#define AT91C_US0_TNCR             ( ( AT91_REG * ) 0xFFFC011C ) /* (PDC_US0) Transmit Next Counter Register */
#define AT91C_US0_TPR              ( ( AT91_REG * ) 0xFFFC0108 ) /* (PDC_US0) Transmit Pointer Register */
#define AT91C_US0_RCR              ( ( AT91_REG * ) 0xFFFC0104 ) /* (PDC_US0) Receive Counter Register */
#define AT91C_US0_RPR              ( ( AT91_REG * ) 0xFFFC0100 ) /* (PDC_US0) Receive Pointer Register */
#define AT91C_US0_RNCR             ( ( AT91_REG * ) 0xFFFC0114 ) /* (PDC_US0) Receive Next Counter Register */
/* ========== Register definition for US0 peripheral ========== */
#define AT91C_US0_BRGR             ( ( AT91_REG * ) 0xFFFC0020 ) /* (US0) Baud Rate Generator Register */
#define AT91C_US0_NER              ( ( AT91_REG * ) 0xFFFC0044 ) /* (US0) Nb Errors Register */
#define AT91C_US0_CR               ( ( AT91_REG * ) 0xFFFC0000 ) /* (US0) Control Register */
#define AT91C_US0_IMR              ( ( AT91_REG * ) 0xFFFC0010 ) /* (US0) Interrupt Mask Register */
#define AT91C_US0_FIDI             ( ( AT91_REG * ) 0xFFFC0040 ) /* (US0) FI_DI_Ratio Register */
#define AT91C_US0_TTGR             ( ( AT91_REG * ) 0xFFFC0028 ) /* (US0) Transmitter Time-guard Register */
#define AT91C_US0_MR               ( ( AT91_REG * ) 0xFFFC0004 ) /* (US0) Mode Register */
#define AT91C_US0_RTOR             ( ( AT91_REG * ) 0xFFFC0024 ) /* (US0) Receiver Time-out Register */
#define AT91C_US0_CSR              ( ( AT91_REG * ) 0xFFFC0014 ) /* (US0) Channel Status Register */
#define AT91C_US0_RHR              ( ( AT91_REG * ) 0xFFFC0018 ) /* (US0) Receiver Holding Register */
#define AT91C_US0_IDR              ( ( AT91_REG * ) 0xFFFC000C ) /* (US0) Interrupt Disable Register */
#define AT91C_US0_THR              ( ( AT91_REG * ) 0xFFFC001C ) /* (US0) Transmitter Holding Register */
#define AT91C_US0_IF               ( ( AT91_REG * ) 0xFFFC004C ) /* (US0) IRDA_FILTER Register */
#define AT91C_US0_IER              ( ( AT91_REG * ) 0xFFFC0008 ) /* (US0) Interrupt Enable Register */
/* ========== Register definition for PDC_SSC peripheral ========== */
#define AT91C_SSC_TNCR             ( ( AT91_REG * ) 0xFFFD411C ) /* (PDC_SSC) Transmit Next Counter Register */
#define AT91C_SSC_RPR              ( ( AT91_REG * ) 0xFFFD4100 ) /* (PDC_SSC) Receive Pointer Register */
#define AT91C_SSC_RNCR             ( ( AT91_REG * ) 0xFFFD4114 ) /* (PDC_SSC) Receive Next Counter Register */
#define AT91C_SSC_TPR              ( ( AT91_REG * ) 0xFFFD4108 ) /* (PDC_SSC) Transmit Pointer Register */
#define AT91C_SSC_PTCR             ( ( AT91_REG * ) 0xFFFD4120 ) /* (PDC_SSC) PDC Transfer Control Register */
#define AT91C_SSC_TCR              ( ( AT91_REG * ) 0xFFFD410C ) /* (PDC_SSC) Transmit Counter Register */
#define AT91C_SSC_RCR              ( ( AT91_REG * ) 0xFFFD4104 ) /* (PDC_SSC) Receive Counter Register */
#define AT91C_SSC_RNPR             ( ( AT91_REG * ) 0xFFFD4110 ) /* (PDC_SSC) Receive Next Pointer Register */
#define AT91C_SSC_TNPR             ( ( AT91_REG * ) 0xFFFD4118 ) /* (PDC_SSC) Transmit Next Pointer Register */
#define AT91C_SSC_PTSR             ( ( AT91_REG * ) 0xFFFD4124 ) /* (PDC_SSC) PDC Transfer Status Register */
/* ========== Register definition for SSC peripheral ========== */
#define AT91C_SSC_RHR              ( ( AT91_REG * ) 0xFFFD4020 ) /* (SSC) Receive Holding Register */
#define AT91C_SSC_RSHR             ( ( AT91_REG * ) 0xFFFD4030 ) /* (SSC) Receive Sync Holding Register */
#define AT91C_SSC_TFMR             ( ( AT91_REG * ) 0xFFFD401C ) /* (SSC) Transmit Frame Mode Register */
#define AT91C_SSC_IDR              ( ( AT91_REG * ) 0xFFFD4048 ) /* (SSC) Interrupt Disable Register */
#define AT91C_SSC_THR              ( ( AT91_REG * ) 0xFFFD4024 ) /* (SSC) Transmit Holding Register */
#define AT91C_SSC_RCMR             ( ( AT91_REG * ) 0xFFFD4010 ) /* (SSC) Receive Clock ModeRegister */
#define AT91C_SSC_IER              ( ( AT91_REG * ) 0xFFFD4044 ) /* (SSC) Interrupt Enable Register */
#define AT91C_SSC_TSHR             ( ( AT91_REG * ) 0xFFFD4034 ) /* (SSC) Transmit Sync Holding Register */
#define AT91C_SSC_SR               ( ( AT91_REG * ) 0xFFFD4040 ) /* (SSC) Status Register */
#define AT91C_SSC_CMR              ( ( AT91_REG * ) 0xFFFD4004 ) /* (SSC) Clock Mode Register */
#define AT91C_SSC_TCMR             ( ( AT91_REG * ) 0xFFFD4018 ) /* (SSC) Transmit Clock Mode Register */
#define AT91C_SSC_CR               ( ( AT91_REG * ) 0xFFFD4000 ) /* (SSC) Control Register */
#define AT91C_SSC_IMR              ( ( AT91_REG * ) 0xFFFD404C ) /* (SSC) Interrupt Mask Register */
#define AT91C_SSC_RFMR             ( ( AT91_REG * ) 0xFFFD4014 ) /* (SSC) Receive Frame Mode Register */
/* ========== Register definition for TWI peripheral ========== */
#define AT91C_TWI_IER              ( ( AT91_REG * ) 0xFFFB8024 ) /* (TWI) Interrupt Enable Register */
#define AT91C_TWI_CR               ( ( AT91_REG * ) 0xFFFB8000 ) /* (TWI) Control Register */
#define AT91C_TWI_SR               ( ( AT91_REG * ) 0xFFFB8020 ) /* (TWI) Status Register */
#define AT91C_TWI_IMR              ( ( AT91_REG * ) 0xFFFB802C ) /* (TWI) Interrupt Mask Register */
#define AT91C_TWI_THR              ( ( AT91_REG * ) 0xFFFB8034 ) /* (TWI) Transmit Holding Register */
#define AT91C_TWI_IDR              ( ( AT91_REG * ) 0xFFFB8028 ) /* (TWI) Interrupt Disable Register */
#define AT91C_TWI_IADR             ( ( AT91_REG * ) 0xFFFB800C ) /* (TWI) Internal Address Register */
#define AT91C_TWI_MMR              ( ( AT91_REG * ) 0xFFFB8004 ) /* (TWI) Master Mode Register */
#define AT91C_TWI_CWGR             ( ( AT91_REG * ) 0xFFFB8010 ) /* (TWI) Clock Waveform Generator Register */
#define AT91C_TWI_RHR              ( ( AT91_REG * ) 0xFFFB8030 ) /* (TWI) Receive Holding Register */
/* ========== Register definition for PWMC_CH3 peripheral ========== */
#define AT91C_PWMC_CH3_CUPDR       ( ( AT91_REG * ) 0xFFFCC270 ) /* (PWMC_CH3) Channel Update Register */
#define AT91C_PWMC_CH3_Reserved    ( ( AT91_REG * ) 0xFFFCC274 ) /* (PWMC_CH3) Reserved */
#define AT91C_PWMC_CH3_CPRDR       ( ( AT91_REG * ) 0xFFFCC268 ) /* (PWMC_CH3) Channel Period Register */
#define AT91C_PWMC_CH3_CDTYR       ( ( AT91_REG * ) 0xFFFCC264 ) /* (PWMC_CH3) Channel Duty Cycle Register */
#define AT91C_PWMC_CH3_CCNTR       ( ( AT91_REG * ) 0xFFFCC26C ) /* (PWMC_CH3) Channel Counter Register */
#define AT91C_PWMC_CH3_CMR         ( ( AT91_REG * ) 0xFFFCC260 ) /* (PWMC_CH3) Channel Mode Register */
/* ========== Register definition for PWMC_CH2 peripheral ========== */
#define AT91C_PWMC_CH2_Reserved    ( ( AT91_REG * ) 0xFFFCC254 ) /* (PWMC_CH2) Reserved */
#define AT91C_PWMC_CH2_CMR         ( ( AT91_REG * ) 0xFFFCC240 ) /* (PWMC_CH2) Channel Mode Register */
#define AT91C_PWMC_CH2_CCNTR       ( ( AT91_REG * ) 0xFFFCC24C ) /* (PWMC_CH2) Channel Counter Register */
#define AT91C_PWMC_CH2_CPRDR       ( ( AT91_REG * ) 0xFFFCC248 ) /* (PWMC_CH2) Channel Period Register */
#define AT91C_PWMC_CH2_CUPDR       ( ( AT91_REG * ) 0xFFFCC250 ) /* (PWMC_CH2) Channel Update Register */
#define AT91C_PWMC_CH2_CDTYR       ( ( AT91_REG * ) 0xFFFCC244 ) /* (PWMC_CH2) Channel Duty Cycle Register */
/* ========== Register definition for PWMC_CH1 peripheral ========== */
#define AT91C_PWMC_CH1_Reserved    ( ( AT91_REG * ) 0xFFFCC234 ) /* (PWMC_CH1) Reserved */
#define AT91C_PWMC_CH1_CUPDR       ( ( AT91_REG * ) 0xFFFCC230 ) /* (PWMC_CH1) Channel Update Register */
#define AT91C_PWMC_CH1_CPRDR       ( ( AT91_REG * ) 0xFFFCC228 ) /* (PWMC_CH1) Channel Period Register */
#define AT91C_PWMC_CH1_CCNTR       ( ( AT91_REG * ) 0xFFFCC22C ) /* (PWMC_CH1) Channel Counter Register */
#define AT91C_PWMC_CH1_CDTYR       ( ( AT91_REG * ) 0xFFFCC224 ) /* (PWMC_CH1) Channel Duty Cycle Register */
#define AT91C_PWMC_CH1_CMR         ( ( AT91_REG * ) 0xFFFCC220 ) /* (PWMC_CH1) Channel Mode Register */
/* ========== Register definition for PWMC_CH0 peripheral ========== */
#define AT91C_PWMC_CH0_Reserved    ( ( AT91_REG * ) 0xFFFCC214 ) /* (PWMC_CH0) Reserved */
#define AT91C_PWMC_CH0_CPRDR       ( ( AT91_REG * ) 0xFFFCC208 ) /* (PWMC_CH0) Channel Period Register */
#define AT91C_PWMC_CH0_CDTYR       ( ( AT91_REG * ) 0xFFFCC204 ) /* (PWMC_CH0) Channel Duty Cycle Register */
#define AT91C_PWMC_CH0_CMR         ( ( AT91_REG * ) 0xFFFCC200 ) /* (PWMC_CH0) Channel Mode Register */
#define AT91C_PWMC_CH0_CUPDR       ( ( AT91_REG * ) 0xFFFCC210 ) /* (PWMC_CH0) Channel Update Register */
#define AT91C_PWMC_CH0_CCNTR       ( ( AT91_REG * ) 0xFFFCC20C ) /* (PWMC_CH0) Channel Counter Register */
/* ========== Register definition for PWMC peripheral ========== */
#define AT91C_PWMC_IDR             ( ( AT91_REG * ) 0xFFFCC014 ) /* (PWMC) PWMC Interrupt Disable Register */
#define AT91C_PWMC_DIS             ( ( AT91_REG * ) 0xFFFCC008 ) /* (PWMC) PWMC Disable Register */
#define AT91C_PWMC_IER             ( ( AT91_REG * ) 0xFFFCC010 ) /* (PWMC) PWMC Interrupt Enable Register */
#define AT91C_PWMC_VR              ( ( AT91_REG * ) 0xFFFCC0FC ) /* (PWMC) PWMC Version Register */
#define AT91C_PWMC_ISR             ( ( AT91_REG * ) 0xFFFCC01C ) /* (PWMC) PWMC Interrupt Status Register */
#define AT91C_PWMC_SR              ( ( AT91_REG * ) 0xFFFCC00C ) /* (PWMC) PWMC Status Register */
#define AT91C_PWMC_IMR             ( ( AT91_REG * ) 0xFFFCC018 ) /* (PWMC) PWMC Interrupt Mask Register */
#define AT91C_PWMC_MR              ( ( AT91_REG * ) 0xFFFCC000 ) /* (PWMC) PWMC Mode Register */
#define AT91C_PWMC_ENA             ( ( AT91_REG * ) 0xFFFCC004 ) /* (PWMC) PWMC Enable Register */
/* ========== Register definition for UDP peripheral ========== */
#define AT91C_UDP_IMR              ( ( AT91_REG * ) 0xFFFB0018 ) /* (UDP) Interrupt Mask Register */
#define AT91C_UDP_FADDR            ( ( AT91_REG * ) 0xFFFB0008 ) /* (UDP) Function Address Register */
#define AT91C_UDP_NUM              ( ( AT91_REG * ) 0xFFFB0000 ) /* (UDP) Frame Number Register */
#define AT91C_UDP_FDR              ( ( AT91_REG * ) 0xFFFB0050 ) /* (UDP) Endpoint FIFO Data Register */
#define AT91C_UDP_ISR              ( ( AT91_REG * ) 0xFFFB001C ) /* (UDP) Interrupt Status Register */
#define AT91C_UDP_CSR              ( ( AT91_REG * ) 0xFFFB0030 ) /* (UDP) Endpoint Control and Status Register */
#define AT91C_UDP_IDR              ( ( AT91_REG * ) 0xFFFB0014 ) /* (UDP) Interrupt Disable Register */
#define AT91C_UDP_ICR              ( ( AT91_REG * ) 0xFFFB0020 ) /* (UDP) Interrupt Clear Register */
#define AT91C_UDP_RSTEP            ( ( AT91_REG * ) 0xFFFB0028 ) /* (UDP) Reset Endpoint Register */
#define AT91C_UDP_TXVC             ( ( AT91_REG * ) 0xFFFB0074 ) /* (UDP) Transceiver Control Register */
#define AT91C_UDP_GLBSTATE         ( ( AT91_REG * ) 0xFFFB0004 ) /* (UDP) Global State Register */
#define AT91C_UDP_IER              ( ( AT91_REG * ) 0xFFFB0010 ) /* (UDP) Interrupt Enable Register */
/* ========== Register definition for TC0 peripheral ========== */
#define AT91C_TC0_SR               ( ( AT91_REG * ) 0xFFFA0020 ) /* (TC0) Status Register */
#define AT91C_TC0_RC               ( ( AT91_REG * ) 0xFFFA001C ) /* (TC0) Register C */
#define AT91C_TC0_RB               ( ( AT91_REG * ) 0xFFFA0018 ) /* (TC0) Register B */
#define AT91C_TC0_CCR              ( ( AT91_REG * ) 0xFFFA0000 ) /* (TC0) Channel Control Register */
#define AT91C_TC0_CMR              ( ( AT91_REG * ) 0xFFFA0004 ) /* (TC0) Channel Mode Register (Capture Mode / Waveform Mode) */
#define AT91C_TC0_IER              ( ( AT91_REG * ) 0xFFFA0024 ) /* (TC0) Interrupt Enable Register */
#define AT91C_TC0_RA               ( ( AT91_REG * ) 0xFFFA0014 ) /* (TC0) Register A */
#define AT91C_TC0_IDR              ( ( AT91_REG * ) 0xFFFA0028 ) /* (TC0) Interrupt Disable Register */
#define AT91C_TC0_CV               ( ( AT91_REG * ) 0xFFFA0010 ) /* (TC0) Counter Value */
#define AT91C_TC0_IMR              ( ( AT91_REG * ) 0xFFFA002C ) /* (TC0) Interrupt Mask Register */
/* ========== Register definition for TC1 peripheral ========== */
#define AT91C_TC1_RB               ( ( AT91_REG * ) 0xFFFA0058 ) /* (TC1) Register B */
#define AT91C_TC1_CCR              ( ( AT91_REG * ) 0xFFFA0040 ) /* (TC1) Channel Control Register */
#define AT91C_TC1_IER              ( ( AT91_REG * ) 0xFFFA0064 ) /* (TC1) Interrupt Enable Register */
#define AT91C_TC1_IDR              ( ( AT91_REG * ) 0xFFFA0068 ) /* (TC1) Interrupt Disable Register */
#define AT91C_TC1_SR               ( ( AT91_REG * ) 0xFFFA0060 ) /* (TC1) Status Register */
#define AT91C_TC1_CMR              ( ( AT91_REG * ) 0xFFFA0044 ) /* (TC1) Channel Mode Register (Capture Mode / Waveform Mode) */
#define AT91C_TC1_RA               ( ( AT91_REG * ) 0xFFFA0054 ) /* (TC1) Register A */
#define AT91C_TC1_RC               ( ( AT91_REG * ) 0xFFFA005C ) /* (TC1) Register C */
#define AT91C_TC1_IMR              ( ( AT91_REG * ) 0xFFFA006C ) /* (TC1) Interrupt Mask Register */
#define AT91C_TC1_CV               ( ( AT91_REG * ) 0xFFFA0050 ) /* (TC1) Counter Value */
/* ========== Register definition for TC2 peripheral ========== */
#define AT91C_TC2_CMR              ( ( AT91_REG * ) 0xFFFA0084 ) /* (TC2) Channel Mode Register (Capture Mode / Waveform Mode) */
#define AT91C_TC2_CCR              ( ( AT91_REG * ) 0xFFFA0080 ) /* (TC2) Channel Control Register */
#define AT91C_TC2_CV               ( ( AT91_REG * ) 0xFFFA0090 ) /* (TC2) Counter Value */
#define AT91C_TC2_RA               ( ( AT91_REG * ) 0xFFFA0094 ) /* (TC2) Register A */
#define AT91C_TC2_RB               ( ( AT91_REG * ) 0xFFFA0098 ) /* (TC2) Register B */
#define AT91C_TC2_IDR              ( ( AT91_REG * ) 0xFFFA00A8 ) /* (TC2) Interrupt Disable Register */
#define AT91C_TC2_IMR              ( ( AT91_REG * ) 0xFFFA00AC ) /* (TC2) Interrupt Mask Register */
#define AT91C_TC2_RC               ( ( AT91_REG * ) 0xFFFA009C ) /* (TC2) Register C */
#define AT91C_TC2_IER              ( ( AT91_REG * ) 0xFFFA00A4 ) /* (TC2) Interrupt Enable Register */
#define AT91C_TC2_SR               ( ( AT91_REG * ) 0xFFFA00A0 ) /* (TC2) Status Register */
/* ========== Register definition for TCB peripheral ========== */
#define AT91C_TCB_BMR              ( ( AT91_REG * ) 0xFFFA00C4 ) /* (TCB) TC Block Mode Register */
#define AT91C_TCB_BCR              ( ( AT91_REG * ) 0xFFFA00C0 ) /* (TCB) TC Block Control Register */
/* ========== Register definition for CAN_MB0 peripheral ========== */
#define AT91C_CAN_MB0_MDL          ( ( AT91_REG * ) 0xFFFD0214 ) /* (CAN_MB0) MailBox Data Low Register */
#define AT91C_CAN_MB0_MAM          ( ( AT91_REG * ) 0xFFFD0204 ) /* (CAN_MB0) MailBox Acceptance Mask Register */
#define AT91C_CAN_MB0_MCR          ( ( AT91_REG * ) 0xFFFD021C ) /* (CAN_MB0) MailBox Control Register */
#define AT91C_CAN_MB0_MID          ( ( AT91_REG * ) 0xFFFD0208 ) /* (CAN_MB0) MailBox ID Register */
#define AT91C_CAN_MB0_MSR          ( ( AT91_REG * ) 0xFFFD0210 ) /* (CAN_MB0) MailBox Status Register */
#define AT91C_CAN_MB0_MFID         ( ( AT91_REG * ) 0xFFFD020C ) /* (CAN_MB0) MailBox Family ID Register */
#define AT91C_CAN_MB0_MDH          ( ( AT91_REG * ) 0xFFFD0218 ) /* (CAN_MB0) MailBox Data High Register */
#define AT91C_CAN_MB0_MMR          ( ( AT91_REG * ) 0xFFFD0200 ) /* (CAN_MB0) MailBox Mode Register */
/* ========== Register definition for CAN_MB1 peripheral ========== */
#define AT91C_CAN_MB1_MDL          ( ( AT91_REG * ) 0xFFFD0234 ) /* (CAN_MB1) MailBox Data Low Register */
#define AT91C_CAN_MB1_MID          ( ( AT91_REG * ) 0xFFFD0228 ) /* (CAN_MB1) MailBox ID Register */
#define AT91C_CAN_MB1_MMR          ( ( AT91_REG * ) 0xFFFD0220 ) /* (CAN_MB1) MailBox Mode Register */
#define AT91C_CAN_MB1_MSR          ( ( AT91_REG * ) 0xFFFD0230 ) /* (CAN_MB1) MailBox Status Register */
#define AT91C_CAN_MB1_MAM          ( ( AT91_REG * ) 0xFFFD0224 ) /* (CAN_MB1) MailBox Acceptance Mask Register */
#define AT91C_CAN_MB1_MDH          ( ( AT91_REG * ) 0xFFFD0238 ) /* (CAN_MB1) MailBox Data High Register */
#define AT91C_CAN_MB1_MCR          ( ( AT91_REG * ) 0xFFFD023C ) /* (CAN_MB1) MailBox Control Register */
#define AT91C_CAN_MB1_MFID         ( ( AT91_REG * ) 0xFFFD022C ) /* (CAN_MB1) MailBox Family ID Register */
/* ========== Register definition for CAN_MB2 peripheral ========== */
#define AT91C_CAN_MB2_MCR          ( ( AT91_REG * ) 0xFFFD025C ) /* (CAN_MB2) MailBox Control Register */
#define AT91C_CAN_MB2_MDH          ( ( AT91_REG * ) 0xFFFD0258 ) /* (CAN_MB2) MailBox Data High Register */
#define AT91C_CAN_MB2_MID          ( ( AT91_REG * ) 0xFFFD0248 ) /* (CAN_MB2) MailBox ID Register */
#define AT91C_CAN_MB2_MDL          ( ( AT91_REG * ) 0xFFFD0254 ) /* (CAN_MB2) MailBox Data Low Register */
#define AT91C_CAN_MB2_MMR          ( ( AT91_REG * ) 0xFFFD0240 ) /* (CAN_MB2) MailBox Mode Register */
#define AT91C_CAN_MB2_MAM          ( ( AT91_REG * ) 0xFFFD0244 ) /* (CAN_MB2) MailBox Acceptance Mask Register */
#define AT91C_CAN_MB2_MFID         ( ( AT91_REG * ) 0xFFFD024C ) /* (CAN_MB2) MailBox Family ID Register */
#define AT91C_CAN_MB2_MSR          ( ( AT91_REG * ) 0xFFFD0250 ) /* (CAN_MB2) MailBox Status Register */
/* ========== Register definition for CAN_MB3 peripheral ========== */
#define AT91C_CAN_MB3_MFID         ( ( AT91_REG * ) 0xFFFD026C ) /* (CAN_MB3) MailBox Family ID Register */
#define AT91C_CAN_MB3_MAM          ( ( AT91_REG * ) 0xFFFD0264 ) /* (CAN_MB3) MailBox Acceptance Mask Register */
#define AT91C_CAN_MB3_MID          ( ( AT91_REG * ) 0xFFFD0268 ) /* (CAN_MB3) MailBox ID Register */
#define AT91C_CAN_MB3_MCR          ( ( AT91_REG * ) 0xFFFD027C ) /* (CAN_MB3) MailBox Control Register */
#define AT91C_CAN_MB3_MMR          ( ( AT91_REG * ) 0xFFFD0260 ) /* (CAN_MB3) MailBox Mode Register */
#define AT91C_CAN_MB3_MSR          ( ( AT91_REG * ) 0xFFFD0270 ) /* (CAN_MB3) MailBox Status Register */
#define AT91C_CAN_MB3_MDL          ( ( AT91_REG * ) 0xFFFD0274 ) /* (CAN_MB3) MailBox Data Low Register */
#define AT91C_CAN_MB3_MDH          ( ( AT91_REG * ) 0xFFFD0278 ) /* (CAN_MB3) MailBox Data High Register */
/* ========== Register definition for CAN_MB4 peripheral ========== */
#define AT91C_CAN_MB4_MID          ( ( AT91_REG * ) 0xFFFD0288 ) /* (CAN_MB4) MailBox ID Register */
#define AT91C_CAN_MB4_MMR          ( ( AT91_REG * ) 0xFFFD0280 ) /* (CAN_MB4) MailBox Mode Register */
#define AT91C_CAN_MB4_MDH          ( ( AT91_REG * ) 0xFFFD0298 ) /* (CAN_MB4) MailBox Data High Register */
#define AT91C_CAN_MB4_MFID         ( ( AT91_REG * ) 0xFFFD028C ) /* (CAN_MB4) MailBox Family ID Register */
#define AT91C_CAN_MB4_MSR          ( ( AT91_REG * ) 0xFFFD0290 ) /* (CAN_MB4) MailBox Status Register */
#define AT91C_CAN_MB4_MCR          ( ( AT91_REG * ) 0xFFFD029C ) /* (CAN_MB4) MailBox Control Register */
#define AT91C_CAN_MB4_MDL          ( ( AT91_REG * ) 0xFFFD0294 ) /* (CAN_MB4) MailBox Data Low Register */
#define AT91C_CAN_MB4_MAM          ( ( AT91_REG * ) 0xFFFD0284 ) /* (CAN_MB4) MailBox Acceptance Mask Register */
/* ========== Register definition for CAN_MB5 peripheral ========== */
#define AT91C_CAN_MB5_MSR          ( ( AT91_REG * ) 0xFFFD02B0 ) /* (CAN_MB5) MailBox Status Register */
#define AT91C_CAN_MB5_MCR          ( ( AT91_REG * ) 0xFFFD02BC ) /* (CAN_MB5) MailBox Control Register */
#define AT91C_CAN_MB5_MFID         ( ( AT91_REG * ) 0xFFFD02AC ) /* (CAN_MB5) MailBox Family ID Register */
#define AT91C_CAN_MB5_MDH          ( ( AT91_REG * ) 0xFFFD02B8 ) /* (CAN_MB5) MailBox Data High Register */
#define AT91C_CAN_MB5_MID          ( ( AT91_REG * ) 0xFFFD02A8 ) /* (CAN_MB5) MailBox ID Register */
#define AT91C_CAN_MB5_MMR          ( ( AT91_REG * ) 0xFFFD02A0 ) /* (CAN_MB5) MailBox Mode Register */
#define AT91C_CAN_MB5_MDL          ( ( AT91_REG * ) 0xFFFD02B4 ) /* (CAN_MB5) MailBox Data Low Register */
#define AT91C_CAN_MB5_MAM          ( ( AT91_REG * ) 0xFFFD02A4 ) /* (CAN_MB5) MailBox Acceptance Mask Register */
/* ========== Register definition for CAN_MB6 peripheral ========== */
#define AT91C_CAN_MB6_MFID         ( ( AT91_REG * ) 0xFFFD02CC ) /* (CAN_MB6) MailBox Family ID Register */
#define AT91C_CAN_MB6_MID          ( ( AT91_REG * ) 0xFFFD02C8 ) /* (CAN_MB6) MailBox ID Register */
#define AT91C_CAN_MB6_MAM          ( ( AT91_REG * ) 0xFFFD02C4 ) /* (CAN_MB6) MailBox Acceptance Mask Register */
#define AT91C_CAN_MB6_MSR          ( ( AT91_REG * ) 0xFFFD02D0 ) /* (CAN_MB6) MailBox Status Register */
#define AT91C_CAN_MB6_MDL          ( ( AT91_REG * ) 0xFFFD02D4 ) /* (CAN_MB6) MailBox Data Low Register */
#define AT91C_CAN_MB6_MCR          ( ( AT91_REG * ) 0xFFFD02DC ) /* (CAN_MB6) MailBox Control Register */
#define AT91C_CAN_MB6_MDH          ( ( AT91_REG * ) 0xFFFD02D8 ) /* (CAN_MB6) MailBox Data High Register */
#define AT91C_CAN_MB6_MMR          ( ( AT91_REG * ) 0xFFFD02C0 ) /* (CAN_MB6) MailBox Mode Register */
/* ========== Register definition for CAN_MB7 peripheral ========== */
#define AT91C_CAN_MB7_MCR          ( ( AT91_REG * ) 0xFFFD02FC ) /* (CAN_MB7) MailBox Control Register */
#define AT91C_CAN_MB7_MDH          ( ( AT91_REG * ) 0xFFFD02F8 ) /* (CAN_MB7) MailBox Data High Register */
#define AT91C_CAN_MB7_MFID         ( ( AT91_REG * ) 0xFFFD02EC ) /* (CAN_MB7) MailBox Family ID Register */
#define AT91C_CAN_MB7_MDL          ( ( AT91_REG * ) 0xFFFD02F4 ) /* (CAN_MB7) MailBox Data Low Register */
#define AT91C_CAN_MB7_MID          ( ( AT91_REG * ) 0xFFFD02E8 ) /* (CAN_MB7) MailBox ID Register */
#define AT91C_CAN_MB7_MMR          ( ( AT91_REG * ) 0xFFFD02E0 ) /* (CAN_MB7) MailBox Mode Register */
#define AT91C_CAN_MB7_MAM          ( ( AT91_REG * ) 0xFFFD02E4 ) /* (CAN_MB7) MailBox Acceptance Mask Register */
#define AT91C_CAN_MB7_MSR          ( ( AT91_REG * ) 0xFFFD02F0 ) /* (CAN_MB7) MailBox Status Register */
/* ========== Register definition for CAN peripheral ========== */
#define AT91C_CAN_TCR              ( ( AT91_REG * ) 0xFFFD0024 ) /* (CAN) Transfer Command Register */
#define AT91C_CAN_IMR              ( ( AT91_REG * ) 0xFFFD000C ) /* (CAN) Interrupt Mask Register */
#define AT91C_CAN_IER              ( ( AT91_REG * ) 0xFFFD0004 ) /* (CAN) Interrupt Enable Register */
#define AT91C_CAN_ECR              ( ( AT91_REG * ) 0xFFFD0020 ) /* (CAN) Error Counter Register */
#define AT91C_CAN_TIMESTP          ( ( AT91_REG * ) 0xFFFD001C ) /* (CAN) Time Stamp Register */
#define AT91C_CAN_MR               ( ( AT91_REG * ) 0xFFFD0000 ) /* (CAN) Mode Register */
#define AT91C_CAN_IDR              ( ( AT91_REG * ) 0xFFFD0008 ) /* (CAN) Interrupt Disable Register */
#define AT91C_CAN_ACR              ( ( AT91_REG * ) 0xFFFD0028 ) /* (CAN) Abort Command Register */
#define AT91C_CAN_TIM              ( ( AT91_REG * ) 0xFFFD0018 ) /* (CAN) Timer Register */
#define AT91C_CAN_SR               ( ( AT91_REG * ) 0xFFFD0010 ) /* (CAN) Status Register */
#define AT91C_CAN_BR               ( ( AT91_REG * ) 0xFFFD0014 ) /* (CAN) Baudrate Register */
#define AT91C_CAN_VR               ( ( AT91_REG * ) 0xFFFD00FC ) /* (CAN) Version Register */
/* ========== Register definition for EMAC peripheral ========== */
#define AT91C_EMAC_ISR             ( ( AT91_REG * ) 0xFFFDC024 ) /* (EMAC) Interrupt Status Register */
#define AT91C_EMAC_SA4H            ( ( AT91_REG * ) 0xFFFDC0B4 ) /* (EMAC) Specific Address 4 Top, Last 2 bytes */
#define AT91C_EMAC_SA1L            ( ( AT91_REG * ) 0xFFFDC098 ) /* (EMAC) Specific Address 1 Bottom, First 4 bytes */
#define AT91C_EMAC_ELE             ( ( AT91_REG * ) 0xFFFDC078 ) /* (EMAC) Excessive Length Errors Register */
#define AT91C_EMAC_LCOL            ( ( AT91_REG * ) 0xFFFDC05C ) /* (EMAC) Late Collision Register */
#define AT91C_EMAC_RLE             ( ( AT91_REG * ) 0xFFFDC088 ) /* (EMAC) Receive Length Field Mismatch Register */
#define AT91C_EMAC_WOL             ( ( AT91_REG * ) 0xFFFDC0C4 ) /* (EMAC) Wake On LAN Register */
#define AT91C_EMAC_DTF             ( ( AT91_REG * ) 0xFFFDC058 ) /* (EMAC) Deferred Transmission Frame Register */
#define AT91C_EMAC_TUND            ( ( AT91_REG * ) 0xFFFDC064 ) /* (EMAC) Transmit Underrun Error Register */
#define AT91C_EMAC_NCR             ( ( AT91_REG * ) 0xFFFDC000 ) /* (EMAC) Network Control Register */
#define AT91C_EMAC_SA4L            ( ( AT91_REG * ) 0xFFFDC0B0 ) /* (EMAC) Specific Address 4 Bottom, First 4 bytes */
#define AT91C_EMAC_RSR             ( ( AT91_REG * ) 0xFFFDC020 ) /* (EMAC) Receive Status Register */
#define AT91C_EMAC_SA3L            ( ( AT91_REG * ) 0xFFFDC0A8 ) /* (EMAC) Specific Address 3 Bottom, First 4 bytes */
#define AT91C_EMAC_TSR             ( ( AT91_REG * ) 0xFFFDC014 ) /* (EMAC) Transmit Status Register */
#define AT91C_EMAC_IDR             ( ( AT91_REG * ) 0xFFFDC02C ) /* (EMAC) Interrupt Disable Register */
#define AT91C_EMAC_RSE             ( ( AT91_REG * ) 0xFFFDC074 ) /* (EMAC) Receive Symbol Errors Register */
#define AT91C_EMAC_ECOL            ( ( AT91_REG * ) 0xFFFDC060 ) /* (EMAC) Excessive Collision Register */
#define AT91C_EMAC_TID             ( ( AT91_REG * ) 0xFFFDC0B8 ) /* (EMAC) Type ID Checking Register */
#define AT91C_EMAC_HRB             ( ( AT91_REG * ) 0xFFFDC090 ) /* (EMAC) Hash Address Bottom[31:0] */
#define AT91C_EMAC_TBQP            ( ( AT91_REG * ) 0xFFFDC01C ) /* (EMAC) Transmit Buffer Queue Pointer */
#define AT91C_EMAC_USRIO           ( ( AT91_REG * ) 0xFFFDC0C0 ) /* (EMAC) USER Input/Output Register */
#define AT91C_EMAC_PTR             ( ( AT91_REG * ) 0xFFFDC038 ) /* (EMAC) Pause Time Register */
#define AT91C_EMAC_SA2H            ( ( AT91_REG * ) 0xFFFDC0A4 ) /* (EMAC) Specific Address 2 Top, Last 2 bytes */
#define AT91C_EMAC_ROV             ( ( AT91_REG * ) 0xFFFDC070 ) /* (EMAC) Receive Overrun Errors Register */
#define AT91C_EMAC_ALE             ( ( AT91_REG * ) 0xFFFDC054 ) /* (EMAC) Alignment Error Register */
#define AT91C_EMAC_RJA             ( ( AT91_REG * ) 0xFFFDC07C ) /* (EMAC) Receive Jabbers Register */
#define AT91C_EMAC_RBQP            ( ( AT91_REG * ) 0xFFFDC018 ) /* (EMAC) Receive Buffer Queue Pointer */
#define AT91C_EMAC_TPF             ( ( AT91_REG * ) 0xFFFDC08C ) /* (EMAC) Transmitted Pause Frames Register */
#define AT91C_EMAC_NCFGR           ( ( AT91_REG * ) 0xFFFDC004 ) /* (EMAC) Network Configuration Register */
#define AT91C_EMAC_HRT             ( ( AT91_REG * ) 0xFFFDC094 ) /* (EMAC) Hash Address Top[63:32] */
#define AT91C_EMAC_USF             ( ( AT91_REG * ) 0xFFFDC080 ) /* (EMAC) Undersize Frames Register */
#define AT91C_EMAC_FCSE            ( ( AT91_REG * ) 0xFFFDC050 ) /* (EMAC) Frame Check Sequence Error Register */
#define AT91C_EMAC_TPQ             ( ( AT91_REG * ) 0xFFFDC0BC ) /* (EMAC) Transmit Pause Quantum Register */
#define AT91C_EMAC_MAN             ( ( AT91_REG * ) 0xFFFDC034 ) /* (EMAC) PHY Maintenance Register */
#define AT91C_EMAC_FTO             ( ( AT91_REG * ) 0xFFFDC040 ) /* (EMAC) Frames Transmitted OK Register */
#define AT91C_EMAC_REV             ( ( AT91_REG * ) 0xFFFDC0FC ) /* (EMAC) Revision Register */
#define AT91C_EMAC_IMR             ( ( AT91_REG * ) 0xFFFDC030 ) /* (EMAC) Interrupt Mask Register */
#define AT91C_EMAC_SCF             ( ( AT91_REG * ) 0xFFFDC044 ) /* (EMAC) Single Collision Frame Register */
#define AT91C_EMAC_PFR             ( ( AT91_REG * ) 0xFFFDC03C ) /* (EMAC) Pause Frames received Register */
#define AT91C_EMAC_MCF             ( ( AT91_REG * ) 0xFFFDC048 ) /* (EMAC) Multiple Collision Frame Register */
#define AT91C_EMAC_NSR             ( ( AT91_REG * ) 0xFFFDC008 ) /* (EMAC) Network Status Register */
#define AT91C_EMAC_SA2L            ( ( AT91_REG * ) 0xFFFDC0A0 ) /* (EMAC) Specific Address 2 Bottom, First 4 bytes */
#define AT91C_EMAC_FRO             ( ( AT91_REG * ) 0xFFFDC04C ) /* (EMAC) Frames Received OK Register */
#define AT91C_EMAC_IER             ( ( AT91_REG * ) 0xFFFDC028 ) /* (EMAC) Interrupt Enable Register */
#define AT91C_EMAC_SA1H            ( ( AT91_REG * ) 0xFFFDC09C ) /* (EMAC) Specific Address 1 Top, Last 2 bytes */
#define AT91C_EMAC_CSE             ( ( AT91_REG * ) 0xFFFDC068 ) /* (EMAC) Carrier Sense Error Register */
#define AT91C_EMAC_SA3H            ( ( AT91_REG * ) 0xFFFDC0AC ) /* (EMAC) Specific Address 3 Top, Last 2 bytes */
#define AT91C_EMAC_RRE             ( ( AT91_REG * ) 0xFFFDC06C ) /* (EMAC) Receive Ressource Error Register */
#define AT91C_EMAC_STE             ( ( AT91_REG * ) 0xFFFDC084 ) /* (EMAC) SQE Test Error Register */
/* ========== Register definition for PDC_ADC peripheral ========== */
#define AT91C_ADC_PTSR             ( ( AT91_REG * ) 0xFFFD8124 ) /* (PDC_ADC) PDC Transfer Status Register */
#define AT91C_ADC_PTCR             ( ( AT91_REG * ) 0xFFFD8120 ) /* (PDC_ADC) PDC Transfer Control Register */
#define AT91C_ADC_TNPR             ( ( AT91_REG * ) 0xFFFD8118 ) /* (PDC_ADC) Transmit Next Pointer Register */
#define AT91C_ADC_TNCR             ( ( AT91_REG * ) 0xFFFD811C ) /* (PDC_ADC) Transmit Next Counter Register */
#define AT91C_ADC_RNPR             ( ( AT91_REG * ) 0xFFFD8110 ) /* (PDC_ADC) Receive Next Pointer Register */
#define AT91C_ADC_RNCR             ( ( AT91_REG * ) 0xFFFD8114 ) /* (PDC_ADC) Receive Next Counter Register */
#define AT91C_ADC_RPR              ( ( AT91_REG * ) 0xFFFD8100 ) /* (PDC_ADC) Receive Pointer Register */
#define AT91C_ADC_TCR              ( ( AT91_REG * ) 0xFFFD810C ) /* (PDC_ADC) Transmit Counter Register */
#define AT91C_ADC_TPR              ( ( AT91_REG * ) 0xFFFD8108 ) /* (PDC_ADC) Transmit Pointer Register */
#define AT91C_ADC_RCR              ( ( AT91_REG * ) 0xFFFD8104 ) /* (PDC_ADC) Receive Counter Register */
/* ========== Register definition for ADC peripheral ========== */
#define AT91C_ADC_CDR2             ( ( AT91_REG * ) 0xFFFD8038 ) /* (ADC) ADC Channel Data Register 2 */
#define AT91C_ADC_CDR3             ( ( AT91_REG * ) 0xFFFD803C ) /* (ADC) ADC Channel Data Register 3 */
#define AT91C_ADC_CDR0             ( ( AT91_REG * ) 0xFFFD8030 ) /* (ADC) ADC Channel Data Register 0 */
#define AT91C_ADC_CDR5             ( ( AT91_REG * ) 0xFFFD8044 ) /* (ADC) ADC Channel Data Register 5 */
#define AT91C_ADC_CHDR             ( ( AT91_REG * ) 0xFFFD8014 ) /* (ADC) ADC Channel Disable Register */
#define AT91C_ADC_SR               ( ( AT91_REG * ) 0xFFFD801C ) /* (ADC) ADC Status Register */
#define AT91C_ADC_CDR4             ( ( AT91_REG * ) 0xFFFD8040 ) /* (ADC) ADC Channel Data Register 4 */
#define AT91C_ADC_CDR1             ( ( AT91_REG * ) 0xFFFD8034 ) /* (ADC) ADC Channel Data Register 1 */
#define AT91C_ADC_LCDR             ( ( AT91_REG * ) 0xFFFD8020 ) /* (ADC) ADC Last Converted Data Register */
#define AT91C_ADC_IDR              ( ( AT91_REG * ) 0xFFFD8028 ) /* (ADC) ADC Interrupt Disable Register */
#define AT91C_ADC_CR               ( ( AT91_REG * ) 0xFFFD8000 ) /* (ADC) ADC Control Register */
#define AT91C_ADC_CDR7             ( ( AT91_REG * ) 0xFFFD804C ) /* (ADC) ADC Channel Data Register 7 */
#define AT91C_ADC_CDR6             ( ( AT91_REG * ) 0xFFFD8048 ) /* (ADC) ADC Channel Data Register 6 */
#define AT91C_ADC_IER              ( ( AT91_REG * ) 0xFFFD8024 ) /* (ADC) ADC Interrupt Enable Register */
#define AT91C_ADC_CHER             ( ( AT91_REG * ) 0xFFFD8010 ) /* (ADC) ADC Channel Enable Register */
#define AT91C_ADC_CHSR             ( ( AT91_REG * ) 0xFFFD8018 ) /* (ADC) ADC Channel Status Register */
#define AT91C_ADC_MR               ( ( AT91_REG * ) 0xFFFD8004 ) /* (ADC) ADC Mode Register */
#define AT91C_ADC_IMR              ( ( AT91_REG * ) 0xFFFD802C ) /* (ADC) ADC Interrupt Mask Register */
/* ========== Register definition for PDC_AES peripheral ========== */
#define AT91C_AES_TPR              ( ( AT91_REG * ) 0xFFFA4108 ) /* (PDC_AES) Transmit Pointer Register */
#define AT91C_AES_PTCR             ( ( AT91_REG * ) 0xFFFA4120 ) /* (PDC_AES) PDC Transfer Control Register */
#define AT91C_AES_RNPR             ( ( AT91_REG * ) 0xFFFA4110 ) /* (PDC_AES) Receive Next Pointer Register */
#define AT91C_AES_TNCR             ( ( AT91_REG * ) 0xFFFA411C ) /* (PDC_AES) Transmit Next Counter Register */
#define AT91C_AES_TCR              ( ( AT91_REG * ) 0xFFFA410C ) /* (PDC_AES) Transmit Counter Register */
#define AT91C_AES_RCR              ( ( AT91_REG * ) 0xFFFA4104 ) /* (PDC_AES) Receive Counter Register */
#define AT91C_AES_RNCR             ( ( AT91_REG * ) 0xFFFA4114 ) /* (PDC_AES) Receive Next Counter Register */
#define AT91C_AES_TNPR             ( ( AT91_REG * ) 0xFFFA4118 ) /* (PDC_AES) Transmit Next Pointer Register */
#define AT91C_AES_RPR              ( ( AT91_REG * ) 0xFFFA4100 ) /* (PDC_AES) Receive Pointer Register */
#define AT91C_AES_PTSR             ( ( AT91_REG * ) 0xFFFA4124 ) /* (PDC_AES) PDC Transfer Status Register */
/* ========== Register definition for AES peripheral ========== */
#define AT91C_AES_IVxR             ( ( AT91_REG * ) 0xFFFA4060 ) /* (AES) Initialization Vector x Register */
#define AT91C_AES_MR               ( ( AT91_REG * ) 0xFFFA4004 ) /* (AES) Mode Register */
#define AT91C_AES_VR               ( ( AT91_REG * ) 0xFFFA40FC ) /* (AES) AES Version Register */
#define AT91C_AES_ODATAxR          ( ( AT91_REG * ) 0xFFFA4050 ) /* (AES) Output Data x Register */
#define AT91C_AES_IDATAxR          ( ( AT91_REG * ) 0xFFFA4040 ) /* (AES) Input Data x Register */
#define AT91C_AES_CR               ( ( AT91_REG * ) 0xFFFA4000 ) /* (AES) Control Register */
#define AT91C_AES_IDR              ( ( AT91_REG * ) 0xFFFA4014 ) /* (AES) Interrupt Disable Register */
#define AT91C_AES_IMR              ( ( AT91_REG * ) 0xFFFA4018 ) /* (AES) Interrupt Mask Register */
#define AT91C_AES_IER              ( ( AT91_REG * ) 0xFFFA4010 ) /* (AES) Interrupt Enable Register */
#define AT91C_AES_KEYWxR           ( ( AT91_REG * ) 0xFFFA4020 ) /* (AES) Key Word x Register */
#define AT91C_AES_ISR              ( ( AT91_REG * ) 0xFFFA401C ) /* (AES) Interrupt Status Register */
/* ========== Register definition for PDC_TDES peripheral ========== */
#define AT91C_TDES_RNCR            ( ( AT91_REG * ) 0xFFFA8114 ) /* (PDC_TDES) Receive Next Counter Register */
#define AT91C_TDES_TCR             ( ( AT91_REG * ) 0xFFFA810C ) /* (PDC_TDES) Transmit Counter Register */
#define AT91C_TDES_RCR             ( ( AT91_REG * ) 0xFFFA8104 ) /* (PDC_TDES) Receive Counter Register */
#define AT91C_TDES_TNPR            ( ( AT91_REG * ) 0xFFFA8118 ) /* (PDC_TDES) Transmit Next Pointer Register */
#define AT91C_TDES_RNPR            ( ( AT91_REG * ) 0xFFFA8110 ) /* (PDC_TDES) Receive Next Pointer Register */
#define AT91C_TDES_RPR             ( ( AT91_REG * ) 0xFFFA8100 ) /* (PDC_TDES) Receive Pointer Register */
#define AT91C_TDES_TNCR            ( ( AT91_REG * ) 0xFFFA811C ) /* (PDC_TDES) Transmit Next Counter Register */
#define AT91C_TDES_TPR             ( ( AT91_REG * ) 0xFFFA8108 ) /* (PDC_TDES) Transmit Pointer Register */
#define AT91C_TDES_PTSR            ( ( AT91_REG * ) 0xFFFA8124 ) /* (PDC_TDES) PDC Transfer Status Register */
#define AT91C_TDES_PTCR            ( ( AT91_REG * ) 0xFFFA8120 ) /* (PDC_TDES) PDC Transfer Control Register */
/* ========== Register definition for TDES peripheral ========== */
#define AT91C_TDES_KEY2WxR         ( ( AT91_REG * ) 0xFFFA8028 ) /* (TDES) Key 2 Word x Register */
#define AT91C_TDES_KEY3WxR         ( ( AT91_REG * ) 0xFFFA8030 ) /* (TDES) Key 3 Word x Register */
#define AT91C_TDES_IDR             ( ( AT91_REG * ) 0xFFFA8014 ) /* (TDES) Interrupt Disable Register */
#define AT91C_TDES_VR              ( ( AT91_REG * ) 0xFFFA80FC ) /* (TDES) TDES Version Register */
#define AT91C_TDES_IVxR            ( ( AT91_REG * ) 0xFFFA8060 ) /* (TDES) Initialization Vector x Register */
#define AT91C_TDES_ODATAxR         ( ( AT91_REG * ) 0xFFFA8050 ) /* (TDES) Output Data x Register */
#define AT91C_TDES_IMR             ( ( AT91_REG * ) 0xFFFA8018 ) /* (TDES) Interrupt Mask Register */
#define AT91C_TDES_MR              ( ( AT91_REG * ) 0xFFFA8004 ) /* (TDES) Mode Register */
#define AT91C_TDES_CR              ( ( AT91_REG * ) 0xFFFA8000 ) /* (TDES) Control Register */
#define AT91C_TDES_IER             ( ( AT91_REG * ) 0xFFFA8010 ) /* (TDES) Interrupt Enable Register */
#define AT91C_TDES_ISR             ( ( AT91_REG * ) 0xFFFA801C ) /* (TDES) Interrupt Status Register */
#define AT91C_TDES_IDATAxR         ( ( AT91_REG * ) 0xFFFA8040 ) /* (TDES) Input Data x Register */
#define AT91C_TDES_KEY1WxR         ( ( AT91_REG * ) 0xFFFA8020 ) /* (TDES) Key 1 Word x Register */

/* ***************************************************************************** */
/*               PIO DEFINITIONS FOR AT91SAM7X256 */
/* ***************************************************************************** */
#define AT91C_PIO_PA0             ( ( unsigned int ) 1 << 0 )         /* Pin Controlled by PA0 */
#define AT91C_PA0_RXD0            ( ( unsigned int ) AT91C_PIO_PA0 )  /*  USART 0 Receive Data */
#define AT91C_PIO_PA1             ( ( unsigned int ) 1 << 1 )         /* Pin Controlled by PA1 */
#define AT91C_PA1_TXD0            ( ( unsigned int ) AT91C_PIO_PA1 )  /*  USART 0 Transmit Data */
#define AT91C_PIO_PA10            ( ( unsigned int ) 1 << 10 )        /* Pin Controlled by PA10 */
#define AT91C_PA10_TWD            ( ( unsigned int ) AT91C_PIO_PA10 ) /*  TWI Two-wire Serial Data */
#define AT91C_PIO_PA11            ( ( unsigned int ) 1 << 11 )        /* Pin Controlled by PA11 */
#define AT91C_PA11_TWCK           ( ( unsigned int ) AT91C_PIO_PA11 ) /*  TWI Two-wire Serial Clock */
#define AT91C_PIO_PA12            ( ( unsigned int ) 1 << 12 )        /* Pin Controlled by PA12 */
#define AT91C_PA12_NPCS00         ( ( unsigned int ) AT91C_PIO_PA12 ) /*  SPI 0 Peripheral Chip Select 0 */
#define AT91C_PIO_PA13            ( ( unsigned int ) 1 << 13 )        /* Pin Controlled by PA13 */
#define AT91C_PA13_NPCS01         ( ( unsigned int ) AT91C_PIO_PA13 ) /*  SPI 0 Peripheral Chip Select 1 */
#define AT91C_PA13_PCK1           ( ( unsigned int ) AT91C_PIO_PA13 ) /*  PMC Programmable Clock Output 1 */
#define AT91C_PIO_PA14            ( ( unsigned int ) 1 << 14 )        /* Pin Controlled by PA14 */
#define AT91C_PA14_NPCS02         ( ( unsigned int ) AT91C_PIO_PA14 ) /*  SPI 0 Peripheral Chip Select 2 */
#define AT91C_PA14_IRQ1           ( ( unsigned int ) AT91C_PIO_PA14 ) /*  External Interrupt 1 */
#define AT91C_PIO_PA15            ( ( unsigned int ) 1 << 15 )        /* Pin Controlled by PA15 */
#define AT91C_PA15_NPCS03         ( ( unsigned int ) AT91C_PIO_PA15 ) /*  SPI 0 Peripheral Chip Select 3 */
#define AT91C_PA15_TCLK2          ( ( unsigned int ) AT91C_PIO_PA15 ) /*  Timer Counter 2 external clock input */
#define AT91C_PIO_PA16            ( ( unsigned int ) 1 << 16 )        /* Pin Controlled by PA16 */
#define AT91C_PA16_MISO0          ( ( unsigned int ) AT91C_PIO_PA16 ) /*  SPI 0 Master In Slave */
#define AT91C_PIO_PA17            ( ( unsigned int ) 1 << 17 )        /* Pin Controlled by PA17 */
#define AT91C_PA17_MOSI0          ( ( unsigned int ) AT91C_PIO_PA17 ) /*  SPI 0 Master Out Slave */
#define AT91C_PIO_PA18            ( ( unsigned int ) 1 << 18 )        /* Pin Controlled by PA18 */
#define AT91C_PA18_SPCK0          ( ( unsigned int ) AT91C_PIO_PA18 ) /*  SPI 0 Serial Clock */
#define AT91C_PIO_PA19            ( ( unsigned int ) 1 << 19 )        /* Pin Controlled by PA19 */
#define AT91C_PA19_CANRX          ( ( unsigned int ) AT91C_PIO_PA19 ) /*  CAN Receive */
#define AT91C_PIO_PA2             ( ( unsigned int ) 1 << 2 )         /* Pin Controlled by PA2 */
#define AT91C_PA2_SCK0            ( ( unsigned int ) AT91C_PIO_PA2 )  /*  USART 0 Serial Clock */
#define AT91C_PA2_NPCS11          ( ( unsigned int ) AT91C_PIO_PA2 )  /*  SPI 1 Peripheral Chip Select 1 */
#define AT91C_PIO_PA20            ( ( unsigned int ) 1 << 20 )        /* Pin Controlled by PA20 */
#define AT91C_PA20_CANTX          ( ( unsigned int ) AT91C_PIO_PA20 ) /*  CAN Transmit */
#define AT91C_PIO_PA21            ( ( unsigned int ) 1 << 21 )        /* Pin Controlled by PA21 */
#define AT91C_PA21_TF             ( ( unsigned int ) AT91C_PIO_PA21 ) /*  SSC Transmit Frame Sync */
#define AT91C_PA21_NPCS10         ( ( unsigned int ) AT91C_PIO_PA21 ) /*  SPI 1 Peripheral Chip Select 0 */
#define AT91C_PIO_PA22            ( ( unsigned int ) 1 << 22 )        /* Pin Controlled by PA22 */
#define AT91C_PA22_TK             ( ( unsigned int ) AT91C_PIO_PA22 ) /*  SSC Transmit Clock */
#define AT91C_PA22_SPCK1          ( ( unsigned int ) AT91C_PIO_PA22 ) /*  SPI 1 Serial Clock */
#define AT91C_PIO_PA23            ( ( unsigned int ) 1 << 23 )        /* Pin Controlled by PA23 */
#define AT91C_PA23_TD             ( ( unsigned int ) AT91C_PIO_PA23 ) /*  SSC Transmit data */
#define AT91C_PA23_MOSI1          ( ( unsigned int ) AT91C_PIO_PA23 ) /*  SPI 1 Master Out Slave */
#define AT91C_PIO_PA24            ( ( unsigned int ) 1 << 24 )        /* Pin Controlled by PA24 */
#define AT91C_PA24_RD             ( ( unsigned int ) AT91C_PIO_PA24 ) /*  SSC Receive Data */
#define AT91C_PA24_MISO1          ( ( unsigned int ) AT91C_PIO_PA24 ) /*  SPI 1 Master In Slave */
#define AT91C_PIO_PA25            ( ( unsigned int ) 1 << 25 )        /* Pin Controlled by PA25 */
#define AT91C_PA25_RK             ( ( unsigned int ) AT91C_PIO_PA25 ) /*  SSC Receive Clock */
#define AT91C_PA25_NPCS11         ( ( unsigned int ) AT91C_PIO_PA25 ) /*  SPI 1 Peripheral Chip Select 1 */
#define AT91C_PIO_PA26            ( ( unsigned int ) 1 << 26 )        /* Pin Controlled by PA26 */
#define AT91C_PA26_RF             ( ( unsigned int ) AT91C_PIO_PA26 ) /*  SSC Receive Frame Sync */
#define AT91C_PA26_NPCS12         ( ( unsigned int ) AT91C_PIO_PA26 ) /*  SPI 1 Peripheral Chip Select 2 */
#define AT91C_PIO_PA27            ( ( unsigned int ) 1 << 27 )        /* Pin Controlled by PA27 */
#define AT91C_PA27_DRXD           ( ( unsigned int ) AT91C_PIO_PA27 ) /*  DBGU Debug Receive Data */
#define AT91C_PA27_PCK3           ( ( unsigned int ) AT91C_PIO_PA27 ) /*  PMC Programmable Clock Output 3 */
#define AT91C_PIO_PA28            ( ( unsigned int ) 1 << 28 )        /* Pin Controlled by PA28 */
#define AT91C_PA28_DTXD           ( ( unsigned int ) AT91C_PIO_PA28 ) /*  DBGU Debug Transmit Data */
#define AT91C_PIO_PA29            ( ( unsigned int ) 1 << 29 )        /* Pin Controlled by PA29 */
#define AT91C_PA29_FIQ            ( ( unsigned int ) AT91C_PIO_PA29 ) /*  AIC Fast Interrupt Input */
#define AT91C_PA29_NPCS13         ( ( unsigned int ) AT91C_PIO_PA29 ) /*  SPI 1 Peripheral Chip Select 3 */
#define AT91C_PIO_PA3             ( ( unsigned int ) 1 << 3 )         /* Pin Controlled by PA3 */
#define AT91C_PA3_RTS0            ( ( unsigned int ) AT91C_PIO_PA3 )  /*  USART 0 Ready To Send */
#define AT91C_PA3_NPCS12          ( ( unsigned int ) AT91C_PIO_PA3 )  /*  SPI 1 Peripheral Chip Select 2 */
#define AT91C_PIO_PA30            ( ( unsigned int ) 1 << 30 )        /* Pin Controlled by PA30 */
#define AT91C_PA30_IRQ0           ( ( unsigned int ) AT91C_PIO_PA30 ) /*  External Interrupt 0 */
#define AT91C_PA30_PCK2           ( ( unsigned int ) AT91C_PIO_PA30 ) /*  PMC Programmable Clock Output 2 */
#define AT91C_PIO_PA4             ( ( unsigned int ) 1 << 4 )         /* Pin Controlled by PA4 */
#define AT91C_PA4_CTS0            ( ( unsigned int ) AT91C_PIO_PA4 )  /*  USART 0 Clear To Send */
#define AT91C_PA4_NPCS13          ( ( unsigned int ) AT91C_PIO_PA4 )  /*  SPI 1 Peripheral Chip Select 3 */
#define AT91C_PIO_PA5             ( ( unsigned int ) 1 << 5 )         /* Pin Controlled by PA5 */
#define AT91C_PA5_RXD1            ( ( unsigned int ) AT91C_PIO_PA5 )  /*  USART 1 Receive Data */
#define AT91C_PIO_PA6             ( ( unsigned int ) 1 << 6 )         /* Pin Controlled by PA6 */
#define AT91C_PA6_TXD1            ( ( unsigned int ) AT91C_PIO_PA6 )  /*  USART 1 Transmit Data */
#define AT91C_PIO_PA7             ( ( unsigned int ) 1 << 7 )         /* Pin Controlled by PA7 */
#define AT91C_PA7_SCK1            ( ( unsigned int ) AT91C_PIO_PA7 )  /*  USART 1 Serial Clock */
#define AT91C_PA7_NPCS01          ( ( unsigned int ) AT91C_PIO_PA7 )  /*  SPI 0 Peripheral Chip Select 1 */
#define AT91C_PIO_PA8             ( ( unsigned int ) 1 << 8 )         /* Pin Controlled by PA8 */
#define AT91C_PA8_RTS1            ( ( unsigned int ) AT91C_PIO_PA8 )  /*  USART 1 Ready To Send */
#define AT91C_PA8_NPCS02          ( ( unsigned int ) AT91C_PIO_PA8 )  /*  SPI 0 Peripheral Chip Select 2 */
#define AT91C_PIO_PA9             ( ( unsigned int ) 1 << 9 )         /* Pin Controlled by PA9 */
#define AT91C_PA9_CTS1            ( ( unsigned int ) AT91C_PIO_PA9 )  /*  USART 1 Clear To Send */
#define AT91C_PA9_NPCS03          ( ( unsigned int ) AT91C_PIO_PA9 )  /*  SPI 0 Peripheral Chip Select 3 */
#define AT91C_PIO_PB0             ( ( unsigned int ) 1 << 0 )         /* Pin Controlled by PB0 */
#define AT91C_PB0_ETXCK_EREFCK    ( ( unsigned int ) AT91C_PIO_PB0 )  /*  Ethernet MAC Transmit Clock/Reference Clock */
#define AT91C_PB0_PCK0            ( ( unsigned int ) AT91C_PIO_PB0 )  /*  PMC Programmable Clock Output 0 */
#define AT91C_PIO_PB1             ( ( unsigned int ) 1 << 1 )         /* Pin Controlled by PB1 */
#define AT91C_PB1_ETXEN           ( ( unsigned int ) AT91C_PIO_PB1 )  /*  Ethernet MAC Transmit Enable */
#define AT91C_PIO_PB10            ( ( unsigned int ) 1 << 10 )        /* Pin Controlled by PB10 */
#define AT91C_PB10_ETX2           ( ( unsigned int ) AT91C_PIO_PB10 ) /*  Ethernet MAC Transmit Data 2 */
#define AT91C_PB10_NPCS11         ( ( unsigned int ) AT91C_PIO_PB10 ) /*  SPI 1 Peripheral Chip Select 1 */
#define AT91C_PIO_PB11            ( ( unsigned int ) 1 << 11 )        /* Pin Controlled by PB11 */
#define AT91C_PB11_ETX3           ( ( unsigned int ) AT91C_PIO_PB11 ) /*  Ethernet MAC Transmit Data 3 */
#define AT91C_PB11_NPCS12         ( ( unsigned int ) AT91C_PIO_PB11 ) /*  SPI 1 Peripheral Chip Select 2 */
#define AT91C_PIO_PB12            ( ( unsigned int ) 1 << 12 )        /* Pin Controlled by PB12 */
#define AT91C_PB12_ETXER          ( ( unsigned int ) AT91C_PIO_PB12 ) /*  Ethernet MAC Transmikt Coding Error */
#define AT91C_PB12_TCLK0          ( ( unsigned int ) AT91C_PIO_PB12 ) /*  Timer Counter 0 external clock input */
#define AT91C_PIO_PB13            ( ( unsigned int ) 1 << 13 )        /* Pin Controlled by PB13 */
#define AT91C_PB13_ERX2           ( ( unsigned int ) AT91C_PIO_PB13 ) /*  Ethernet MAC Receive Data 2 */
#define AT91C_PB13_NPCS01         ( ( unsigned int ) AT91C_PIO_PB13 ) /*  SPI 0 Peripheral Chip Select 1 */
#define AT91C_PIO_PB14            ( ( unsigned int ) 1 << 14 )        /* Pin Controlled by PB14 */
#define AT91C_PB14_ERX3           ( ( unsigned int ) AT91C_PIO_PB14 ) /*  Ethernet MAC Receive Data 3 */
#define AT91C_PB14_NPCS02         ( ( unsigned int ) AT91C_PIO_PB14 ) /*  SPI 0 Peripheral Chip Select 2 */
#define AT91C_PIO_PB15            ( ( unsigned int ) 1 << 15 )        /* Pin Controlled by PB15 */
#define AT91C_PB15_ERXDV          ( ( unsigned int ) AT91C_PIO_PB15 ) /*  Ethernet MAC Receive Data Valid */
#define AT91C_PIO_PB16            ( ( unsigned int ) 1 << 16 )        /* Pin Controlled by PB16 */
#define AT91C_PB16_ECOL           ( ( unsigned int ) AT91C_PIO_PB16 ) /*  Ethernet MAC Collision Detected */
#define AT91C_PB16_NPCS13         ( ( unsigned int ) AT91C_PIO_PB16 ) /*  SPI 1 Peripheral Chip Select 3 */
#define AT91C_PIO_PB17            ( ( unsigned int ) 1 << 17 )        /* Pin Controlled by PB17 */
#define AT91C_PB17_ERXCK          ( ( unsigned int ) AT91C_PIO_PB17 ) /*  Ethernet MAC Receive Clock */
#define AT91C_PB17_NPCS03         ( ( unsigned int ) AT91C_PIO_PB17 ) /*  SPI 0 Peripheral Chip Select 3 */
#define AT91C_PIO_PB18            ( ( unsigned int ) 1 << 18 )        /* Pin Controlled by PB18 */
#define AT91C_PB18_EF100          ( ( unsigned int ) AT91C_PIO_PB18 ) /*  Ethernet MAC Force 100 Mbits/sec */
#define AT91C_PB18_ADTRG          ( ( unsigned int ) AT91C_PIO_PB18 ) /*  ADC External Trigger */
#define AT91C_PIO_PB19            ( ( unsigned int ) 1 << 19 )        /* Pin Controlled by PB19 */
#define AT91C_PB19_PWM0           ( ( unsigned int ) AT91C_PIO_PB19 ) /*  PWM Channel 0 */
#define AT91C_PB19_TCLK1          ( ( unsigned int ) AT91C_PIO_PB19 ) /*  Timer Counter 1 external clock input */
#define AT91C_PIO_PB2             ( ( unsigned int ) 1 << 2 )         /* Pin Controlled by PB2 */
#define AT91C_PB2_ETX0            ( ( unsigned int ) AT91C_PIO_PB2 )  /*  Ethernet MAC Transmit Data 0 */
#define AT91C_PIO_PB20            ( ( unsigned int ) 1 << 20 )        /* Pin Controlled by PB20 */
#define AT91C_PB20_PWM1           ( ( unsigned int ) AT91C_PIO_PB20 ) /*  PWM Channel 1 */
#define AT91C_PB20_PCK0           ( ( unsigned int ) AT91C_PIO_PB20 ) /*  PMC Programmable Clock Output 0 */
#define AT91C_PIO_PB21            ( ( unsigned int ) 1 << 21 )        /* Pin Controlled by PB21 */
#define AT91C_PB21_PWM2           ( ( unsigned int ) AT91C_PIO_PB21 ) /*  PWM Channel 2 */
#define AT91C_PB21_PCK1           ( ( unsigned int ) AT91C_PIO_PB21 ) /*  PMC Programmable Clock Output 1 */
#define AT91C_PIO_PB22            ( ( unsigned int ) 1 << 22 )        /* Pin Controlled by PB22 */
#define AT91C_PB22_PWM3           ( ( unsigned int ) AT91C_PIO_PB22 ) /*  PWM Channel 3 */
#define AT91C_PB22_PCK2           ( ( unsigned int ) AT91C_PIO_PB22 ) /*  PMC Programmable Clock Output 2 */
#define AT91C_PIO_PB23            ( ( unsigned int ) 1 << 23 )        /* Pin Controlled by PB23 */
#define AT91C_PB23_TIOA0          ( ( unsigned int ) AT91C_PIO_PB23 ) /*  Timer Counter 0 Multipurpose Timer I/O Pin A */
#define AT91C_PB23_DCD1           ( ( unsigned int ) AT91C_PIO_PB23 ) /*  USART 1 Data Carrier Detect */
#define AT91C_PIO_PB24            ( ( unsigned int ) 1 << 24 )        /* Pin Controlled by PB24 */
#define AT91C_PB24_TIOB0          ( ( unsigned int ) AT91C_PIO_PB24 ) /*  Timer Counter 0 Multipurpose Timer I/O Pin B */
#define AT91C_PB24_DSR1           ( ( unsigned int ) AT91C_PIO_PB24 ) /*  USART 1 Data Set ready */
#define AT91C_PIO_PB25            ( ( unsigned int ) 1 << 25 )        /* Pin Controlled by PB25 */
#define AT91C_PB25_TIOA1          ( ( unsigned int ) AT91C_PIO_PB25 ) /*  Timer Counter 1 Multipurpose Timer I/O Pin A */
#define AT91C_PB25_DTR1           ( ( unsigned int ) AT91C_PIO_PB25 ) /*  USART 1 Data Terminal ready */
#define AT91C_PIO_PB26            ( ( unsigned int ) 1 << 26 )        /* Pin Controlled by PB26 */
#define AT91C_PB26_TIOB1          ( ( unsigned int ) AT91C_PIO_PB26 ) /*  Timer Counter 1 Multipurpose Timer I/O Pin B */
#define AT91C_PB26_RI1            ( ( unsigned int ) AT91C_PIO_PB26 ) /*  USART 1 Ring Indicator */
#define AT91C_PIO_PB27            ( ( unsigned int ) 1 << 27 )        /* Pin Controlled by PB27 */
#define AT91C_PB27_TIOA2          ( ( unsigned int ) AT91C_PIO_PB27 ) /*  Timer Counter 2 Multipurpose Timer I/O Pin A */
#define AT91C_PB27_PWM0           ( ( unsigned int ) AT91C_PIO_PB27 ) /*  PWM Channel 0 */
#define AT91C_PIO_PB28            ( ( unsigned int ) 1 << 28 )        /* Pin Controlled by PB28 */
#define AT91C_PB28_TIOB2          ( ( unsigned int ) AT91C_PIO_PB28 ) /*  Timer Counter 2 Multipurpose Timer I/O Pin B */
#define AT91C_PB28_PWM1           ( ( unsigned int ) AT91C_PIO_PB28 ) /*  PWM Channel 1 */
#define AT91C_PIO_PB29            ( ( unsigned int ) 1 << 29 )        /* Pin Controlled by PB29 */
#define AT91C_PB29_PCK1           ( ( unsigned int ) AT91C_PIO_PB29 ) /*  PMC Programmable Clock Output 1 */
#define AT91C_PB29_PWM2           ( ( unsigned int ) AT91C_PIO_PB29 ) /*  PWM Channel 2 */
#define AT91C_PIO_PB3             ( ( unsigned int ) 1 << 3 )         /* Pin Controlled by PB3 */
#define AT91C_PB3_ETX1            ( ( unsigned int ) AT91C_PIO_PB3 )  /*  Ethernet MAC Transmit Data 1 */
#define AT91C_PIO_PB30            ( ( unsigned int ) 1 << 30 )        /* Pin Controlled by PB30 */
#define AT91C_PB30_PCK2           ( ( unsigned int ) AT91C_PIO_PB30 ) /*  PMC Programmable Clock Output 2 */
#define AT91C_PB30_PWM3           ( ( unsigned int ) AT91C_PIO_PB30 ) /*  PWM Channel 3 */
#define AT91C_PIO_PB4             ( ( unsigned int ) 1 << 4 )         /* Pin Controlled by PB4 */
#define AT91C_PB4_ECRS_ECRSDV     ( ( unsigned int ) AT91C_PIO_PB4 )  /*  Ethernet MAC Carrier Sense/Carrier Sense and Data Valid */
#define AT91C_PIO_PB5             ( ( unsigned int ) 1 << 5 )         /* Pin Controlled by PB5 */
#define AT91C_PB5_ERX0            ( ( unsigned int ) AT91C_PIO_PB5 )  /*  Ethernet MAC Receive Data 0 */
#define AT91C_PIO_PB6             ( ( unsigned int ) 1 << 6 )         /* Pin Controlled by PB6 */
#define AT91C_PB6_ERX1            ( ( unsigned int ) AT91C_PIO_PB6 )  /*  Ethernet MAC Receive Data 1 */
#define AT91C_PIO_PB7             ( ( unsigned int ) 1 << 7 )         /* Pin Controlled by PB7 */
#define AT91C_PB7_ERXER           ( ( unsigned int ) AT91C_PIO_PB7 )  /*  Ethernet MAC Receive Error */
#define AT91C_PIO_PB8             ( ( unsigned int ) 1 << 8 )         /* Pin Controlled by PB8 */
#define AT91C_PB8_EMDC            ( ( unsigned int ) AT91C_PIO_PB8 )  /*  Ethernet MAC Management Data Clock */
#define AT91C_PIO_PB9             ( ( unsigned int ) 1 << 9 )         /* Pin Controlled by PB9 */
#define AT91C_PB9_EMDIO           ( ( unsigned int ) AT91C_PIO_PB9 )  /*  Ethernet MAC Management Data Input/Output */

/* ***************************************************************************** */
/*               PERIPHERAL ID DEFINITIONS FOR AT91SAM7X256 */
/* ***************************************************************************** */
#define AT91C_ID_FIQ            ( ( unsigned int ) 0 )  /* Advanced Interrupt Controller (FIQ) */
#define AT91C_ID_SYS            ( ( unsigned int ) 1 )  /* System Peripheral */
#define AT91C_ID_PIOA           ( ( unsigned int ) 2 )  /* Parallel IO Controller A */
#define AT91C_ID_PIOB           ( ( unsigned int ) 3 )  /* Parallel IO Controller B */
#define AT91C_ID_SPI0           ( ( unsigned int ) 4 )  /* Serial Peripheral Interface 0 */
#define AT91C_ID_SPI1           ( ( unsigned int ) 5 )  /* Serial Peripheral Interface 1 */
#define AT91C_ID_US0            ( ( unsigned int ) 6 )  /* USART 0 */
#define AT91C_ID_US1            ( ( unsigned int ) 7 )  /* USART 1 */
#define AT91C_ID_SSC            ( ( unsigned int ) 8 )  /* Serial Synchronous Controller */
#define AT91C_ID_TWI            ( ( unsigned int ) 9 )  /* Two-Wire Interface */
#define AT91C_ID_PWMC           ( ( unsigned int ) 10 ) /* PWM Controller */
#define AT91C_ID_UDP            ( ( unsigned int ) 11 ) /* USB Device Port */
#define AT91C_ID_TC0            ( ( unsigned int ) 12 ) /* Timer Counter 0 */
#define AT91C_ID_TC1            ( ( unsigned int ) 13 ) /* Timer Counter 1 */
#define AT91C_ID_TC2            ( ( unsigned int ) 14 ) /* Timer Counter 2 */
#define AT91C_ID_CAN            ( ( unsigned int ) 15 ) /* Control Area Network Controller */
#define AT91C_ID_EMAC           ( ( unsigned int ) 16 ) /* Ethernet MAC */
#define AT91C_ID_ADC            ( ( unsigned int ) 17 ) /* Analog-to-Digital Converter */
#define AT91C_ID_AES            ( ( unsigned int ) 18 ) /* Advanced Encryption Standard 128-bit */
#define AT91C_ID_TDES           ( ( unsigned int ) 19 ) /* Triple Data Encryption Standard */
#define AT91C_ID_20_Reserved    ( ( unsigned int ) 20 ) /* Reserved */
#define AT91C_ID_21_Reserved    ( ( unsigned int ) 21 ) /* Reserved */
#define AT91C_ID_22_Reserved    ( ( unsigned int ) 22 ) /* Reserved */
#define AT91C_ID_23_Reserved    ( ( unsigned int ) 23 ) /* Reserved */
#define AT91C_ID_24_Reserved    ( ( unsigned int ) 24 ) /* Reserved */
#define AT91C_ID_25_Reserved    ( ( unsigned int ) 25 ) /* Reserved */
#define AT91C_ID_26_Reserved    ( ( unsigned int ) 26 ) /* Reserved */
#define AT91C_ID_27_Reserved    ( ( unsigned int ) 27 ) /* Reserved */
#define AT91C_ID_28_Reserved    ( ( unsigned int ) 28 ) /* Reserved */
#define AT91C_ID_29_Reserved    ( ( unsigned int ) 29 ) /* Reserved */
#define AT91C_ID_IRQ0           ( ( unsigned int ) 30 ) /* Advanced Interrupt Controller (IRQ0) */
#define AT91C_ID_IRQ1           ( ( unsigned int ) 31 ) /* Advanced Interrupt Controller (IRQ1) */

/* ***************************************************************************** */
/*               BASE ADDRESS DEFINITIONS FOR AT91SAM7X256 */
/* ***************************************************************************** */
#define AT91C_BASE_SYS         ( ( AT91PS_SYS ) 0xFFFFF000 )     /* (SYS) Base Address */
#define AT91C_BASE_AIC         ( ( AT91PS_AIC ) 0xFFFFF000 )     /* (AIC) Base Address */
#define AT91C_BASE_PDC_DBGU    ( ( AT91PS_PDC ) 0xFFFFF300 )     /* (PDC_DBGU) Base Address */
#define AT91C_BASE_DBGU        ( ( AT91PS_DBGU ) 0xFFFFF200 )    /* (DBGU) Base Address */
#define AT91C_BASE_PIOA        ( ( AT91PS_PIO ) 0xFFFFF400 )     /* (PIOA) Base Address */
#define AT91C_BASE_PIOB        ( ( AT91PS_PIO ) 0xFFFFF600 )     /* (PIOB) Base Address */
#define AT91C_BASE_CKGR        ( ( AT91PS_CKGR ) 0xFFFFFC20 )    /* (CKGR) Base Address */
#define AT91C_BASE_PMC         ( ( AT91PS_PMC ) 0xFFFFFC00 )     /* (PMC) Base Address */
#define AT91C_BASE_RSTC        ( ( AT91PS_RSTC ) 0xFFFFFD00 )    /* (RSTC) Base Address */
#define AT91C_BASE_RTTC        ( ( AT91PS_RTTC ) 0xFFFFFD20 )    /* (RTTC) Base Address */
#define AT91C_BASE_PITC        ( ( AT91PS_PITC ) 0xFFFFFD30 )    /* (PITC) Base Address */
#define AT91C_BASE_WDTC        ( ( AT91PS_WDTC ) 0xFFFFFD40 )    /* (WDTC) Base Address */
#define AT91C_BASE_VREG        ( ( AT91PS_VREG ) 0xFFFFFD60 )    /* (VREG) Base Address */
#define AT91C_BASE_MC          ( ( AT91PS_MC ) 0xFFFFFF00 )      /* (MC) Base Address */
#define AT91C_BASE_PDC_SPI1    ( ( AT91PS_PDC ) 0xFFFE4100 )     /* (PDC_SPI1) Base Address */
#define AT91C_BASE_SPI1        ( ( AT91PS_SPI ) 0xFFFE4000 )     /* (SPI1) Base Address */
#define AT91C_BASE_PDC_SPI0    ( ( AT91PS_PDC ) 0xFFFE0100 )     /* (PDC_SPI0) Base Address */
#define AT91C_BASE_SPI0        ( ( AT91PS_SPI ) 0xFFFE0000 )     /* (SPI0) Base Address */
#define AT91C_BASE_PDC_US1     ( ( AT91PS_PDC ) 0xFFFC4100 )     /* (PDC_US1) Base Address */
#define AT91C_BASE_US1         ( ( AT91PS_USART ) 0xFFFC4000 )   /* (US1) Base Address */
#define AT91C_BASE_PDC_US0     ( ( AT91PS_PDC ) 0xFFFC0100 )     /* (PDC_US0) Base Address */
#define AT91C_BASE_US0         ( ( AT91PS_USART ) 0xFFFC0000 )   /* (US0) Base Address */
#define AT91C_BASE_PDC_SSC     ( ( AT91PS_PDC ) 0xFFFD4100 )     /* (PDC_SSC) Base Address */
#define AT91C_BASE_SSC         ( ( AT91PS_SSC ) 0xFFFD4000 )     /* (SSC) Base Address */
#define AT91C_BASE_TWI         ( ( AT91PS_TWI ) 0xFFFB8000 )     /* (TWI) Base Address */
#define AT91C_BASE_PWMC_CH3    ( ( AT91PS_PWMC_CH ) 0xFFFCC260 ) /* (PWMC_CH3) Base Address */
#define AT91C_BASE_PWMC_CH2    ( ( AT91PS_PWMC_CH ) 0xFFFCC240 ) /* (PWMC_CH2) Base Address */
#define AT91C_BASE_PWMC_CH1    ( ( AT91PS_PWMC_CH ) 0xFFFCC220 ) /* (PWMC_CH1) Base Address */
#define AT91C_BASE_PWMC_CH0    ( ( AT91PS_PWMC_CH ) 0xFFFCC200 ) /* (PWMC_CH0) Base Address */
#define AT91C_BASE_PWMC        ( ( AT91PS_PWMC ) 0xFFFCC000 )    /* (PWMC) Base Address */
#define AT91C_BASE_UDP         ( ( AT91PS_UDP ) 0xFFFB0000 )     /* (UDP) Base Address */
#define AT91C_BASE_TC0         ( ( AT91PS_TC ) 0xFFFA0000 )      /* (TC0) Base Address */
#define AT91C_BASE_TC1         ( ( AT91PS_TC ) 0xFFFA0040 )      /* (TC1) Base Address */
#define AT91C_BASE_TC2         ( ( AT91PS_TC ) 0xFFFA0080 )      /* (TC2) Base Address */
#define AT91C_BASE_TCB         ( ( AT91PS_TCB ) 0xFFFA0000 )     /* (TCB) Base Address */
#define AT91C_BASE_CAN_MB0     ( ( AT91PS_CAN_MB ) 0xFFFD0200 )  /* (CAN_MB0) Base Address */
#define AT91C_BASE_CAN_MB1     ( ( AT91PS_CAN_MB ) 0xFFFD0220 )  /* (CAN_MB1) Base Address */
#define AT91C_BASE_CAN_MB2     ( ( AT91PS_CAN_MB ) 0xFFFD0240 )  /* (CAN_MB2) Base Address */
#define AT91C_BASE_CAN_MB3     ( ( AT91PS_CAN_MB ) 0xFFFD0260 )  /* (CAN_MB3) Base Address */
#define AT91C_BASE_CAN_MB4     ( ( AT91PS_CAN_MB ) 0xFFFD0280 )  /* (CAN_MB4) Base Address */
#define AT91C_BASE_CAN_MB5     ( ( AT91PS_CAN_MB ) 0xFFFD02A0 )  /* (CAN_MB5) Base Address */
#define AT91C_BASE_CAN_MB6     ( ( AT91PS_CAN_MB ) 0xFFFD02C0 )  /* (CAN_MB6) Base Address */
#define AT91C_BASE_CAN_MB7     ( ( AT91PS_CAN_MB ) 0xFFFD02E0 )  /* (CAN_MB7) Base Address */
#define AT91C_BASE_CAN         ( ( AT91PS_CAN ) 0xFFFD0000 )     /* (CAN) Base Address */
#define AT91C_BASE_EMAC        ( ( AT91PS_EMAC ) 0xFFFDC000 )    /* (EMAC) Base Address */
#define AT91C_BASE_PDC_ADC     ( ( AT91PS_PDC ) 0xFFFD8100 )     /* (PDC_ADC) Base Address */
#define AT91C_BASE_ADC         ( ( AT91PS_ADC ) 0xFFFD8000 )     /* (ADC) Base Address */
#define AT91C_BASE_PDC_AES     ( ( AT91PS_PDC ) 0xFFFA4100 )     /* (PDC_AES) Base Address */
#define AT91C_BASE_AES         ( ( AT91PS_AES ) 0xFFFA4000 )     /* (AES) Base Address */
#define AT91C_BASE_PDC_TDES    ( ( AT91PS_PDC ) 0xFFFA8100 )     /* (PDC_TDES) Base Address */
#define AT91C_BASE_TDES        ( ( AT91PS_TDES ) 0xFFFA8000 )    /* (TDES) Base Address */

/* ***************************************************************************** */
/*               MEMORY MAPPING DEFINITIONS FOR AT91SAM7X256 */
/* ***************************************************************************** */
#define AT91C_ISRAM          ( ( char * ) 0x00200000 )       /* Internal SRAM base address */
#define AT91C_ISRAM_SIZE     ( ( unsigned int ) 0x00010000 ) /* Internal SRAM size in byte (64 Kbyte) */
#define AT91C_IFLASH         ( ( char * ) 0x00100000 )       /* Internal ROM base address */
#define AT91C_IFLASH_SIZE    ( ( unsigned int ) 0x00040000 ) /* Internal ROM size in byte (256 Kbyte) */



/* - Hardware register definition */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR System Peripherals */
/* - ***************************************************************************** */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Advanced Interrupt Controller */
/* - ***************************************************************************** */
/* - -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- */
#if 0 /*_RB_*/
    AT91C_AIC_PRIOR EQU( 0x7 << 0 );
    - ( AIC ) Priority Level
        AT91C_AIC_PRIOR_LOWEST EQU( 0x0 );
    - ( AIC ) Lowest priority level
        AT91C_AIC_PRIOR_HIGHEST EQU( 0x7 );
    - ( AIC ) Highest priority level
        AT91C_AIC_SRCTYPE EQU( 0x3 << 5 );
    - ( AIC ) Interrupt Source Type
        AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL EQU( 0x0 << 5 );
    - ( AIC ) Internal Sources Code Label High - level Sensitive
        AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL EQU( 0x0 << 5 );
    - ( AIC ) External Sources Code Label Low - level Sensitive
        AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE EQU( 0x1 << 5 );
    - ( AIC ) Internal Sources Code Label Positive Edge triggered
        AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE EQU( 0x1 << 5 );
    - ( AIC ) External Sources Code Label Negative Edge triggered
        AT91C_AIC_SRCTYPE_HIGH_LEVEL EQU( 0x2 << 5 );
    - ( AIC ) Internal Or External Sources Code Label High - level Sensitive
        AT91C_AIC_SRCTYPE_POSITIVE_EDGE EQU( 0x3 << 5 );
    - ( AIC ) Internal Or External Sources Code Label Positive Edge triggered
/* - -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- */
        AT91C_AIC_NFIQ EQU( 0x1 << 0 );
    - ( AIC ) NFIQ Status
        AT91C_AIC_NIRQ EQU( 0x1 << 1 );
    - ( AIC ) NIRQ Status
/* - -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- */
        AT91C_AIC_DCR_PROT EQU( 0x1 << 0 );
    - ( AIC ) Protection Mode
        AT91C_AIC_DCR_GMSK EQU( 0x1 << 1 );
    - ( AIC ) General Mask
#endif /* if 0 */
/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Peripheral DMA Controller */
/* - ***************************************************************************** */
/* - -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- */
AT91C_PDC_RXTEN EQU( 0x1 << 0 );
- ( PDC ) Receiver Transfer Enable
    AT91C_PDC_RXTDIS EQU( 0x1 << 1 );
- ( PDC ) Receiver Transfer Disable
    AT91C_PDC_TXTEN EQU( 0x1 << 8 );
- ( PDC ) Transmitter Transfer Enable
    AT91C_PDC_TXTDIS EQU( 0x1 << 9 );
- ( PDC ) Transmitter Transfer Disable
/* - -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Debug Unit */
/* - ***************************************************************************** */
/* - -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- */
    AT91C_US_RSTRX EQU( 0x1 << 2 );
- ( DBGU ) Reset Receiver
    AT91C_US_RSTTX EQU( 0x1 << 3 );
- ( DBGU ) Reset Transmitter
    AT91C_US_RXEN EQU( 0x1 << 4 );
- ( DBGU ) Receiver Enable
    AT91C_US_RXDIS EQU( 0x1 << 5 );
- ( DBGU ) Receiver Disable
    AT91C_US_TXEN EQU( 0x1 << 6 );
- ( DBGU ) Transmitter Enable
    AT91C_US_TXDIS EQU( 0x1 << 7 );
- ( DBGU ) Transmitter Disable
    AT91C_US_RSTSTA EQU( 0x1 << 8 );
- ( DBGU ) Reset Status Bits
/* - -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- */
    AT91C_US_PAR EQU( 0x7 << 9 );
- ( DBGU ) Parity type
    AT91C_US_PAR_EVEN EQU( 0x0 << 9 );
- ( DBGU ) Even Parity
    AT91C_US_PAR_ODD EQU( 0x1 << 9 );
- ( DBGU ) Odd Parity
    AT91C_US_PAR_SPACE EQU( 0x2 << 9 );
- ( DBGU ) Parity forced to 0 ( Space )
    AT91C_US_PAR_MARK EQU( 0x3 << 9 );
- ( DBGU ) Parity forced to 1 ( Mark )
    AT91C_US_PAR_NONE EQU( 0x4 << 9 );
- ( DBGU ) No Parity
    AT91C_US_PAR_MULTI_DROP EQU( 0x6 << 9 );
- ( DBGU ) Multi - drop mode
    AT91C_US_CHMODE EQU( 0x3 << 14 );
- ( DBGU ) Channel Mode
    AT91C_US_CHMODE_NORMAL EQU( 0x0 << 14 );
- ( DBGU ) Normal Mode: The USART channel operates as an RX / TX USART.
       AT91C_US_CHMODE_AUTO EQU( 0x1 << 14 );
- ( DBGU ) Automatic Echo: Receiver Data Input is connected to the TXD pin.
       AT91C_US_CHMODE_LOCAL EQU( 0x2 << 14 );
- ( DBGU ) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.
       AT91C_US_CHMODE_REMOTE EQU( 0x3 << 14 );
- ( DBGU ) Remote Loopback: RXD pin is internally connected to TXD pin.
/* - -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- */
       AT91C_US_RXRDY EQU( 0x1 << 0 );
- ( DBGU ) RXRDY Interrupt
    AT91C_US_TXRDY EQU( 0x1 << 1 );
- ( DBGU ) TXRDY Interrupt
    AT91C_US_ENDRX EQU( 0x1 << 3 );
- ( DBGU ) End of Receive Transfer Interrupt
    AT91C_US_ENDTX EQU( 0x1 << 4 );
- ( DBGU ) End of Transmit Interrupt
    AT91C_US_OVRE EQU( 0x1 << 5 );
- ( DBGU ) Overrun Interrupt
    AT91C_US_FRAME EQU( 0x1 << 6 );
- ( DBGU ) Framing Error Interrupt
    AT91C_US_PARE EQU( 0x1 << 7 );
- ( DBGU ) Parity Error Interrupt
    AT91C_US_TXEMPTY EQU( 0x1 << 9 );
- ( DBGU ) TXEMPTY Interrupt
    AT91C_US_TXBUFE EQU( 0x1 << 11 );
- ( DBGU ) TXBUFE Interrupt
    AT91C_US_RXBUFF EQU( 0x1 << 12 );
- ( DBGU ) RXBUFF Interrupt
    AT91C_US_COMM_TX EQU( 0x1 << 30 );
- ( DBGU ) COMM_TX Interrupt
    AT91C_US_COMM_RX EQU( 0x1 << 31 );
- ( DBGU ) COMM_RX Interrupt
/* - -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- */
/* - -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- */
/* - -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- */
/* - -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- */
    AT91C_US_FORCE_NTRST EQU( 0x1 << 0 );
- ( DBGU ) Force NTRST in JTAG

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Parallel Input Output Controler */
/* - ***************************************************************************** */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Clock Generator Controler */
/* - ***************************************************************************** */
/* - -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- */
    AT91C_CKGR_MOSCEN EQU( 0x1 << 0 );
- ( CKGR ) Main Oscillator Enable
    AT91C_CKGR_OSCBYPASS EQU( 0x1 << 1 );
- ( CKGR ) Main Oscillator Bypass
    AT91C_CKGR_OSCOUNT EQU( 0xFF << 8 );
- ( CKGR ) Main Oscillator Start - up Time
/* - -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- */
    AT91C_CKGR_MAINF EQU( 0xFFFF << 0 );
- ( CKGR ) Main Clock Frequency
    AT91C_CKGR_MAINRDY EQU( 0x1 << 16 );
- ( CKGR ) Main Clock Ready
/* - -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- */
    AT91C_CKGR_DIV EQU( 0xFF << 0 );
- ( CKGR ) Divider Selected
    AT91C_CKGR_DIV_0 EQU( 0x0 );
- ( CKGR ) Divider output is 0
    AT91C_CKGR_DIV_BYPASS EQU( 0x1 );
- ( CKGR ) Divider is bypassed
    AT91C_CKGR_PLLCOUNT EQU( 0x3F << 8 );
- ( CKGR ) PLL Counter
    AT91C_CKGR_OUT EQU( 0x3 << 14 );
- ( CKGR ) PLL Output Frequency Range
    AT91C_CKGR_OUT_0 EQU( 0x0 << 14 );
- ( CKGR ) Please refer to the PLL datasheet
    AT91C_CKGR_OUT_1 EQU( 0x1 << 14 );
- ( CKGR ) Please refer to the PLL datasheet
    AT91C_CKGR_OUT_2 EQU( 0x2 << 14 );
- ( CKGR ) Please refer to the PLL datasheet
    AT91C_CKGR_OUT_3 EQU( 0x3 << 14 );
- ( CKGR ) Please refer to the PLL datasheet
    AT91C_CKGR_MUL EQU( 0x7FF << 16 );
- ( CKGR ) PLL Multiplier
    AT91C_CKGR_USBDIV EQU( 0x3 << 28 );
- ( CKGR ) Divider for USB Clocks
    AT91C_CKGR_USBDIV_0 EQU( 0x0 << 28 );
- ( CKGR ) Divider output is PLL clock output
    AT91C_CKGR_USBDIV_1 EQU( 0x1 << 28 );
- ( CKGR ) Divider output is PLL clock output divided by 2
    AT91C_CKGR_USBDIV_2 EQU( 0x2 << 28 );
- ( CKGR ) Divider output is PLL clock output divided by 4

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Power Management Controler */
/* - ***************************************************************************** */
/* - -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- */
    AT91C_PMC_PCK EQU( 0x1 << 0 );
- ( PMC ) Processor Clock
    AT91C_PMC_UDP EQU( 0x1 << 7 );
- ( PMC ) USB Device Port Clock
    AT91C_PMC_PCK0 EQU( 0x1 << 8 );
- ( PMC ) Programmable Clock Output
    AT91C_PMC_PCK1 EQU( 0x1 << 9 );
- ( PMC ) Programmable Clock Output
    AT91C_PMC_PCK2 EQU( 0x1 << 10 );
- ( PMC ) Programmable Clock Output
    AT91C_PMC_PCK3 EQU( 0x1 << 11 );
- ( PMC ) Programmable Clock Output
/* - -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- */
/* - -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- */
/* - -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- */
/* - -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- */
/* - -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- */
/* - -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- */
    AT91C_PMC_CSS EQU( 0x3 << 0 );
- ( PMC ) Programmable Clock Selection
    AT91C_PMC_CSS_SLOW_CLK EQU( 0x0 );
- ( PMC ) Slow Clock is selected
    AT91C_PMC_CSS_MAIN_CLK EQU( 0x1 );
- ( PMC ) Main Clock is selected
    AT91C_PMC_CSS_PLL_CLK EQU( 0x3 );
- ( PMC ) Clock from PLL is selected
    AT91C_PMC_PRES EQU( 0x7 << 2 );
- ( PMC ) Programmable Clock Prescaler
    AT91C_PMC_PRES_CLK EQU( 0x0 << 2 );
- ( PMC ) Selected clock
    AT91C_PMC_PRES_CLK_2 EQU( 0x1 << 2 );
- ( PMC ) Selected clock divided by 2
    AT91C_PMC_PRES_CLK_4 EQU( 0x2 << 2 );
- ( PMC ) Selected clock divided by 4
    AT91C_PMC_PRES_CLK_8 EQU( 0x3 << 2 );
- ( PMC ) Selected clock divided by 8
    AT91C_PMC_PRES_CLK_16 EQU( 0x4 << 2 );
- ( PMC ) Selected clock divided by 16
    AT91C_PMC_PRES_CLK_32 EQU( 0x5 << 2 );
- ( PMC ) Selected clock divided by 32
    AT91C_PMC_PRES_CLK_64 EQU( 0x6 << 2 );
- ( PMC ) Selected clock divided by 64
/* - -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- */
/* - -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- */
    AT91C_PMC_MOSCS EQU( 0x1 << 0 );
- ( PMC ) MOSC Status / Enable / Disable / Mask
    AT91C_PMC_LOCK EQU( 0x1 << 2 );
- ( PMC ) PLL Status / Enable / Disable / Mask
    AT91C_PMC_MCKRDY EQU( 0x1 << 3 );
- ( PMC ) MCK_RDY Status / Enable / Disable / Mask
    AT91C_PMC_PCK0RDY EQU( 0x1 << 8 );
- ( PMC ) PCK0_RDY Status / Enable / Disable / Mask
    AT91C_PMC_PCK1RDY EQU( 0x1 << 9 );
- ( PMC ) PCK1_RDY Status / Enable / Disable / Mask
    AT91C_PMC_PCK2RDY EQU( 0x1 << 10 );
- ( PMC ) PCK2_RDY Status / Enable / Disable / Mask
    AT91C_PMC_PCK3RDY EQU( 0x1 << 11 );
- ( PMC ) PCK3_RDY Status / Enable / Disable / Mask
/* - -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- */
/* - -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- */
/* - -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Reset Controller Interface */
/* - ***************************************************************************** */
/* - -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- */
    AT91C_RSTC_PROCRST EQU( 0x1 << 0 );
- ( RSTC ) Processor Reset
    AT91C_RSTC_PERRST EQU( 0x1 << 2 );
- ( RSTC ) Peripheral Reset
    AT91C_RSTC_EXTRST EQU( 0x1 << 3 );
- ( RSTC ) External Reset
    AT91C_RSTC_KEY EQU( 0xFF << 24 );
- ( RSTC ) Password
/* - -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- */
    AT91C_RSTC_URSTS EQU( 0x1 << 0 );
- ( RSTC ) User Reset Status
    AT91C_RSTC_BODSTS EQU( 0x1 << 1 );
- ( RSTC ) Brownout Detection Status
    AT91C_RSTC_RSTTYP EQU( 0x7 << 8 );
- ( RSTC ) Reset Type
    AT91C_RSTC_RSTTYP_POWERUP EQU( 0x0 << 8 );
- ( RSTC ) Power - up Reset.VDDCORE rising.
       AT91C_RSTC_RSTTYP_WAKEUP EQU( 0x1 << 8 );
- ( RSTC ) WakeUp Reset.VDDCORE rising.
       AT91C_RSTC_RSTTYP_WATCHDOG EQU( 0x2 << 8 );
- ( RSTC ) Watchdog Reset.Watchdog overflow occured.
       AT91C_RSTC_RSTTYP_SOFTWARE EQU( 0x3 << 8 );
- ( RSTC ) Software Reset.Processor reset required by the software.
       AT91C_RSTC_RSTTYP_USER EQU( 0x4 << 8 );
- ( RSTC ) User Reset.NRST pin detected low.
       AT91C_RSTC_RSTTYP_BROWNOUT EQU( 0x5 << 8 );
- ( RSTC ) Brownout Reset occured.
       AT91C_RSTC_NRSTL EQU( 0x1 << 16 );
- ( RSTC ) NRST pin level
    AT91C_RSTC_SRCMP EQU( 0x1 << 17 );
- ( RSTC ) Software Reset Command in Progress.
/* - -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- */
       AT91C_RSTC_URSTEN EQU( 0x1 << 0 );
- ( RSTC ) User Reset Enable
    AT91C_RSTC_URSTIEN EQU( 0x1 << 4 );
- ( RSTC ) User Reset Interrupt Enable
    AT91C_RSTC_ERSTL EQU( 0xF << 8 );
- ( RSTC ) User Reset Enable
    AT91C_RSTC_BODIEN EQU( 0x1 << 16 );
- ( RSTC ) Brownout Detection Interrupt Enable

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Real Time Timer Controller Interface */
/* - ***************************************************************************** */
/* - -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- */
    AT91C_RTTC_RTPRES EQU( 0xFFFF << 0 );
- ( RTTC ) Real - time Timer Prescaler Value
    AT91C_RTTC_ALMIEN EQU( 0x1 << 16 );
- ( RTTC ) Alarm Interrupt Enable
    AT91C_RTTC_RTTINCIEN EQU( 0x1 << 17 );
- ( RTTC ) Real Time Timer Increment Interrupt Enable
    AT91C_RTTC_RTTRST EQU( 0x1 << 18 );
- ( RTTC ) Real Time Timer Restart
/* - -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- */
    AT91C_RTTC_ALMV EQU( 0x0 << 0 );
- ( RTTC ) Alarm Value
/* - -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- */
    AT91C_RTTC_CRTV EQU( 0x0 << 0 );
- ( RTTC ) Current Real - time Value
/* - -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- */
    AT91C_RTTC_ALMS EQU( 0x1 << 0 );
- ( RTTC ) Real - time Alarm Status
    AT91C_RTTC_RTTINC EQU( 0x1 << 1 );
- ( RTTC ) Real - time Timer Increment

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Periodic Interval Timer Controller Interface */
/* - ***************************************************************************** */
/* - -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- */
    AT91C_PITC_PIV EQU( 0xFFFFF << 0 );
- ( PITC ) Periodic Interval Value
    AT91C_PITC_PITEN EQU( 0x1 << 24 );
- ( PITC ) Periodic Interval Timer Enabled
    AT91C_PITC_PITIEN EQU( 0x1 << 25 );
- ( PITC ) Periodic Interval Timer Interrupt Enable
/* - -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- */
    AT91C_PITC_PITS EQU( 0x1 << 0 );
- ( PITC ) Periodic Interval Timer Status
/* - -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- */
    AT91C_PITC_CPIV EQU( 0xFFFFF << 0 );
- ( PITC ) Current Periodic Interval Value
    AT91C_PITC_PICNT EQU( 0xFFF << 20 );
- ( PITC ) Periodic Interval Counter
/* - -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Watchdog Timer Controller Interface */
/* - ***************************************************************************** */
/* - -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- */
    AT91C_WDTC_WDRSTT EQU( 0x1 << 0 );
- ( WDTC ) Watchdog Restart
    AT91C_WDTC_KEY EQU( 0xFF << 24 );
- ( WDTC ) Watchdog KEY Password
/* - -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- */
    AT91C_WDTC_WDV EQU( 0xFFF << 0 );
- ( WDTC ) Watchdog Timer Restart
    AT91C_WDTC_WDFIEN EQU( 0x1 << 12 );
- ( WDTC ) Watchdog Fault Interrupt Enable
    AT91C_WDTC_WDRSTEN EQU( 0x1 << 13 );
- ( WDTC ) Watchdog Reset Enable
    AT91C_WDTC_WDRPROC EQU( 0x1 << 14 );
- ( WDTC ) Watchdog Timer Restart
    AT91C_WDTC_WDDIS EQU( 0x1 << 15 );
- ( WDTC ) Watchdog Disable
    AT91C_WDTC_WDD EQU( 0xFFF << 16 );
- ( WDTC ) Watchdog Delta Value
    AT91C_WDTC_WDDBGHLT EQU( 0x1 << 28 );
- ( WDTC ) Watchdog Debug Halt
    AT91C_WDTC_WDIDLEHLT EQU( 0x1 << 29 );
- ( WDTC ) Watchdog Idle Halt
/* - -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- */
    AT91C_WDTC_WDUNF EQU( 0x1 << 0 );
- ( WDTC ) Watchdog Underflow
    AT91C_WDTC_WDERR EQU( 0x1 << 1 );
- ( WDTC ) Watchdog Error

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Voltage Regulator Mode Controller Interface */
/* - ***************************************************************************** */
/* - -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- */
    AT91C_VREG_PSTDBY EQU( 0x1 << 0 );
- ( VREG ) Voltage Regulator Power Standby Mode

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Memory Controller Interface */
/* - ***************************************************************************** */
/* - -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- */
    AT91C_MC_RCB EQU( 0x1 << 0 );
- ( MC ) Remap Command Bit
/* - -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- */
    AT91C_MC_UNDADD EQU( 0x1 << 0 );
- ( MC ) Undefined Addess Abort Status
    AT91C_MC_MISADD EQU( 0x1 << 1 );
- ( MC ) Misaligned Addess Abort Status
    AT91C_MC_ABTSZ EQU( 0x3 << 8 );
- ( MC ) Abort Size Status
    AT91C_MC_ABTSZ_BYTE EQU( 0x0 << 8 );
- ( MC ) Byte
    AT91C_MC_ABTSZ_HWORD EQU( 0x1 << 8 );
- ( MC ) Half - word
    AT91C_MC_ABTSZ_WORD EQU( 0x2 << 8 );
- ( MC ) Word
    AT91C_MC_ABTTYP EQU( 0x3 << 10 );
- ( MC ) Abort Type Status
    AT91C_MC_ABTTYP_DATAR EQU( 0x0 << 10 );
- ( MC ) Data Read
    AT91C_MC_ABTTYP_DATAW EQU( 0x1 << 10 );
- ( MC ) Data Write
    AT91C_MC_ABTTYP_FETCH EQU( 0x2 << 10 );
- ( MC ) Code Fetch
    AT91C_MC_MST0 EQU( 0x1 << 16 );
- ( MC ) Master 0 Abort Source
    AT91C_MC_MST1 EQU( 0x1 << 17 );
- ( MC ) Master 1 Abort Source
    AT91C_MC_SVMST0 EQU( 0x1 << 24 );
- ( MC ) Saved Master 0 Abort Source
    AT91C_MC_SVMST1 EQU( 0x1 << 25 );
- ( MC ) Saved Master 1 Abort Source
/* - -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- */
    AT91C_MC_FRDY EQU( 0x1 << 0 );
- ( MC ) Flash Ready
    AT91C_MC_LOCKE EQU( 0x1 << 2 );
- ( MC ) Lock Error
    AT91C_MC_PROGE EQU( 0x1 << 3 );
- ( MC ) Programming Error
    AT91C_MC_NEBP EQU( 0x1 << 7 );
- ( MC ) No Erase Before Programming
    AT91C_MC_FWS EQU( 0x3 << 8 );
- ( MC ) Flash Wait State
    AT91C_MC_FWS_0FWS EQU( 0x0 << 8 );
- ( MC ) 1 cycle for Read, 2 for Write operations
    AT91C_MC_FWS_1FWS EQU( 0x1 << 8 );
- ( MC ) 2 cycles for Read, 3 for Write operations
    AT91C_MC_FWS_2FWS EQU( 0x2 << 8 );
- ( MC ) 3 cycles for Read, 4 for Write operations
    AT91C_MC_FWS_3FWS EQU( 0x3 << 8 );
- ( MC ) 4 cycles for Read, 4 for Write operations
    AT91C_MC_FMCN EQU( 0xFF << 16 );
- ( MC ) Flash Microsecond Cycle Number
/* - -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- */
    AT91C_MC_FCMD EQU( 0xF << 0 );
- ( MC ) Flash Command
    AT91C_MC_FCMD_START_PROG EQU( 0x1 );
- ( MC ) Starts the programming of th epage specified by PAGEN.
       AT91C_MC_FCMD_LOCK EQU( 0x2 );
- ( MC ) Starts a lock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.
       AT91C_MC_FCMD_PROG_AND_LOCK EQU( 0x3 );
- ( MC ) The lock sequence automatically happens after the programming sequence is completed.
       AT91C_MC_FCMD_UNLOCK EQU( 0x4 );
- ( MC ) Starts an unlock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.
       AT91C_MC_FCMD_ERASE_ALL EQU( 0x8 );
- ( MC ) Starts the erase of the entire flash.If at least a page is locked, the command is cancelled.
       AT91C_MC_FCMD_SET_GP_NVM EQU( 0xB );
- ( MC ) Set General Purpose NVM bits.
       AT91C_MC_FCMD_CLR_GP_NVM EQU( 0xD );
- ( MC ) Clear General Purpose NVM bits.
       AT91C_MC_FCMD_SET_SECURITY EQU( 0xF );
- ( MC ) Set Security Bit.
       AT91C_MC_PAGEN EQU( 0x3FF << 8 );
- ( MC ) Page Number
    AT91C_MC_KEY EQU( 0xFF << 24 );
- ( MC ) Writing Protect Key
/* - -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- */
    AT91C_MC_SECURITY EQU( 0x1 << 4 );
- ( MC ) Security Bit Status
    AT91C_MC_GPNVM0 EQU( 0x1 << 8 );
- ( MC ) Sector 0 Lock Status
    AT91C_MC_GPNVM1 EQU( 0x1 << 9 );
- ( MC ) Sector 1 Lock Status
    AT91C_MC_GPNVM2 EQU( 0x1 << 10 );
- ( MC ) Sector 2 Lock Status
    AT91C_MC_GPNVM3 EQU( 0x1 << 11 );
- ( MC ) Sector 3 Lock Status
    AT91C_MC_GPNVM4 EQU( 0x1 << 12 );
- ( MC ) Sector 4 Lock Status
    AT91C_MC_GPNVM5 EQU( 0x1 << 13 );
- ( MC ) Sector 5 Lock Status
    AT91C_MC_GPNVM6 EQU( 0x1 << 14 );
- ( MC ) Sector 6 Lock Status
    AT91C_MC_GPNVM7 EQU( 0x1 << 15 );
- ( MC ) Sector 7 Lock Status
    AT91C_MC_LOCKS0 EQU( 0x1 << 16 );
- ( MC ) Sector 0 Lock Status
    AT91C_MC_LOCKS1 EQU( 0x1 << 17 );
- ( MC ) Sector 1 Lock Status
    AT91C_MC_LOCKS2 EQU( 0x1 << 18 );
- ( MC ) Sector 2 Lock Status
    AT91C_MC_LOCKS3 EQU( 0x1 << 19 );
- ( MC ) Sector 3 Lock Status
    AT91C_MC_LOCKS4 EQU( 0x1 << 20 );
- ( MC ) Sector 4 Lock Status
    AT91C_MC_LOCKS5 EQU( 0x1 << 21 );
- ( MC ) Sector 5 Lock Status
    AT91C_MC_LOCKS6 EQU( 0x1 << 22 );
- ( MC ) Sector 6 Lock Status
    AT91C_MC_LOCKS7 EQU( 0x1 << 23 );
- ( MC ) Sector 7 Lock Status
    AT91C_MC_LOCKS8 EQU( 0x1 << 24 );
- ( MC ) Sector 8 Lock Status
    AT91C_MC_LOCKS9 EQU( 0x1 << 25 );
- ( MC ) Sector 9 Lock Status
    AT91C_MC_LOCKS10 EQU( 0x1 << 26 );
- ( MC ) Sector 10 Lock Status
    AT91C_MC_LOCKS11 EQU( 0x1 << 27 );
- ( MC ) Sector 11 Lock Status
    AT91C_MC_LOCKS12 EQU( 0x1 << 28 );
- ( MC ) Sector 12 Lock Status
    AT91C_MC_LOCKS13 EQU( 0x1 << 29 );
- ( MC ) Sector 13 Lock Status
    AT91C_MC_LOCKS14 EQU( 0x1 << 30 );
- ( MC ) Sector 14 Lock Status
    AT91C_MC_LOCKS15 EQU( 0x1 << 31 );
- ( MC ) Sector 15 Lock Status

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Serial Parallel Interface */
/* - ***************************************************************************** */
/* - -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- */
    AT91C_SPI_SPIEN EQU( 0x1 << 0 );
- ( SPI ) SPI Enable
    AT91C_SPI_SPIDIS EQU( 0x1 << 1 );
- ( SPI ) SPI Disable
    AT91C_SPI_SWRST EQU( 0x1 << 7 );
- ( SPI ) SPI Software reset
    AT91C_SPI_LASTXFER EQU( 0x1 << 24 );
- ( SPI ) SPI Last Transfer
/* - -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- */
    AT91C_SPI_MSTR EQU( 0x1 << 0 );
- ( SPI ) Master / Slave Mode
    AT91C_SPI_PS EQU( 0x1 << 1 );
- ( SPI ) Peripheral Select
    AT91C_SPI_PS_FIXED EQU( 0x0 << 1 );
- ( SPI ) Fixed Peripheral Select
    AT91C_SPI_PS_VARIABLE EQU( 0x1 << 1 );
- ( SPI ) Variable Peripheral Select
    AT91C_SPI_PCSDEC EQU( 0x1 << 2 );
- ( SPI ) Chip Select Decode
    AT91C_SPI_FDIV EQU( 0x1 << 3 );
- ( SPI ) Clock Selection
    AT91C_SPI_MODFDIS EQU( 0x1 << 4 );
- ( SPI ) Mode Fault Detection
    AT91C_SPI_LLB EQU( 0x1 << 7 );
- ( SPI ) Clock Selection
    AT91C_SPI_PCS EQU( 0xF << 16 );
- ( SPI ) Peripheral Chip Select
    AT91C_SPI_DLYBCS EQU( 0xFF << 24 );
- ( SPI ) Delay Between Chip Selects
/* - -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- */
    AT91C_SPI_RD EQU( 0xFFFF << 0 );
- ( SPI ) Receive Data
    AT91C_SPI_RPCS EQU( 0xF << 16 );
- ( SPI ) Peripheral Chip Select Status
/* - -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- */
    AT91C_SPI_TD EQU( 0xFFFF << 0 );
- ( SPI ) Transmit Data
    AT91C_SPI_TPCS EQU( 0xF << 16 );
- ( SPI ) Peripheral Chip Select Status
/* - -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- */
    AT91C_SPI_RDRF EQU( 0x1 << 0 );
- ( SPI ) Receive Data Register Full
    AT91C_SPI_TDRE EQU( 0x1 << 1 );
- ( SPI ) Transmit Data Register Empty
    AT91C_SPI_MODF EQU( 0x1 << 2 );
- ( SPI ) Mode Fault Error
    AT91C_SPI_OVRES EQU( 0x1 << 3 );
- ( SPI ) Overrun Error Status
    AT91C_SPI_ENDRX EQU( 0x1 << 4 );
- ( SPI ) End of Receiver Transfer
    AT91C_SPI_ENDTX EQU( 0x1 << 5 );
- ( SPI ) End of Receiver Transfer
    AT91C_SPI_RXBUFF EQU( 0x1 << 6 );
- ( SPI ) RXBUFF Interrupt
    AT91C_SPI_TXBUFE EQU( 0x1 << 7 );
- ( SPI ) TXBUFE Interrupt
    AT91C_SPI_NSSR EQU( 0x1 << 8 );
- ( SPI ) NSSR Interrupt
    AT91C_SPI_TXEMPTY EQU( 0x1 << 9 );
- ( SPI ) TXEMPTY Interrupt
    AT91C_SPI_SPIENS EQU( 0x1 << 16 );
- ( SPI ) Enable Status
/* - -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- */
/* - -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- */
/* - -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- */
/* - -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- */
    AT91C_SPI_CPOL EQU( 0x1 << 0 );
- ( SPI ) Clock Polarity
    AT91C_SPI_NCPHA EQU( 0x1 << 1 );
- ( SPI ) Clock Phase
    AT91C_SPI_CSAAT EQU( 0x1 << 3 );
- ( SPI ) Chip Select Active After Transfer
    AT91C_SPI_BITS EQU( 0xF << 4 );
- ( SPI ) Bits Per Transfer
    AT91C_SPI_BITS_8 EQU( 0x0 << 4 );
- ( SPI ) 8 Bits Per transfer
    AT91C_SPI_BITS_9 EQU( 0x1 << 4 );
- ( SPI ) 9 Bits Per transfer
    AT91C_SPI_BITS_10 EQU( 0x2 << 4 );
- ( SPI ) 10 Bits Per transfer
    AT91C_SPI_BITS_11 EQU( 0x3 << 4 );
- ( SPI ) 11 Bits Per transfer
    AT91C_SPI_BITS_12 EQU( 0x4 << 4 );
- ( SPI ) 12 Bits Per transfer
    AT91C_SPI_BITS_13 EQU( 0x5 << 4 );
- ( SPI ) 13 Bits Per transfer
    AT91C_SPI_BITS_14 EQU( 0x6 << 4 );
- ( SPI ) 14 Bits Per transfer
    AT91C_SPI_BITS_15 EQU( 0x7 << 4 );
- ( SPI ) 15 Bits Per transfer
    AT91C_SPI_BITS_16 EQU( 0x8 << 4 );
- ( SPI ) 16 Bits Per transfer
    AT91C_SPI_SCBR EQU( 0xFF << 8 );
- ( SPI ) Serial Clock Baud Rate
    AT91C_SPI_DLYBS EQU( 0xFF << 16 );
- ( SPI ) Delay Before SPCK
    AT91C_SPI_DLYBCT EQU( 0xFF << 24 );
- ( SPI ) Delay Between Consecutive Transfers

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Usart */
/* - ***************************************************************************** */
/* - -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- */
    AT91C_US_STTBRK EQU( 0x1 << 9 );
- ( USART ) Start Break
    AT91C_US_STPBRK EQU( 0x1 << 10 );
- ( USART ) Stop Break
    AT91C_US_STTTO EQU( 0x1 << 11 );
- ( USART ) Start Time - out
    AT91C_US_SENDA EQU( 0x1 << 12 );
- ( USART ) Send Address
    AT91C_US_RSTIT EQU( 0x1 << 13 );
- ( USART ) Reset Iterations
    AT91C_US_RSTNACK EQU( 0x1 << 14 );
- ( USART ) Reset Non Acknowledge
    AT91C_US_RETTO EQU( 0x1 << 15 );
- ( USART ) Rearm Time - out
    AT91C_US_DTREN EQU( 0x1 << 16 );
- ( USART ) Data Terminal ready Enable
    AT91C_US_DTRDIS EQU( 0x1 << 17 );
- ( USART ) Data Terminal ready Disable
    AT91C_US_RTSEN EQU( 0x1 << 18 );
- ( USART ) Request to Send enable
    AT91C_US_RTSDIS EQU( 0x1 << 19 );
- ( USART ) Request to Send Disable
/* - -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- */
    AT91C_US_USMODE EQU( 0xF << 0 );
- ( USART ) Usart mode
    AT91C_US_USMODE_NORMAL EQU( 0x0 );
- ( USART ) Normal
    AT91C_US_USMODE_RS485 EQU( 0x1 );
- ( USART ) RS485
    AT91C_US_USMODE_HWHSH EQU( 0x2 );
- ( USART ) Hardware Handshaking
    AT91C_US_USMODE_MODEM EQU( 0x3 );
- ( USART ) Modem
    AT91C_US_USMODE_ISO7816_0 EQU( 0x4 );
- ( USART ) ISO7816 protocol: T = 0
                                  AT91C_US_USMODE_ISO7816_1 EQU( 0x6 );
- ( USART ) ISO7816 protocol: T = 1
                                  AT91C_US_USMODE_IRDA EQU( 0x8 );
- ( USART ) IrDA
    AT91C_US_USMODE_SWHSH EQU( 0xC );
- ( USART ) Software Handshaking
    AT91C_US_CLKS EQU( 0x3 << 4 );
- ( USART ) Clock Selection ( Baud Rate generator Input Clock
                              AT91C_US_CLKS_CLOCK EQU( 0x0 << 4 );
                              -( USART ) Clock
                              AT91C_US_CLKS_FDIV1 EQU( 0x1 << 4 );
                              -( USART ) fdiv1
                              AT91C_US_CLKS_SLOW EQU( 0x2 << 4 );
                              -( USART ) slow_clock( ARM )
                              AT91C_US_CLKS_EXT EQU( 0x3 << 4 );
                              -( USART ) External( SCK )
                              AT91C_US_CHRL EQU( 0x3 << 6 );
                              -( USART ) Clock Selection ( Baud Rate generator Input Clock
                                                           AT91C_US_CHRL_5_BITS EQU( 0x0 << 6 );
                                                           -( USART ) Character Length : 5 bits
                                                           AT91C_US_CHRL_6_BITS EQU( 0x1 << 6 );
                                                           -( USART ) Character Length : 6 bits
                                                           AT91C_US_CHRL_7_BITS EQU( 0x2 << 6 );
                                                           -( USART ) Character Length : 7 bits
                                                           AT91C_US_CHRL_8_BITS EQU( 0x3 << 6 );
                                                           -( USART ) Character Length : 8 bits
                                                           AT91C_US_SYNC EQU( 0x1 << 8 );
                                                           -( USART ) Synchronous Mode Select
                                                           AT91C_US_NBSTOP EQU( 0x3 << 12 );
                                                           -( USART ) Number of Stop bits
                                                           AT91C_US_NBSTOP_1_BIT EQU( 0x0 << 12 );
                                                           -( USART ) 1 stop bit
                                                           AT91C_US_NBSTOP_15_BIT EQU( 0x1 << 12 );
                                                           -( USART ) Asynchronous( SYNC = 0 ) 2 stop bits Synchronous( SYNC = 1 ) 2 stop bits
                                                           AT91C_US_NBSTOP_2_BIT EQU( 0x2 << 12 );
                                                           -( USART ) 2 stop bits
                                                           AT91C_US_MSBF EQU( 0x1 << 16 );
                                                           -( USART ) Bit Order
                                                           AT91C_US_MODE9 EQU( 0x1 << 17 );
                                                           -( USART ) 9 - bit Character length
                                                           AT91C_US_CKLO EQU( 0x1 << 18 );
                                                           -( USART ) Clock Output Select
                                                           AT91C_US_OVER EQU( 0x1 << 19 );
                                                           -( USART ) Over Sampling Mode
                                                           AT91C_US_INACK EQU( 0x1 << 20 );
                                                           -( USART ) Inhibit Non Acknowledge
                                                           AT91C_US_DSNACK EQU( 0x1 << 21 );
                                                           -( USART ) Disable Successive NACK
                                                           AT91C_US_MAX_ITER EQU( 0x1 << 24 );
                                                           -( USART ) Number of Repetitions
                                                           AT91C_US_FILTER EQU( 0x1 << 28 );
                                                           -( USART ) Receive Line Filter
/* - -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- */
                                                           AT91C_US_RXBRK EQU( 0x1 << 2 );
                                                           -( USART ) Break Received / End of Break
                                                           AT91C_US_TIMEOUT EQU( 0x1 << 8 );
                                                           -( USART ) Receiver Time - out
                                                           AT91C_US_ITERATION EQU( 0x1 << 10 );
                                                           -( USART ) Max number of Repetitions Reached
                                                           AT91C_US_NACK EQU( 0x1 << 13 );
                                                           -( USART ) Non Acknowledge
                                                           AT91C_US_RIIC EQU( 0x1 << 16 );
                                                           -( USART ) Ring INdicator Input Change Flag
                                                           AT91C_US_DSRIC EQU( 0x1 << 17 );
                                                           -( USART ) Data Set Ready Input Change Flag
                                                           AT91C_US_DCDIC EQU( 0x1 << 18 );
                                                           -( USART ) Data Carrier Flag
                                                           AT91C_US_CTSIC EQU( 0x1 << 19 );
                                                           -( USART ) Clear To Send Input Change Flag
/* - -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- */
/* - -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- */
/* - -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- */
                                                           AT91C_US_RI EQU( 0x1 << 20 );
                                                           -( USART ) Image of RI Input
                                                           AT91C_US_DSR EQU( 0x1 << 21 );
                                                           -( USART ) Image of DSR Input
                                                           AT91C_US_DCD EQU( 0x1 << 22 );
                                                           -( USART ) Image of DCD Input
                                                           AT91C_US_CTS EQU( 0x1 << 23 );
                                                           -( USART ) Image of CTS Input

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Synchronous Serial Controller Interface */
/* - ***************************************************************************** */
/* - -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- */
                                                           AT91C_SSC_RXEN EQU( 0x1 << 0 );
                                                           -( SSC ) Receive Enable
                                                           AT91C_SSC_RXDIS EQU( 0x1 << 1 );
                                                           -( SSC ) Receive Disable
                                                           AT91C_SSC_TXEN EQU( 0x1 << 8 );
                                                           -( SSC ) Transmit Enable
                                                           AT91C_SSC_TXDIS EQU( 0x1 << 9 );
                                                           -( SSC ) Transmit Disable
                                                           AT91C_SSC_SWRST EQU( 0x1 << 15 );
                                                           -( SSC ) Software Reset
/* - -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- */
                                                           AT91C_SSC_CKS EQU( 0x3 << 0 );
                                                           -( SSC ) Receive / Transmit Clock Selection
                                                           AT91C_SSC_CKS_DIV EQU( 0x0 );
                                                           -( SSC ) Divided Clock
                                                           AT91C_SSC_CKS_TK EQU( 0x1 );
                                                           -( SSC ) TK Clock signal
                                                           AT91C_SSC_CKS_RK EQU( 0x2 );
                                                           -( SSC ) RK pin
                                                           AT91C_SSC_CKO EQU( 0x7 << 2 );
                                                           -( SSC ) Receive / Transmit Clock Output Mode Selection
                                                           AT91C_SSC_CKO_NONE EQU( 0x0 << 2 );
                                                           -( SSC ) Receive / Transmit Clock Output Mode:None RK pin: Input - only
                                                           AT91C_SSC_CKO_CONTINOUS EQU( 0x1 << 2 );
                                                           -( SSC ) Continuous Receive / Transmit Clock RK pin:Output
                                                           AT91C_SSC_CKO_DATA_TX EQU( 0x2 << 2 );
                                                           -( SSC ) Receive / Transmit Clock only during data transfers RK pin:Output
                                                           AT91C_SSC_CKI EQU( 0x1 << 5 );
                                                           -( SSC ) Receive / Transmit Clock Inversion
                                                           AT91C_SSC_START EQU( 0xF << 8 );
                                                           -( SSC ) Receive / Transmit Start Selection
                                                           AT91C_SSC_START_CONTINOUS EQU( 0x0 << 8 );
                                                           -( SSC ) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data.
                                                              AT91C_SSC_START_TX EQU( 0x1 << 8 );
                                                           -( SSC ) Transmit / Receive start
                                                           AT91C_SSC_START_LOW_RF EQU( 0x2 << 8 );
                                                           -( SSC ) Detection of a low level on RF input
                                                           AT91C_SSC_START_HIGH_RF EQU( 0x3 << 8 );
                                                           -( SSC ) Detection of a high level on RF input
                                                           AT91C_SSC_START_FALL_RF EQU( 0x4 << 8 );
                                                           -( SSC ) Detection of a falling edge on RF input
                                                           AT91C_SSC_START_RISE_RF EQU( 0x5 << 8 );
                                                           -( SSC ) Detection of a rising edge on RF input
                                                           AT91C_SSC_START_LEVEL_RF EQU( 0x6 << 8 );
                                                           -( SSC ) Detection of any level change on RF input
                                                           AT91C_SSC_START_EDGE_RF EQU( 0x7 << 8 );
                                                           -( SSC ) Detection of any edge on RF input
                                                           AT91C_SSC_START_0 EQU( 0x8 << 8 );
                                                           -( SSC ) Compare 0
                                                           AT91C_SSC_STTDLY EQU( 0xFF << 16 );
                                                           -( SSC ) Receive / Transmit Start Delay
                                                           AT91C_SSC_PERIOD EQU( 0xFF << 24 );
                                                           -( SSC ) Receive / Transmit Period Divider Selection
/* - -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- */
                                                           AT91C_SSC_DATLEN EQU( 0x1F << 0 );
                                                           -( SSC ) Data Length
                                                           AT91C_SSC_LOOP EQU( 0x1 << 5 );
                                                           -( SSC ) Loop Mode
                                                           AT91C_SSC_MSBF EQU( 0x1 << 7 );
                                                           -( SSC ) Most Significant Bit First
                                                           AT91C_SSC_DATNB EQU( 0xF << 8 );
                                                           -( SSC ) Data Number per Frame
                                                           AT91C_SSC_FSLEN EQU( 0xF << 16 );
                                                           -( SSC ) Receive / Transmit Frame Sync length
                                                           AT91C_SSC_FSOS EQU( 0x7 << 20 );
                                                           -( SSC ) Receive / Transmit Frame Sync Output Selection
                                                           AT91C_SSC_FSOS_NONE EQU( 0x0 << 20 );
                                                           -( SSC ) Selected Receive / Transmit Frame Sync Signal:None RK pin Input - only
                                                           AT91C_SSC_FSOS_NEGATIVE EQU( 0x1 << 20 );
                                                           -( SSC ) Selected Receive / Transmit Frame Sync Signal:Negative Pulse
                                                           AT91C_SSC_FSOS_POSITIVE EQU( 0x2 << 20 );
                                                           -( SSC ) Selected Receive / Transmit Frame Sync Signal:Positive Pulse
                                                           AT91C_SSC_FSOS_LOW EQU( 0x3 << 20 );
                                                           -( SSC ) Selected Receive / Transmit Frame Sync Signal:Driver Low during data transfer
                                                           AT91C_SSC_FSOS_HIGH EQU( 0x4 << 20 );
                                                           -( SSC ) Selected Receive / Transmit Frame Sync Signal:Driver High during data transfer
                                                           AT91C_SSC_FSOS_TOGGLE EQU( 0x5 << 20 );
                                                           -( SSC ) Selected Receive / Transmit Frame Sync Signal:Toggling at each start of data transfer
                                                           AT91C_SSC_FSEDGE EQU( 0x1 << 24 );
                                                           -( SSC ) Frame Sync Edge Detection
/* - -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- */
/* - -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- */
                                                           AT91C_SSC_DATDEF EQU( 0x1 << 5 );
                                                           -( SSC ) Data Default Value
                                                           AT91C_SSC_FSDEN EQU( 0x1 << 23 );
                                                           -( SSC ) Frame Sync Data Enable
/* - -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- */
                                                           AT91C_SSC_TXRDY EQU( 0x1 << 0 );
                                                           -( SSC ) Transmit Ready
                                                           AT91C_SSC_TXEMPTY EQU( 0x1 << 1 );
                                                           -( SSC ) Transmit Empty
                                                           AT91C_SSC_ENDTX EQU( 0x1 << 2 );
                                                           -( SSC ) End Of Transmission
                                                           AT91C_SSC_TXBUFE EQU( 0x1 << 3 );
                                                           -( SSC ) Transmit Buffer Empty
                                                           AT91C_SSC_RXRDY EQU( 0x1 << 4 );
                                                           -( SSC ) Receive Ready
                                                           AT91C_SSC_OVRUN EQU( 0x1 << 5 );
                                                           -( SSC ) Receive Overrun
                                                           AT91C_SSC_ENDRX EQU( 0x1 << 6 );
                                                           -( SSC ) End of Reception
                                                           AT91C_SSC_RXBUFF EQU( 0x1 << 7 );
                                                           -( SSC ) Receive Buffer Full
                                                           AT91C_SSC_TXSYN EQU( 0x1 << 10 );
                                                           -( SSC ) Transmit Sync
                                                           AT91C_SSC_RXSYN EQU( 0x1 << 11 );
                                                           -( SSC ) Receive Sync
                                                           AT91C_SSC_TXENA EQU( 0x1 << 16 );
                                                           -( SSC ) Transmit Enable
                                                           AT91C_SSC_RXENA EQU( 0x1 << 17 );
                                                           -( SSC ) Receive Enable
/* - -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- */
/* - -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- */
/* - -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Two-wire Interface */
/* - ***************************************************************************** */
/* - -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- */
                                                           AT91C_TWI_START EQU( 0x1 << 0 );
                                                           -( TWI ) Send a START Condition
                                                           AT91C_TWI_STOP EQU( 0x1 << 1 );
                                                           -( TWI ) Send a STOP Condition
                                                           AT91C_TWI_MSEN EQU( 0x1 << 2 );
                                                           -( TWI ) TWI Master Transfer Enabled
                                                           AT91C_TWI_MSDIS EQU( 0x1 << 3 );
                                                           -( TWI ) TWI Master Transfer Disabled
                                                           AT91C_TWI_SWRST EQU( 0x1 << 7 );
                                                           -( TWI ) Software Reset
/* - -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- */
                                                           AT91C_TWI_IADRSZ EQU( 0x3 << 8 );
                                                           -( TWI ) Internal Device Address Size
                                                           AT91C_TWI_IADRSZ_NO EQU( 0x0 << 8 );
                                                           -( TWI ) No internal device address
                                                           AT91C_TWI_IADRSZ_1_BYTE EQU( 0x1 << 8 );
                                                           -( TWI ) One - byte internal device address
                                                           AT91C_TWI_IADRSZ_2_BYTE EQU( 0x2 << 8 );
                                                           -( TWI ) Two - byte internal device address
                                                           AT91C_TWI_IADRSZ_3_BYTE EQU( 0x3 << 8 );
                                                           -( TWI ) Three - byte internal device address
                                                           AT91C_TWI_MREAD EQU( 0x1 << 12 );
                                                           -( TWI ) Master Read Direction
                                                           AT91C_TWI_DADR EQU( 0x7F << 16 );
                                                           -( TWI ) Device Address
/* - -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- */
                                                           AT91C_TWI_CLDIV EQU( 0xFF << 0 );
                                                           -( TWI ) Clock Low Divider
                                                           AT91C_TWI_CHDIV EQU( 0xFF << 8 );
                                                           -( TWI ) Clock High Divider
                                                           AT91C_TWI_CKDIV EQU( 0x7 << 16 );
                                                           -( TWI ) Clock Divider
/* - -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- */
                                                           AT91C_TWI_TXCOMP EQU( 0x1 << 0 );
                                                           -( TWI ) Transmission Completed
                                                           AT91C_TWI_RXRDY EQU( 0x1 << 1 );
                                                           -( TWI ) Receive holding register ReaDY
                                                           AT91C_TWI_TXRDY EQU( 0x1 << 2 );
                                                           -( TWI ) Transmit holding register ReaDY
                                                           AT91C_TWI_OVRE EQU( 0x1 << 6 );
                                                           -( TWI ) Overrun Error
                                                           AT91C_TWI_UNRE EQU( 0x1 << 7 );
                                                           -( TWI ) Underrun Error
                                                           AT91C_TWI_NACK EQU( 0x1 << 8 );
                                                           -( TWI ) Not Acknowledged
/* - -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- */
/* - -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- */
/* - -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR PWMC Channel Interface */
/* - ***************************************************************************** */
/* - -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- */
                                                           AT91C_PWMC_CPRE EQU( 0xF << 0 );
                                                           -( PWMC_CH ) Channel Pre - scaler:PWMC_CLKx
                                                           AT91C_PWMC_CPRE_MCK EQU( 0x0 );
                                                           -( PWMC_CH )
                                                           AT91C_PWMC_CPRE_MCKA EQU( 0xB );
                                                           -( PWMC_CH )
                                                           AT91C_PWMC_CPRE_MCKB EQU( 0xC );
                                                           -( PWMC_CH )
                                                           AT91C_PWMC_CALG EQU( 0x1 << 8 );
                                                           -( PWMC_CH ) Channel Alignment
                                                           AT91C_PWMC_CPOL EQU( 0x1 << 9 );
                                                           -( PWMC_CH ) Channel Polarity
                                                           AT91C_PWMC_CPD EQU( 0x1 << 10 );
                                                           -( PWMC_CH ) Channel Update Period
/* - -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- */
                                                           AT91C_PWMC_CDTY EQU( 0x0 << 0 );
                                                           -( PWMC_CH ) Channel Duty Cycle
/* - -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- */
                                                           AT91C_PWMC_CPRD EQU( 0x0 << 0 );
                                                           -( PWMC_CH ) Channel Period
/* - -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- */
                                                           AT91C_PWMC_CCNT EQU( 0x0 << 0 );
                                                           -( PWMC_CH ) Channel Counter
/* - -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- */
                                                           AT91C_PWMC_CUPD EQU( 0x0 << 0 );
                                                           -( PWMC_CH ) Channel Update

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Pulse Width Modulation Controller Interface */
/* - ***************************************************************************** */
/* - -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- */
                                                           AT91C_PWMC_DIVA EQU( 0xFF << 0 );
                                                           -( PWMC ) CLKA divide factor.
                                                              AT91C_PWMC_PREA EQU( 0xF << 8 );
                                                           -( PWMC ) Divider Input Clock Prescaler A
                                                           AT91C_PWMC_PREA_MCK EQU( 0x0 << 8 );
                                                           -( PWMC )
                                                           AT91C_PWMC_DIVB EQU( 0xFF << 16 );
                                                           -( PWMC ) CLKB divide factor.
                                                              AT91C_PWMC_PREB EQU( 0xF << 24 );
                                                           -( PWMC ) Divider Input Clock Prescaler B
                                                           AT91C_PWMC_PREB_MCK EQU( 0x0 << 24 );
                                                           -( PWMC )
/* - -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- */
                                                           AT91C_PWMC_CHID0 EQU( 0x1 << 0 );
                                                           -( PWMC ) Channel ID 0
                                                           AT91C_PWMC_CHID1 EQU( 0x1 << 1 );
                                                           -( PWMC ) Channel ID 1
                                                           AT91C_PWMC_CHID2 EQU( 0x1 << 2 );
                                                           -( PWMC ) Channel ID 2
                                                           AT91C_PWMC_CHID3 EQU( 0x1 << 3 );
                                                           -( PWMC ) Channel ID 3
/* - -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- */
/* - -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- */
/* - -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- */
/* - -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- */
/* - -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- */
/* - -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR USB Device Interface */
/* - ***************************************************************************** */
/* - -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- */
                                                           AT91C_UDP_FRM_NUM EQU( 0x7FF << 0 );
                                                           -( UDP ) Frame Number as Defined in the Packet Field Formats
                                                           AT91C_UDP_FRM_ERR EQU( 0x1 << 16 );
                                                           -( UDP ) Frame Error
                                                           AT91C_UDP_FRM_OK EQU( 0x1 << 17 );
                                                           -( UDP ) Frame OK
/* - -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- */
                                                           AT91C_UDP_FADDEN EQU( 0x1 << 0 );
                                                           -( UDP ) Function Address Enable
                                                           AT91C_UDP_CONFG EQU( 0x1 << 1 );
                                                           -( UDP ) Configured
                                                           AT91C_UDP_ESR EQU( 0x1 << 2 );
                                                           -( UDP ) Enable Send Resume
                                                           AT91C_UDP_RSMINPR EQU( 0x1 << 3 );
                                                           -( UDP ) A Resume Has Been Sent to the Host
                                                           AT91C_UDP_RMWUPE EQU( 0x1 << 4 );
                                                           -( UDP ) Remote Wake Up Enable
/* - -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- */
                                                           AT91C_UDP_FADD EQU( 0xFF << 0 );
                                                           -( UDP ) Function Address Value
                                                           AT91C_UDP_FEN EQU( 0x1 << 8 );
                                                           -( UDP ) Function Enable
/* - -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- */
                                                           AT91C_UDP_EPINT0 EQU( 0x1 << 0 );
                                                           -( UDP ) Endpoint 0 Interrupt
                                                           AT91C_UDP_EPINT1 EQU( 0x1 << 1 );
                                                           -( UDP ) Endpoint 0 Interrupt
                                                           AT91C_UDP_EPINT2 EQU( 0x1 << 2 );
                                                           -( UDP ) Endpoint 2 Interrupt
                                                           AT91C_UDP_EPINT3 EQU( 0x1 << 3 );
                                                           -( UDP ) Endpoint 3 Interrupt
                                                           AT91C_UDP_EPINT4 EQU( 0x1 << 4 );
                                                           -( UDP ) Endpoint 4 Interrupt
                                                           AT91C_UDP_EPINT5 EQU( 0x1 << 5 );
                                                           -( UDP ) Endpoint 5 Interrupt
                                                           AT91C_UDP_RXSUSP EQU( 0x1 << 8 );
                                                           -( UDP ) USB Suspend Interrupt
                                                           AT91C_UDP_RXRSM EQU( 0x1 << 9 );
                                                           -( UDP ) USB Resume Interrupt
                                                           AT91C_UDP_EXTRSM EQU( 0x1 << 10 );
                                                           -( UDP ) USB External Resume Interrupt
                                                           AT91C_UDP_SOFINT EQU( 0x1 << 11 );
                                                           -( UDP ) USB Start Of frame Interrupt
                                                           AT91C_UDP_WAKEUP EQU( 0x1 << 13 );
                                                           -( UDP ) USB Resume Interrupt
/* - -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- */
/* - -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- */
/* - -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- */
                                                           AT91C_UDP_ENDBUSRES EQU( 0x1 << 12 );
                                                           -( UDP ) USB End Of Bus Reset Interrupt
/* - -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- */
/* - -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- */
                                                           AT91C_UDP_EP0 EQU( 0x1 << 0 );
                                                           -( UDP ) Reset Endpoint 0
                                                           AT91C_UDP_EP1 EQU( 0x1 << 1 );
                                                           -( UDP ) Reset Endpoint 1
                                                           AT91C_UDP_EP2 EQU( 0x1 << 2 );
                                                           -( UDP ) Reset Endpoint 2
                                                           AT91C_UDP_EP3 EQU( 0x1 << 3 );
                                                           -( UDP ) Reset Endpoint 3
                                                           AT91C_UDP_EP4 EQU( 0x1 << 4 );
                                                           -( UDP ) Reset Endpoint 4
                                                           AT91C_UDP_EP5 EQU( 0x1 << 5 );
                                                           -( UDP ) Reset Endpoint 5
/* - -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- */
                                                           AT91C_UDP_TXCOMP EQU( 0x1 << 0 );
                                                           -( UDP ) Generates an IN packet with data previously written in the DPR
                                                           AT91C_UDP_RX_DATA_BK0 EQU( 0x1 << 1 );
                                                           -( UDP ) Receive Data Bank 0
                                                           AT91C_UDP_RXSETUP EQU( 0x1 << 2 );
                                                           -( UDP ) Sends STALL to the Host( Control endpoints )
                                                           AT91C_UDP_ISOERROR EQU( 0x1 << 3 );
                                                           -( UDP ) Isochronous error( Isochronous endpoints )
                                                           AT91C_UDP_TXPKTRDY EQU( 0x1 << 4 );
                                                           -( UDP ) Transmit Packet Ready
                                                           AT91C_UDP_FORCESTALL EQU( 0x1 << 5 );
                                                           -( UDP ) Force Stall( used by Control, Bulk and Isochronous endpoints ).
                                                              AT91C_UDP_RX_DATA_BK1 EQU( 0x1 << 6 );
                                                           -( UDP ) Receive Data Bank 1 ( only used by endpoints with ping - pong attributes ).
                                                              AT91C_UDP_DIR EQU( 0x1 << 7 );
                                                           -( UDP ) Transfer Direction
                                                           AT91C_UDP_EPTYPE EQU( 0x7 << 8 );
                                                           -( UDP ) Endpoint type
                                                           AT91C_UDP_EPTYPE_CTRL EQU( 0x0 << 8 );
                                                           -( UDP ) Control
                                                           AT91C_UDP_EPTYPE_ISO_OUT EQU( 0x1 << 8 );
                                                           -( UDP ) Isochronous OUT
                                                           AT91C_UDP_EPTYPE_BULK_OUT EQU( 0x2 << 8 );
                                                           -( UDP ) Bulk OUT
                                                           AT91C_UDP_EPTYPE_INT_OUT EQU( 0x3 << 8 );
                                                           -( UDP ) Interrupt OUT
                                                           AT91C_UDP_EPTYPE_ISO_IN EQU( 0x5 << 8 );
                                                           -( UDP ) Isochronous IN
                                                           AT91C_UDP_EPTYPE_BULK_IN EQU( 0x6 << 8 );
                                                           -( UDP ) Bulk IN
                                                           AT91C_UDP_EPTYPE_INT_IN EQU( 0x7 << 8 );
                                                           -( UDP ) Interrupt IN
                                                           AT91C_UDP_DTGLE EQU( 0x1 << 11 );
                                                           -( UDP ) Data Toggle
                                                           AT91C_UDP_EPEDS EQU( 0x1 << 15 );
                                                           -( UDP ) Endpoint Enable Disable
                                                           AT91C_UDP_RXBYTECNT EQU( 0x7FF << 16 );
                                                           -( UDP ) Number Of Bytes Available in the FIFO
/* - -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- */
                                                           AT91C_UDP_TXVDIS EQU( 0x1 << 8 );
                                                           -( UDP )
                                                           AT91C_UDP_PUON EQU( 0x1 << 9 );
                                                           -( UDP ) Pull - up ON

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Timer Counter Channel Interface */
/* - ***************************************************************************** */
/* - -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- */
                                                           AT91C_TC_CLKEN EQU( 0x1 << 0 );
                                                           -( TC ) Counter Clock Enable Command
                                                           AT91C_TC_CLKDIS EQU( 0x1 << 1 );
                                                           -( TC ) Counter Clock Disable Command
                                                           AT91C_TC_SWTRG EQU( 0x1 << 2 );
                                                           -( TC ) Software Trigger Command
/* - -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- */
                                                           AT91C_TC_CLKS EQU( 0x7 << 0 );
                                                           -( TC ) Clock Selection
                                                           AT91C_TC_CLKS_TIMER_DIV1_CLOCK EQU( 0x0 );
                                                           -( TC ) Clock selected:TIMER_DIV1_CLOCK
                                                           AT91C_TC_CLKS_TIMER_DIV2_CLOCK EQU( 0x1 );
                                                           -( TC ) Clock selected:TIMER_DIV2_CLOCK
                                                           AT91C_TC_CLKS_TIMER_DIV3_CLOCK EQU( 0x2 );
                                                           -( TC ) Clock selected:TIMER_DIV3_CLOCK
                                                           AT91C_TC_CLKS_TIMER_DIV4_CLOCK EQU( 0x3 );
                                                           -( TC ) Clock selected:TIMER_DIV4_CLOCK
                                                           AT91C_TC_CLKS_TIMER_DIV5_CLOCK EQU( 0x4 );
                                                           -( TC ) Clock selected:TIMER_DIV5_CLOCK
                                                           AT91C_TC_CLKS_XC0 EQU( 0x5 );
                                                           -( TC ) Clock selected:XC0
                                                           AT91C_TC_CLKS_XC1 EQU( 0x6 );
                                                           -( TC ) Clock selected:XC1
                                                           AT91C_TC_CLKS_XC2 EQU( 0x7 );
                                                           -( TC ) Clock selected:XC2
                                                           AT91C_TC_CLKI EQU( 0x1 << 3 );
                                                           -( TC ) Clock Invert
                                                           AT91C_TC_BURST EQU( 0x3 << 4 );
                                                           -( TC ) Burst Signal Selection
                                                           AT91C_TC_BURST_NONE EQU( 0x0 << 4 );
                                                           -( TC ) The clock is not gated by an external signal
                                                           AT91C_TC_BURST_XC0 EQU( 0x1 << 4 );
                                                           -( TC ) XC0 is ANDed with the selected clock
                                                           AT91C_TC_BURST_XC1 EQU( 0x2 << 4 );
                                                           -( TC ) XC1 is ANDed with the selected clock
                                                           AT91C_TC_BURST_XC2 EQU( 0x3 << 4 );
                                                           -( TC ) XC2 is ANDed with the selected clock
                                                           AT91C_TC_CPCSTOP EQU( 0x1 << 6 );
                                                           -( TC ) Counter Clock Stopped with RC Compare
                                                           AT91C_TC_LDBSTOP EQU( 0x1 << 6 );
                                                           -( TC ) Counter Clock Stopped with RB Loading
                                                           AT91C_TC_CPCDIS EQU( 0x1 << 7 );
                                                           -( TC ) Counter Clock Disable with RC Compare
                                                           AT91C_TC_LDBDIS EQU( 0x1 << 7 );
                                                           -( TC ) Counter Clock Disabled with RB Loading
                                                           AT91C_TC_ETRGEDG EQU( 0x3 << 8 );
                                                           -( TC ) External Trigger Edge Selection
                                                           AT91C_TC_ETRGEDG_NONE EQU( 0x0 << 8 );
                                                           -( TC ) Edge:None
                                                           AT91C_TC_ETRGEDG_RISING EQU( 0x1 << 8 );
                                                           -( TC ) Edge:rising edge
                                                           AT91C_TC_ETRGEDG_FALLING EQU( 0x2 << 8 );
                                                           -( TC ) Edge:falling edge
                                                           AT91C_TC_ETRGEDG_BOTH EQU( 0x3 << 8 );
                                                           -( TC ) Edge:each edge
                                                           AT91C_TC_EEVTEDG EQU( 0x3 << 8 );
                                                           -( TC ) External Event Edge Selection
                                                           AT91C_TC_EEVTEDG_NONE EQU( 0x0 << 8 );
                                                           -( TC ) Edge:None
                                                           AT91C_TC_EEVTEDG_RISING EQU( 0x1 << 8 );
                                                           -( TC ) Edge:rising edge
                                                           AT91C_TC_EEVTEDG_FALLING EQU( 0x2 << 8 );
                                                           -( TC ) Edge:falling edge
                                                           AT91C_TC_EEVTEDG_BOTH EQU( 0x3 << 8 );
                                                           -( TC ) Edge:each edge
                                                           AT91C_TC_EEVT EQU( 0x3 << 10 );
                                                           -( TC ) External Event Selection
                                                           AT91C_TC_EEVT_TIOB EQU( 0x0 << 10 );
                                                           -( TC ) Signal selected as external event:TIOB TIOB direction: input
                                                           AT91C_TC_EEVT_XC0 EQU( 0x1 << 10 );
                                                           -( TC ) Signal selected as external event:XC0 TIOB direction: output
                                                           AT91C_TC_EEVT_XC1 EQU( 0x2 << 10 );
                                                           -( TC ) Signal selected as external event:XC1 TIOB direction: output
                                                           AT91C_TC_EEVT_XC2 EQU( 0x3 << 10 );
                                                           -( TC ) Signal selected as external event:XC2 TIOB direction: output
                                                           AT91C_TC_ABETRG EQU( 0x1 << 10 );
                                                           -( TC ) TIOA or TIOB External Trigger Selection
                                                           AT91C_TC_ENETRG EQU( 0x1 << 12 );
                                                           -( TC ) External Event Trigger enable
                                                           AT91C_TC_WAVESEL EQU( 0x3 << 13 );
                                                           -( TC ) Waveform Selection
                                                           AT91C_TC_WAVESEL_UP EQU( 0x0 << 13 );
                                                           -( TC ) UP mode without atomatic trigger on RC Compare
                                                           AT91C_TC_WAVESEL_UPDOWN EQU( 0x1 << 13 );
                                                           -( TC ) UPDOWN mode without automatic trigger on RC Compare
                                                           AT91C_TC_WAVESEL_UP_AUTO EQU( 0x2 << 13 );
                                                           -( TC ) UP mode with automatic trigger on RC Compare
                                                           AT91C_TC_WAVESEL_UPDOWN_AUTO EQU( 0x3 << 13 );
                                                           -( TC ) UPDOWN mode with automatic trigger on RC Compare
                                                           AT91C_TC_CPCTRG EQU( 0x1 << 14 );
                                                           -( TC ) RC Compare Trigger Enable
                                                           AT91C_TC_WAVE EQU( 0x1 << 15 );
                                                           -( TC )
                                                           AT91C_TC_ACPA EQU( 0x3 << 16 );
                                                           -( TC ) RA Compare Effect on TIOA
                                                           AT91C_TC_ACPA_NONE EQU( 0x0 << 16 );
                                                           -( TC ) Effect:none
                                                           AT91C_TC_ACPA_SET EQU( 0x1 << 16 );
                                                           -( TC ) Effect:set
                                                           AT91C_TC_ACPA_CLEAR EQU( 0x2 << 16 );
                                                           -( TC ) Effect:clear
                                                           AT91C_TC_ACPA_TOGGLE EQU( 0x3 << 16 );
                                                           -( TC ) Effect:toggle
                                                           AT91C_TC_LDRA EQU( 0x3 << 16 );
                                                           -( TC ) RA Loading Selection
                                                           AT91C_TC_LDRA_NONE EQU( 0x0 << 16 );
                                                           -( TC ) Edge:None
                                                           AT91C_TC_LDRA_RISING EQU( 0x1 << 16 );
                                                           -( TC ) Edge:rising edge of TIOA
                                                           AT91C_TC_LDRA_FALLING EQU( 0x2 << 16 );
                                                           -( TC ) Edge:falling edge of TIOA
                                                           AT91C_TC_LDRA_BOTH EQU( 0x3 << 16 );
                                                           -( TC ) Edge:each edge of TIOA
                                                           AT91C_TC_ACPC EQU( 0x3 << 18 );
                                                           -( TC ) RC Compare Effect on TIOA
                                                           AT91C_TC_ACPC_NONE EQU( 0x0 << 18 );
                                                           -( TC ) Effect:none
                                                           AT91C_TC_ACPC_SET EQU( 0x1 << 18 );
                                                           -( TC ) Effect:set
                                                           AT91C_TC_ACPC_CLEAR EQU( 0x2 << 18 );
                                                           -( TC ) Effect:clear
                                                           AT91C_TC_ACPC_TOGGLE EQU( 0x3 << 18 );
                                                           -( TC ) Effect:toggle
                                                           AT91C_TC_LDRB EQU( 0x3 << 18 );
                                                           -( TC ) RB Loading Selection
                                                           AT91C_TC_LDRB_NONE EQU( 0x0 << 18 );
                                                           -( TC ) Edge:None
                                                           AT91C_TC_LDRB_RISING EQU( 0x1 << 18 );
                                                           -( TC ) Edge:rising edge of TIOA
                                                           AT91C_TC_LDRB_FALLING EQU( 0x2 << 18 );
                                                           -( TC ) Edge:falling edge of TIOA
                                                           AT91C_TC_LDRB_BOTH EQU( 0x3 << 18 );
                                                           -( TC ) Edge:each edge of TIOA
                                                           AT91C_TC_AEEVT EQU( 0x3 << 20 );
                                                           -( TC ) External Event Effect on TIOA
                                                           AT91C_TC_AEEVT_NONE EQU( 0x0 << 20 );
                                                           -( TC ) Effect:none
                                                           AT91C_TC_AEEVT_SET EQU( 0x1 << 20 );
                                                           -( TC ) Effect:set
                                                           AT91C_TC_AEEVT_CLEAR EQU( 0x2 << 20 );
                                                           -( TC ) Effect:clear
                                                           AT91C_TC_AEEVT_TOGGLE EQU( 0x3 << 20 );
                                                           -( TC ) Effect:toggle
                                                           AT91C_TC_ASWTRG EQU( 0x3 << 22 );
                                                           -( TC ) Software Trigger Effect on TIOA
                                                           AT91C_TC_ASWTRG_NONE EQU( 0x0 << 22 );
                                                           -( TC ) Effect:none
                                                           AT91C_TC_ASWTRG_SET EQU( 0x1 << 22 );
                                                           -( TC ) Effect:set
                                                           AT91C_TC_ASWTRG_CLEAR EQU( 0x2 << 22 );
                                                           -( TC ) Effect:clear
                                                           AT91C_TC_ASWTRG_TOGGLE EQU( 0x3 << 22 );
                                                           -( TC ) Effect:toggle
                                                           AT91C_TC_BCPB EQU( 0x3 << 24 );
                                                           -( TC ) RB Compare Effect on TIOB
                                                           AT91C_TC_BCPB_NONE EQU( 0x0 << 24 );
                                                           -( TC ) Effect:none
                                                           AT91C_TC_BCPB_SET EQU( 0x1 << 24 );
                                                           -( TC ) Effect:set
                                                           AT91C_TC_BCPB_CLEAR EQU( 0x2 << 24 );
                                                           -( TC ) Effect:clear
                                                           AT91C_TC_BCPB_TOGGLE EQU( 0x3 << 24 );
                                                           -( TC ) Effect:toggle
                                                           AT91C_TC_BCPC EQU( 0x3 << 26 );
                                                           -( TC ) RC Compare Effect on TIOB
                                                           AT91C_TC_BCPC_NONE EQU( 0x0 << 26 );
                                                           -( TC ) Effect:none
                                                           AT91C_TC_BCPC_SET EQU( 0x1 << 26 );
                                                           -( TC ) Effect:set
                                                           AT91C_TC_BCPC_CLEAR EQU( 0x2 << 26 );
                                                           -( TC ) Effect:clear
                                                           AT91C_TC_BCPC_TOGGLE EQU( 0x3 << 26 );
                                                           -( TC ) Effect:toggle
                                                           AT91C_TC_BEEVT EQU( 0x3 << 28 );
                                                           -( TC ) External Event Effect on TIOB
                                                           AT91C_TC_BEEVT_NONE EQU( 0x0 << 28 );
                                                           -( TC ) Effect:none
                                                           AT91C_TC_BEEVT_SET EQU( 0x1 << 28 );
                                                           -( TC ) Effect:set
                                                           AT91C_TC_BEEVT_CLEAR EQU( 0x2 << 28 );
                                                           -( TC ) Effect:clear
                                                           AT91C_TC_BEEVT_TOGGLE EQU( 0x3 << 28 );
                                                           -( TC ) Effect:toggle
                                                           AT91C_TC_BSWTRG EQU( 0x3 << 30 );
                                                           -( TC ) Software Trigger Effect on TIOB
                                                           AT91C_TC_BSWTRG_NONE EQU( 0x0 << 30 );
                                                           -( TC ) Effect:none
                                                           AT91C_TC_BSWTRG_SET EQU( 0x1 << 30 );
                                                           -( TC ) Effect:set
                                                           AT91C_TC_BSWTRG_CLEAR EQU( 0x2 << 30 );
                                                           -( TC ) Effect:clear
                                                           AT91C_TC_BSWTRG_TOGGLE EQU( 0x3 << 30 );
                                                           -( TC ) Effect:toggle
/* - -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- */
                                                           AT91C_TC_COVFS EQU( 0x1 << 0 );
                                                           -( TC ) Counter Overflow
                                                           AT91C_TC_LOVRS EQU( 0x1 << 1 );
                                                           -( TC ) Load Overrun
                                                           AT91C_TC_CPAS EQU( 0x1 << 2 );
                                                           -( TC ) RA Compare
                                                           AT91C_TC_CPBS EQU( 0x1 << 3 );
                                                           -( TC ) RB Compare
                                                           AT91C_TC_CPCS EQU( 0x1 << 4 );
                                                           -( TC ) RC Compare
                                                           AT91C_TC_LDRAS EQU( 0x1 << 5 );
                                                           -( TC ) RA Loading
                                                           AT91C_TC_LDRBS EQU( 0x1 << 6 );
                                                           -( TC ) RB Loading
                                                           AT91C_TC_ETRGS EQU( 0x1 << 7 );
                                                           -( TC ) External Trigger
                                                           AT91C_TC_CLKSTA EQU( 0x1 << 16 );
                                                           -( TC ) Clock Enabling
                                                           AT91C_TC_MTIOA EQU( 0x1 << 17 );
                                                           -( TC ) TIOA Mirror
                                                           AT91C_TC_MTIOB EQU( 0x1 << 18 );
                                                           -( TC ) TIOA Mirror
/* - -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- */
/* - -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- */
/* - -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Timer Counter Interface */
/* - ***************************************************************************** */
/* - -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- */
                                                           AT91C_TCB_SYNC EQU( 0x1 << 0 );
                                                           -( TCB ) Synchro Command
/* - -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- */
                                                           AT91C_TCB_TC0XC0S EQU( 0x3 << 0 );
                                                           -( TCB ) External Clock Signal 0 Selection
                                                           AT91C_TCB_TC0XC0S_TCLK0 EQU( 0x0 );
                                                           -( TCB ) TCLK0 connected to XC0
                                                           AT91C_TCB_TC0XC0S_NONE EQU( 0x1 );
                                                           -( TCB ) None signal connected to XC0
                                                           AT91C_TCB_TC0XC0S_TIOA1 EQU( 0x2 );
                                                           -( TCB ) TIOA1 connected to XC0
                                                           AT91C_TCB_TC0XC0S_TIOA2 EQU( 0x3 );
                                                           -( TCB ) TIOA2 connected to XC0
                                                           AT91C_TCB_TC1XC1S EQU( 0x3 << 2 );
                                                           -( TCB ) External Clock Signal 1 Selection
                                                           AT91C_TCB_TC1XC1S_TCLK1 EQU( 0x0 << 2 );
                                                           -( TCB ) TCLK1 connected to XC1
                                                           AT91C_TCB_TC1XC1S_NONE EQU( 0x1 << 2 );
                                                           -( TCB ) None signal connected to XC1
                                                           AT91C_TCB_TC1XC1S_TIOA0 EQU( 0x2 << 2 );
                                                           -( TCB ) TIOA0 connected to XC1
                                                           AT91C_TCB_TC1XC1S_TIOA2 EQU( 0x3 << 2 );
                                                           -( TCB ) TIOA2 connected to XC1
                                                           AT91C_TCB_TC2XC2S EQU( 0x3 << 4 );
                                                           -( TCB ) External Clock Signal 2 Selection
                                                           AT91C_TCB_TC2XC2S_TCLK2 EQU( 0x0 << 4 );
                                                           -( TCB ) TCLK2 connected to XC2
                                                           AT91C_TCB_TC2XC2S_NONE EQU( 0x1 << 4 );
                                                           -( TCB ) None signal connected to XC2
                                                           AT91C_TCB_TC2XC2S_TIOA0 EQU( 0x2 << 4 );
                                                           -( TCB ) TIOA0 connected to XC2
                                                           AT91C_TCB_TC2XC2S_TIOA1 EQU( 0x3 << 4 );
                                                           -( TCB ) TIOA2 connected to XC2

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Control Area Network MailBox Interface */
/* - ***************************************************************************** */
/* - -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- */
                                                           AT91C_CAN_MTIMEMARK EQU( 0xFFFF << 0 );
                                                           -( CAN_MB ) Mailbox Timemark
                                                           AT91C_CAN_PRIOR EQU( 0xF << 16 );
                                                           -( CAN_MB ) Mailbox Priority
                                                           AT91C_CAN_MOT EQU( 0x7 << 24 );
                                                           -( CAN_MB ) Mailbox Object Type
                                                           AT91C_CAN_MOT_DIS EQU( 0x0 << 24 );
                                                           -( CAN_MB )
                                                           AT91C_CAN_MOT_RX EQU( 0x1 << 24 );
                                                           -( CAN_MB )
                                                           AT91C_CAN_MOT_RXOVERWRITE EQU( 0x2 << 24 );
                                                           -( CAN_MB )
                                                           AT91C_CAN_MOT_TX EQU( 0x3 << 24 );
                                                           -( CAN_MB )
                                                           AT91C_CAN_MOT_CONSUMER EQU( 0x4 << 24 );
                                                           -( CAN_MB )
                                                           AT91C_CAN_MOT_PRODUCER EQU( 0x5 << 24 );
                                                           -( CAN_MB )
/* - -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- */
                                                           AT91C_CAN_MIDvB EQU( 0x3FFFF << 0 );
                                                           -( CAN_MB ) Complementary bits for identifier in extended mode
                                                           AT91C_CAN_MIDvA EQU( 0x7FF << 18 );
                                                           -( CAN_MB ) Identifier for standard frame mode
                                                           AT91C_CAN_MIDE EQU( 0x1 << 29 );
                                                           -( CAN_MB ) Identifier Version
/* - -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- */
/* - -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- */
/* - -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- */
                                                           AT91C_CAN_MTIMESTAMP EQU( 0xFFFF << 0 );
                                                           -( CAN_MB ) Timer Value
                                                           AT91C_CAN_MDLC EQU( 0xF << 16 );
                                                           -( CAN_MB ) Mailbox Data Length Code
                                                           AT91C_CAN_MRTR EQU( 0x1 << 20 );
                                                           -( CAN_MB ) Mailbox Remote Transmission Request
                                                           AT91C_CAN_MABT EQU( 0x1 << 22 );
                                                           -( CAN_MB ) Mailbox Message Abort
                                                           AT91C_CAN_MRDY EQU( 0x1 << 23 );
                                                           -( CAN_MB ) Mailbox Ready
                                                           AT91C_CAN_MMI EQU( 0x1 << 24 );
                                                           -( CAN_MB ) Mailbox Message Ignored
/* - -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- */
/* - -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- */
/* - -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- */
                                                           AT91C_CAN_MACR EQU( 0x1 << 22 );
                                                           -( CAN_MB ) Abort Request for Mailbox
                                                           AT91C_CAN_MTCR EQU( 0x1 << 23 );
                                                           -( CAN_MB ) Mailbox Transfer Command

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Control Area Network Interface */
/* - ***************************************************************************** */
/* - -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- */
                                                           AT91C_CAN_CANEN EQU( 0x1 << 0 );
                                                           -( CAN ) CAN Controller Enable
                                                           AT91C_CAN_LPM EQU( 0x1 << 1 );
                                                           -( CAN ) Disable / Enable Low Power Mode
                                                           AT91C_CAN_ABM EQU( 0x1 << 2 );
                                                           -( CAN ) Disable / Enable Autobaud / Listen Mode
                                                           AT91C_CAN_OVL EQU( 0x1 << 3 );
                                                           -( CAN ) Disable / Enable Overload Frame
                                                           AT91C_CAN_TEOF EQU( 0x1 << 4 );
                                                           -( CAN ) Time Stamp messages at each end of Frame
                                                           AT91C_CAN_TTM EQU( 0x1 << 5 );
                                                           -( CAN ) Disable / Enable Time Trigger Mode
                                                           AT91C_CAN_TIMFRZ EQU( 0x1 << 6 );
                                                           -( CAN ) Enable Timer Freeze
                                                           AT91C_CAN_DRPT EQU( 0x1 << 7 );
                                                           -( CAN ) Disable Repeat
/* - -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- */
                                                           AT91C_CAN_MB0 EQU( 0x1 << 0 );
                                                           -( CAN ) Mailbox 0 Flag
                                                           AT91C_CAN_MB1 EQU( 0x1 << 1 );
                                                           -( CAN ) Mailbox 1 Flag
                                                           AT91C_CAN_MB2 EQU( 0x1 << 2 );
                                                           -( CAN ) Mailbox 2 Flag
                                                           AT91C_CAN_MB3 EQU( 0x1 << 3 );
                                                           -( CAN ) Mailbox 3 Flag
                                                           AT91C_CAN_MB4 EQU( 0x1 << 4 );
                                                           -( CAN ) Mailbox 4 Flag
                                                           AT91C_CAN_MB5 EQU( 0x1 << 5 );
                                                           -( CAN ) Mailbox 5 Flag
                                                           AT91C_CAN_MB6 EQU( 0x1 << 6 );
                                                           -( CAN ) Mailbox 6 Flag
                                                           AT91C_CAN_MB7 EQU( 0x1 << 7 );
                                                           -( CAN ) Mailbox 7 Flag
                                                           AT91C_CAN_MB8 EQU( 0x1 << 8 );
                                                           -( CAN ) Mailbox 8 Flag
                                                           AT91C_CAN_MB9 EQU( 0x1 << 9 );
                                                           -( CAN ) Mailbox 9 Flag
                                                           AT91C_CAN_MB10 EQU( 0x1 << 10 );
                                                           -( CAN ) Mailbox 10 Flag
                                                           AT91C_CAN_MB11 EQU( 0x1 << 11 );
                                                           -( CAN ) Mailbox 11 Flag
                                                           AT91C_CAN_MB12 EQU( 0x1 << 12 );
                                                           -( CAN ) Mailbox 12 Flag
                                                           AT91C_CAN_MB13 EQU( 0x1 << 13 );
                                                           -( CAN ) Mailbox 13 Flag
                                                           AT91C_CAN_MB14 EQU( 0x1 << 14 );
                                                           -( CAN ) Mailbox 14 Flag
                                                           AT91C_CAN_MB15 EQU( 0x1 << 15 );
                                                           -( CAN ) Mailbox 15 Flag
                                                           AT91C_CAN_ERRA EQU( 0x1 << 16 );
                                                           -( CAN ) Error Active Mode Flag
                                                           AT91C_CAN_WARN EQU( 0x1 << 17 );
                                                           -( CAN ) Warning Limit Flag
                                                           AT91C_CAN_ERRP EQU( 0x1 << 18 );
                                                           -( CAN ) Error Passive Mode Flag
                                                           AT91C_CAN_BOFF EQU( 0x1 << 19 );
                                                           -( CAN ) Bus Off Mode Flag
                                                           AT91C_CAN_SLEEP EQU( 0x1 << 20 );
                                                           -( CAN ) Sleep Flag
                                                           AT91C_CAN_WAKEUP EQU( 0x1 << 21 );
                                                           -( CAN ) Wakeup Flag
                                                           AT91C_CAN_TOVF EQU( 0x1 << 22 );
                                                           -( CAN ) Timer Overflow Flag
                                                           AT91C_CAN_TSTP EQU( 0x1 << 23 );
                                                           -( CAN ) Timestamp Flag
                                                           AT91C_CAN_CERR EQU( 0x1 << 24 );
                                                           -( CAN ) CRC Error
                                                           AT91C_CAN_SERR EQU( 0x1 << 25 );
                                                           -( CAN ) Stuffing Error
                                                           AT91C_CAN_AERR EQU( 0x1 << 26 );
                                                           -( CAN ) Acknowledgment Error
                                                           AT91C_CAN_FERR EQU( 0x1 << 27 );
                                                           -( CAN ) Form Error
                                                           AT91C_CAN_BERR EQU( 0x1 << 28 );
                                                           -( CAN ) Bit Error
/* - -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- */
/* - -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- */
/* - -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- */
                                                           AT91C_CAN_RBSY EQU( 0x1 << 29 );
                                                           -( CAN ) Receiver Busy
                                                           AT91C_CAN_TBSY EQU( 0x1 << 30 );
                                                           -( CAN ) Transmitter Busy
                                                           AT91C_CAN_OVLY EQU( 0x1 << 31 );
                                                           -( CAN ) Overload Busy
/* - -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- */
                                                           AT91C_CAN_PHASE2 EQU( 0x7 << 0 );
                                                           -( CAN ) Phase 2 segment
                                                           AT91C_CAN_PHASE1 EQU( 0x7 << 4 );
                                                           -( CAN ) Phase 1 segment
                                                           AT91C_CAN_PROPAG EQU( 0x7 << 8 );
                                                           -( CAN ) Programmation time segment
                                                           AT91C_CAN_SYNC EQU( 0x3 << 12 );
                                                           -( CAN ) Re - synchronization jump width segment
                                                           AT91C_CAN_BRP EQU( 0x7F << 16 );
                                                           -( CAN ) Baudrate Prescaler
                                                           AT91C_CAN_SMP EQU( 0x1 << 24 );
                                                           -( CAN ) Sampling mode
/* - -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- */
                                                           AT91C_CAN_TIMER EQU( 0xFFFF << 0 );
                                                           -( CAN ) Timer field
/* - -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- */
/* - -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- */
                                                           AT91C_CAN_REC EQU( 0xFF << 0 );
                                                           -( CAN ) Receive Error Counter
                                                           AT91C_CAN_TEC EQU( 0xFF << 16 );
                                                           -( CAN ) Transmit Error Counter
/* - -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- */
                                                           AT91C_CAN_TIMRST EQU( 0x1 << 31 );
                                                           -( CAN ) Timer Reset Field
/* - -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Ethernet MAC 10/100 */
/* - ***************************************************************************** */
/* - -------- EMAC_NCR : (EMAC Offset: 0x0)  -------- */
                                                           AT91C_EMAC_LB EQU( 0x1 << 0 );
                                                           -( EMAC ) Loopback.Optional.When set, loopback signal is at high level.
                                                              AT91C_EMAC_LLB EQU( 0x1 << 1 );
                                                           -( EMAC ) Loopback local.
                                                              AT91C_EMAC_RE EQU( 0x1 << 2 );
                                                           -( EMAC ) Receive enable.
                                                              AT91C_EMAC_TE EQU( 0x1 << 3 );
                                                           -( EMAC ) Transmit enable.
                                                              AT91C_EMAC_MPE EQU( 0x1 << 4 );
                                                           -( EMAC ) Management port enable.
                                                              AT91C_EMAC_CLRSTAT EQU( 0x1 << 5 );
                                                           -( EMAC ) Clear statistics registers.
                                                              AT91C_EMAC_INCSTAT EQU( 0x1 << 6 );
                                                           -( EMAC ) Increment statistics registers.
                                                              AT91C_EMAC_WESTAT EQU( 0x1 << 7 );
                                                           -( EMAC ) Write enable for statistics registers.
                                                              AT91C_EMAC_BP EQU( 0x1 << 8 );
                                                           -( EMAC ) Back pressure.
                                                              AT91C_EMAC_TSTART EQU( 0x1 << 9 );
                                                           -( EMAC ) Start Transmission.
                                                              AT91C_EMAC_THALT EQU( 0x1 << 10 );
                                                           -( EMAC ) Transmission Halt.
                                                              AT91C_EMAC_TPFR EQU( 0x1 << 11 );
                                                           -( EMAC ) Transmit pause frame
                                                           AT91C_EMAC_TZQ EQU( 0x1 << 12 );
                                                           -( EMAC ) Transmit zero quantum pause frame
/* - -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- */
                                                           AT91C_EMAC_SPD EQU( 0x1 << 0 );
                                                           -( EMAC ) Speed.
                                                              AT91C_EMAC_FD EQU( 0x1 << 1 );
                                                           -( EMAC ) Full duplex.
                                                              AT91C_EMAC_JFRAME EQU( 0x1 << 3 );
                                                           -( EMAC ) Jumbo Frames.
                                                              AT91C_EMAC_CAF EQU( 0x1 << 4 );
                                                           -( EMAC ) Copy all frames.
                                                              AT91C_EMAC_NBC EQU( 0x1 << 5 );
                                                           -( EMAC ) No broadcast.
                                                              AT91C_EMAC_MTI EQU( 0x1 << 6 );
                                                           -( EMAC ) Multicast hash event enable
                                                           AT91C_EMAC_UNI EQU( 0x1 << 7 );
                                                           -( EMAC ) Unicast hash enable.
                                                              AT91C_EMAC_BIG EQU( 0x1 << 8 );
                                                           -( EMAC ) Receive 1522 bytes.
                                                              AT91C_EMAC_EAE EQU( 0x1 << 9 );
                                                           -( EMAC ) External address match enable.
                                                              AT91C_EMAC_CLK EQU( 0x3 << 10 );
                                                           -( EMAC )
                                                           AT91C_EMAC_CLK_HCLK_8 EQU( 0x0 << 10 );
                                                           -( EMAC ) HCLK divided by 8
                                                           AT91C_EMAC_CLK_HCLK_16 EQU( 0x1 << 10 );
                                                           -( EMAC ) HCLK divided by 16
                                                           AT91C_EMAC_CLK_HCLK_32 EQU( 0x2 << 10 );
                                                           -( EMAC ) HCLK divided by 32
                                                           AT91C_EMAC_CLK_HCLK_64 EQU( 0x3 << 10 );
                                                           -( EMAC ) HCLK divided by 64
                                                           AT91C_EMAC_RTY EQU( 0x1 << 12 );
                                                           -( EMAC )
                                                           AT91C_EMAC_PAE EQU( 0x1 << 13 );
                                                           -( EMAC )
                                                           AT91C_EMAC_RBOF EQU( 0x3 << 14 );
                                                           -( EMAC )
                                                           AT91C_EMAC_RBOF_OFFSET_0 EQU( 0x0 << 14 );
                                                           -( EMAC ) no offset from start of receive buffer
                                                           AT91C_EMAC_RBOF_OFFSET_1 EQU( 0x1 << 14 );
                                                           -( EMAC ) one byte offset from start of receive buffer
                                                           AT91C_EMAC_RBOF_OFFSET_2 EQU( 0x2 << 14 );
                                                           -( EMAC ) two bytes offset from start of receive buffer
                                                           AT91C_EMAC_RBOF_OFFSET_3 EQU( 0x3 << 14 );
                                                           -( EMAC ) three bytes offset from start of receive buffer
                                                           AT91C_EMAC_RLCE EQU( 0x1 << 16 );
                                                           -( EMAC ) Receive Length field Checking Enable
                                                           AT91C_EMAC_DRFCS EQU( 0x1 << 17 );
                                                           -( EMAC ) Discard Receive FCS
                                                           AT91C_EMAC_EFRHD EQU( 0x1 << 18 );
                                                           -( EMAC )
                                                           AT91C_EMAC_IRXFCS EQU( 0x1 << 19 );
                                                           -( EMAC ) Ignore RX FCS
/* - -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- */
                                                           AT91C_EMAC_LINKR EQU( 0x1 << 0 );
                                                           -( EMAC )
                                                           AT91C_EMAC_MDIO EQU( 0x1 << 1 );
                                                           -( EMAC )
                                                           AT91C_EMAC_IDLE EQU( 0x1 << 2 );
                                                           -( EMAC )
/* - -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- */
                                                           AT91C_EMAC_UBR EQU( 0x1 << 0 );
                                                           -( EMAC )
                                                           AT91C_EMAC_COL EQU( 0x1 << 1 );
                                                           -( EMAC )
                                                           AT91C_EMAC_RLES EQU( 0x1 << 2 );
                                                           -( EMAC )
                                                           AT91C_EMAC_TGO EQU( 0x1 << 3 );
                                                           -( EMAC ) Transmit Go
                                                           AT91C_EMAC_BEX EQU( 0x1 << 4 );
                                                           -( EMAC ) Buffers exhausted mid frame
                                                           AT91C_EMAC_COMP EQU( 0x1 << 5 );
                                                           -( EMAC )
                                                           AT91C_EMAC_UND EQU( 0x1 << 6 );
                                                           -( EMAC )
/* - -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- */
                                                           AT91C_EMAC_BNA EQU( 0x1 << 0 );
                                                           -( EMAC )
                                                           AT91C_EMAC_REC EQU( 0x1 << 1 );
                                                           -( EMAC )
                                                           AT91C_EMAC_OVR EQU( 0x1 << 2 );
                                                           -( EMAC )
/* - -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- */
                                                           AT91C_EMAC_MFD EQU( 0x1 << 0 );
                                                           -( EMAC )
                                                           AT91C_EMAC_RCOMP EQU( 0x1 << 1 );
                                                           -( EMAC )
                                                           AT91C_EMAC_RXUBR EQU( 0x1 << 2 );
                                                           -( EMAC )
                                                           AT91C_EMAC_TXUBR EQU( 0x1 << 3 );
                                                           -( EMAC )
                                                           AT91C_EMAC_TUNDR EQU( 0x1 << 4 );
                                                           -( EMAC )
                                                           AT91C_EMAC_RLEX EQU( 0x1 << 5 );
                                                           -( EMAC )
                                                           AT91C_EMAC_TXERR EQU( 0x1 << 6 );
                                                           -( EMAC )
                                                           AT91C_EMAC_TCOMP EQU( 0x1 << 7 );
                                                           -( EMAC )
                                                           AT91C_EMAC_LINK EQU( 0x1 << 9 );
                                                           -( EMAC )
                                                           AT91C_EMAC_ROVR EQU( 0x1 << 10 );
                                                           -( EMAC )
                                                           AT91C_EMAC_HRESP EQU( 0x1 << 11 );
                                                           -( EMAC )
                                                           AT91C_EMAC_PFRE EQU( 0x1 << 12 );
                                                           -( EMAC )
                                                           AT91C_EMAC_PTZ EQU( 0x1 << 13 );
                                                           -( EMAC )
/* - -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- */
/* - -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- */
/* - -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- */
/* - -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- */
                                                           AT91C_EMAC_DATA EQU( 0xFFFF << 0 );
                                                           -( EMAC )
                                                           AT91C_EMAC_CODE EQU( 0x3 << 16 );
                                                           -( EMAC )
                                                           AT91C_EMAC_REGA EQU( 0x1F << 18 );
                                                           -( EMAC )
                                                           AT91C_EMAC_PHYA EQU( 0x1F << 23 );
                                                           -( EMAC )
                                                           AT91C_EMAC_RW EQU( 0x3 << 28 );
                                                           -( EMAC )
                                                           AT91C_EMAC_SOF EQU( 0x3 << 30 );
                                                           -( EMAC )
/* - -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- */
                                                           AT91C_EMAC_RMII EQU( 0x1 << 0 );
                                                           -( EMAC ) Reduce MII
/* - -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- */
                                                           AT91C_EMAC_IP EQU( 0xFFFF << 0 );
                                                           -( EMAC ) ARP request IP address
                                                           AT91C_EMAC_MAG EQU( 0x1 << 16 );
                                                           -( EMAC ) Magic packet event enable
                                                           AT91C_EMAC_ARP EQU( 0x1 << 17 );
                                                           -( EMAC ) ARP request event enable
                                                           AT91C_EMAC_SA1 EQU( 0x1 << 18 );
                                                           -( EMAC ) Specific address register 1 event enable
/* - -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- */
                                                           AT91C_EMAC_REVREF EQU( 0xFFFF << 0 );
                                                           -( EMAC )
                                                           AT91C_EMAC_PARTREF EQU( 0xFFFF << 16 );
                                                           -( EMAC )

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Analog to Digital Convertor */
/* - ***************************************************************************** */
/* - -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- */
                                                           AT91C_ADC_SWRST EQU( 0x1 << 0 );
                                                           -( ADC ) Software Reset
                                                           AT91C_ADC_START EQU( 0x1 << 1 );
                                                           -( ADC ) Start Conversion
/* - -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- */
                                                           AT91C_ADC_TRGEN EQU( 0x1 << 0 );
                                                           -( ADC ) Trigger Enable
                                                           AT91C_ADC_TRGEN_DIS EQU( 0x0 );
                                                           -( ADC ) Hradware triggers are disabled.Starting a conversion is only possible by software
                                                           AT91C_ADC_TRGEN_EN EQU( 0x1 );
                                                           -( ADC ) Hardware trigger selected by TRGSEL field is enabled.
                                                              AT91C_ADC_TRGSEL EQU( 0x7 << 1 );
                                                           -( ADC ) Trigger Selection
                                                           AT91C_ADC_TRGSEL_TIOA0 EQU( 0x0 << 1 );
                                                           -( ADC ) Selected TRGSEL = TIAO0
                                                                                      AT91C_ADC_TRGSEL_TIOA1 EQU( 0x1 << 1 );
                                                           -( ADC ) Selected TRGSEL = TIAO1
                                                                                      AT91C_ADC_TRGSEL_TIOA2 EQU( 0x2 << 1 );
                                                           -( ADC ) Selected TRGSEL = TIAO2
                                                                                      AT91C_ADC_TRGSEL_TIOA3 EQU( 0x3 << 1 );
                                                           -( ADC ) Selected TRGSEL = TIAO3
                                                                                      AT91C_ADC_TRGSEL_TIOA4 EQU( 0x4 << 1 );
                                                           -( ADC ) Selected TRGSEL = TIAO4
                                                                                      AT91C_ADC_TRGSEL_TIOA5 EQU( 0x5 << 1 );
                                                           -( ADC ) Selected TRGSEL = TIAO5
                                                                                      AT91C_ADC_TRGSEL_EXT EQU( 0x6 << 1 );
                                                           -( ADC ) Selected TRGSEL = External Trigger
                                                                                      AT91C_ADC_LOWRES EQU( 0x1 << 4 );
                                                           -( ADC ) Resolution.
                                                              AT91C_ADC_LOWRES_10_BIT EQU( 0x0 << 4 );
                                                           -( ADC ) 10 - bit resolution
                                                           AT91C_ADC_LOWRES_8_BIT EQU( 0x1 << 4 );
                                                           -( ADC ) 8 - bit resolution
                                                           AT91C_ADC_SLEEP EQU( 0x1 << 5 );
                                                           -( ADC ) Sleep Mode
                                                           AT91C_ADC_SLEEP_NORMAL_MODE EQU( 0x0 << 5 );
                                                           -( ADC ) Normal Mode
                                                           AT91C_ADC_SLEEP_MODE EQU( 0x1 << 5 );
                                                           -( ADC ) Sleep Mode
                                                           AT91C_ADC_PRESCAL EQU( 0x3F << 8 );
                                                           -( ADC ) Prescaler rate selection
                                                           AT91C_ADC_STARTUP EQU( 0x1F << 16 );
                                                           -( ADC ) Startup Time
                                                           AT91C_ADC_SHTIM EQU( 0xF << 24 );
                                                           -( ADC ) Sample & Hold Time
/* - --------   ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- */
                                                           AT91C_ADC_CH0 EQU( 0x1 << 0 );
                                                           -( ADC ) Channel 0
                                                           AT91C_ADC_CH1 EQU( 0x1 << 1 );
                                                           -( ADC ) Channel 1
                                                           AT91C_ADC_CH2 EQU( 0x1 << 2 );
                                                           -( ADC ) Channel 2
                                                           AT91C_ADC_CH3 EQU( 0x1 << 3 );
                                                           -( ADC ) Channel 3
                                                           AT91C_ADC_CH4 EQU( 0x1 << 4 );
                                                           -( ADC ) Channel 4
                                                           AT91C_ADC_CH5 EQU( 0x1 << 5 );
                                                           -( ADC ) Channel 5
                                                           AT91C_ADC_CH6 EQU( 0x1 << 6 );
                                                           -( ADC ) Channel 6
                                                           AT91C_ADC_CH7 EQU( 0x1 << 7 );
                                                           -( ADC ) Channel 7
/* - --------   ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- */
/* - --------   ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- */
/* - -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- */
                                                           AT91C_ADC_EOC0 EQU( 0x1 << 0 );
                                                           -( ADC ) End of Conversion
                                                           AT91C_ADC_EOC1 EQU( 0x1 << 1 );
                                                           -( ADC ) End of Conversion
                                                           AT91C_ADC_EOC2 EQU( 0x1 << 2 );
                                                           -( ADC ) End of Conversion
                                                           AT91C_ADC_EOC3 EQU( 0x1 << 3 );
                                                           -( ADC ) End of Conversion
                                                           AT91C_ADC_EOC4 EQU( 0x1 << 4 );
                                                           -( ADC ) End of Conversion
                                                           AT91C_ADC_EOC5 EQU( 0x1 << 5 );
                                                           -( ADC ) End of Conversion
                                                           AT91C_ADC_EOC6 EQU( 0x1 << 6 );
                                                           -( ADC ) End of Conversion
                                                           AT91C_ADC_EOC7 EQU( 0x1 << 7 );
                                                           -( ADC ) End of Conversion
                                                           AT91C_ADC_OVRE0 EQU( 0x1 << 8 );
                                                           -( ADC ) Overrun Error
                                                           AT91C_ADC_OVRE1 EQU( 0x1 << 9 );
                                                           -( ADC ) Overrun Error
                                                           AT91C_ADC_OVRE2 EQU( 0x1 << 10 );
                                                           -( ADC ) Overrun Error
                                                           AT91C_ADC_OVRE3 EQU( 0x1 << 11 );
                                                           -( ADC ) Overrun Error
                                                           AT91C_ADC_OVRE4 EQU( 0x1 << 12 );
                                                           -( ADC ) Overrun Error
                                                           AT91C_ADC_OVRE5 EQU( 0x1 << 13 );
                                                           -( ADC ) Overrun Error
                                                           AT91C_ADC_OVRE6 EQU( 0x1 << 14 );
                                                           -( ADC ) Overrun Error
                                                           AT91C_ADC_OVRE7 EQU( 0x1 << 15 );
                                                           -( ADC ) Overrun Error
                                                           AT91C_ADC_DRDY EQU( 0x1 << 16 );
                                                           -( ADC ) Data Ready
                                                           AT91C_ADC_GOVRE EQU( 0x1 << 17 );
                                                           -( ADC ) General Overrun
                                                           AT91C_ADC_ENDRX EQU( 0x1 << 18 );
                                                           -( ADC ) End of Receiver Transfer
                                                           AT91C_ADC_RXBUFF EQU( 0x1 << 19 );
                                                           -( ADC ) RXBUFF Interrupt
/* - -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- */
                                                           AT91C_ADC_LDATA EQU( 0x3FF << 0 );
                                                           -( ADC ) Last Data Converted
/* - -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- */
/* - -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- */
/* - -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- */
/* - -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- */
                                                           AT91C_ADC_DATA EQU( 0x3FF << 0 );
                                                           -( ADC ) Converted Data
/* - -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- */
/* - -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- */
/* - -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- */
/* - -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- */
/* - -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- */
/* - -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- */
/* - -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- */

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Advanced  Encryption Standard */
/* - ***************************************************************************** */
/* - -------- AES_CR : (AES Offset: 0x0) Control Register -------- */
                                                           AT91C_AES_START EQU( 0x1 << 0 );
                                                           -( AES ) Starts Processing
                                                           AT91C_AES_SWRST EQU( 0x1 << 8 );
                                                           -( AES ) Software Reset
                                                           AT91C_AES_LOADSEED EQU( 0x1 << 16 );
                                                           -( AES ) Random Number Generator Seed Loading
/* - -------- AES_MR : (AES Offset: 0x4) Mode Register -------- */
                                                           AT91C_AES_CIPHER EQU( 0x1 << 0 );
                                                           -( AES ) Processing Mode
                                                           AT91C_AES_PROCDLY EQU( 0xF << 4 );
                                                           -( AES ) Processing Delay
                                                           AT91C_AES_SMOD EQU( 0x3 << 8 );
                                                           -( AES ) Start Mode
                                                           AT91C_AES_SMOD_MANUAL EQU( 0x0 << 8 );
                                                           -( AES ) Manual Mode:The START bit in register AES_CR must be set to begin encryption or decryption.
                                                              AT91C_AES_SMOD_AUTO EQU( 0x1 << 8 );
                                                           -( AES ) Auto Mode:no action in AES_CR is necessary( cf datasheet ).
                                                              AT91C_AES_SMOD_PDC EQU( 0x2 << 8 );
                                                           -( AES ) PDC Mode( cf datasheet ).
                                                              AT91C_AES_OPMOD EQU( 0x7 << 12 );
                                                           -( AES ) Operation Mode
                                                           AT91C_AES_OPMOD_ECB EQU( 0x0 << 12 );
                                                           -( AES ) ECB Electronic CodeBook mode.
                                                              AT91C_AES_OPMOD_CBC EQU( 0x1 << 12 );
                                                           -( AES ) CBC Cipher Block Chaining mode.
                                                              AT91C_AES_OPMOD_OFB EQU( 0x2 << 12 );
                                                           -( AES ) OFB Output Feedback mode.
                                                              AT91C_AES_OPMOD_CFB EQU( 0x3 << 12 );
                                                           -( AES ) CFB Cipher Feedback mode.
                                                              AT91C_AES_OPMOD_CTR EQU( 0x4 << 12 );
                                                           -( AES ) CTR Counter mode.
                                                              AT91C_AES_LOD EQU( 0x1 << 15 );
                                                           -( AES ) Last Output Data Mode
                                                           AT91C_AES_CFBS EQU( 0x7 << 16 );
                                                           -( AES ) Cipher Feedback Data Size
                                                           AT91C_AES_CFBS_128_BIT EQU( 0x0 << 16 );
                                                           -( AES ) 128 - bit.
                                                              AT91C_AES_CFBS_64_BIT EQU( 0x1 << 16 );
                                                           -( AES ) 64 - bit.
                                                              AT91C_AES_CFBS_32_BIT EQU( 0x2 << 16 );
                                                           -( AES ) 32 - bit.
                                                              AT91C_AES_CFBS_16_BIT EQU( 0x3 << 16 );
                                                           -( AES ) 16 - bit.
                                                              AT91C_AES_CFBS_8_BIT EQU( 0x4 << 16 );
                                                           -( AES ) 8 - bit.
                                                              AT91C_AES_CKEY EQU( 0xF << 20 );
                                                           -( AES ) Countermeasure Key
                                                           AT91C_AES_CTYPE EQU( 0x1F << 24 );
                                                           -( AES ) Countermeasure Type
                                                           AT91C_AES_CTYPE_TYPE1_EN EQU( 0x1 << 24 );
                                                           -( AES ) Countermeasure type 1 is enabled.
                                                              AT91C_AES_CTYPE_TYPE2_EN EQU( 0x2 << 24 );
                                                           -( AES ) Countermeasure type 2 is enabled.
                                                              AT91C_AES_CTYPE_TYPE3_EN EQU( 0x4 << 24 );
                                                           -( AES ) Countermeasure type 3 is enabled.
                                                              AT91C_AES_CTYPE_TYPE4_EN EQU( 0x8 << 24 );
                                                           -( AES ) Countermeasure type 4 is enabled.
                                                              AT91C_AES_CTYPE_TYPE5_EN EQU( 0x10 << 24 );
                                                           -( AES ) Countermeasure type 5 is enabled.
/* - -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- */
                                                              AT91C_AES_DATRDY EQU( 0x1 << 0 );
                                                           -( AES ) DATRDY
                                                           AT91C_AES_ENDRX EQU( 0x1 << 1 );
                                                           -( AES ) PDC Read Buffer End
                                                           AT91C_AES_ENDTX EQU( 0x1 << 2 );
                                                           -( AES ) PDC Write Buffer End
                                                           AT91C_AES_RXBUFF EQU( 0x1 << 3 );
                                                           -( AES ) PDC Read Buffer Full
                                                           AT91C_AES_TXBUFE EQU( 0x1 << 4 );
                                                           -( AES ) PDC Write Buffer Empty
                                                           AT91C_AES_URAD EQU( 0x1 << 8 );
                                                           -( AES ) Unspecified Register Access Detection
/* - -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- */
/* - -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- */
/* - -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- */
                                                           AT91C_AES_URAT EQU( 0x7 << 12 );
                                                           -( AES ) Unspecified Register Access Type Status
                                                           AT91C_AES_URAT_IN_DAT_WRITE_DATPROC EQU( 0x0 << 12 );
                                                           -( AES ) Input data register written during the data processing in PDC mode.
                                                              AT91C_AES_URAT_OUT_DAT_READ_DATPROC EQU( 0x1 << 12 );
                                                           -( AES ) Output data register read during the data processing.
                                                              AT91C_AES_URAT_MODEREG_WRITE_DATPROC EQU( 0x2 << 12 );
                                                           -( AES ) Mode register written during the data processing.
                                                              AT91C_AES_URAT_OUT_DAT_READ_SUBKEY EQU( 0x3 << 12 );
                                                           -( AES ) Output data register read during the sub - keys generation.
                                                              AT91C_AES_URAT_MODEREG_WRITE_SUBKEY EQU( 0x4 << 12 );
                                                           -( AES ) Mode register written during the sub - keys generation.
                                                              AT91C_AES_URAT_WO_REG_READ EQU( 0x5 << 12 );
                                                           -( AES ) Write - only register read access.

/* - ***************************************************************************** */
/* -              SOFTWARE API DEFINITION  FOR Triple Data Encryption Standard */
/* - ***************************************************************************** */
/* - -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- */
                                                              AT91C_TDES_START EQU( 0x1 << 0 );
                                                           -( TDES ) Starts Processing
                                                           AT91C_TDES_SWRST EQU( 0x1 << 8 );
                                                           -( TDES ) Software Reset
/* - -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- */
                                                           AT91C_TDES_CIPHER EQU( 0x1 << 0 );
                                                           -( TDES ) Processing Mode
                                                           AT91C_TDES_TDESMOD EQU( 0x1 << 1 );
                                                           -( TDES ) Single or Triple DES Mode
                                                           AT91C_TDES_KEYMOD EQU( 0x1 << 4 );
                                                           -( TDES ) Key Mode
                                                           AT91C_TDES_SMOD EQU( 0x3 << 8 );
                                                           -( TDES ) Start Mode
                                                           AT91C_TDES_SMOD_MANUAL EQU( 0x0 << 8 );
                                                           -( TDES ) Manual Mode:The START bit in register TDES_CR must be set to begin encryption or decryption.
                                                              AT91C_TDES_SMOD_AUTO EQU( 0x1 << 8 );
                                                           -( TDES ) Auto Mode:no action in TDES_CR is necessary( cf datasheet ).
                                                              AT91C_TDES_SMOD_PDC EQU( 0x2 << 8 );
                                                           -( TDES ) PDC Mode( cf datasheet ).
                                                              AT91C_TDES_OPMOD EQU( 0x3 << 12 );
                                                           -( TDES ) Operation Mode
                                                           AT91C_TDES_OPMOD_ECB EQU( 0x0 << 12 );
                                                           -( TDES ) ECB Electronic CodeBook mode.
                                                              AT91C_TDES_OPMOD_CBC EQU( 0x1 << 12 );
                                                           -( TDES ) CBC Cipher Block Chaining mode.
                                                              AT91C_TDES_OPMOD_OFB EQU( 0x2 << 12 );
                                                           -( TDES ) OFB Output Feedback mode.
                                                              AT91C_TDES_OPMOD_CFB EQU( 0x3 << 12 );
                                                           -( TDES ) CFB Cipher Feedback mode.
                                                              AT91C_TDES_LOD EQU( 0x1 << 15 );
                                                           -( TDES ) Last Output Data Mode
                                                           AT91C_TDES_CFBS EQU( 0x3 << 16 );
                                                           -( TDES ) Cipher Feedback Data Size
                                                           AT91C_TDES_CFBS_64_BIT EQU( 0x0 << 16 );
                                                           -( TDES ) 64 - bit.
                                                              AT91C_TDES_CFBS_32_BIT EQU( 0x1 << 16 );
                                                           -( TDES ) 32 - bit.
                                                              AT91C_TDES_CFBS_16_BIT EQU( 0x2 << 16 );
                                                           -( TDES ) 16 - bit.
                                                              AT91C_TDES_CFBS_8_BIT EQU( 0x3 << 16 );
                                                           -( TDES ) 8 - bit.
/* - -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- */
                                                              AT91C_TDES_DATRDY EQU( 0x1 << 0 );
                                                           -( TDES ) DATRDY
                                                           AT91C_TDES_ENDRX EQU( 0x1 << 1 );
                                                           -( TDES ) PDC Read Buffer End
                                                           AT91C_TDES_ENDTX EQU( 0x1 << 2 );
                                                           -( TDES ) PDC Write Buffer End
                                                           AT91C_TDES_RXBUFF EQU( 0x1 << 3 );
                                                           -( TDES ) PDC Read Buffer Full
                                                           AT91C_TDES_TXBUFE EQU( 0x1 << 4 );
                                                           -( TDES ) PDC Write Buffer Empty
                                                           AT91C_TDES_URAD EQU( 0x1 << 8 );
                                                           -( TDES ) Unspecified Register Access Detection
/* - -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- */
/* - -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- */
/* - -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- */
                                                           AT91C_TDES_URAT EQU( 0x3 << 12 );
                                                           -( TDES ) Unspecified Register Access Type Status
                                                           AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC EQU( 0x0 << 12 );
                                                           -( TDES ) Input data register written during the data processing in PDC mode.
                                                              AT91C_TDES_URAT_OUT_DAT_READ_DATPROC EQU( 0x1 << 12 );
                                                           -( TDES ) Output data register read during the data processing.
                                                              AT91C_TDES_URAT_MODEREG_WRITE_DATPROC EQU( 0x2 << 12 );
                                                           -( TDES ) Mode register written during the data processing.
                                                              AT91C_TDES_URAT_WO_REG_READ EQU( 0x3 << 12 );
                                                           -( TDES ) Write - only register read access.

/* - ***************************************************************************** */
/* -               REGISTER ADDRESS DEFINITION FOR AT91SAM7X256 */
/* - ***************************************************************************** */
/* - ========== Register definition for SYS peripheral ========== */
/* - ========== Register definition for AIC peripheral ========== */
                                                              AT91C_AIC_IVR EQU( 0xFFFFF100 );
                                                           -( AIC ) IRQ Vector Register
                                                           AT91C_AIC_SMR EQU( 0xFFFFF000 );
                                                           -( AIC ) Source Mode Register
                                                           AT91C_AIC_FVR EQU( 0xFFFFF104 );
                                                           -( AIC ) FIQ Vector Register
                                                           AT91C_AIC_DCR EQU( 0xFFFFF138 );
                                                           -( AIC ) Debug Control Register( Protect )
                                                           AT91C_AIC_EOICR EQU( 0xFFFFF130 );
                                                           -( AIC ) End of Interrupt Command Register
                                                           AT91C_AIC_SVR EQU( 0xFFFFF080 );
                                                           -( AIC ) Source Vector Register
                                                           AT91C_AIC_FFSR EQU( 0xFFFFF148 );
                                                           -( AIC ) Fast Forcing Status Register
                                                           AT91C_AIC_ICCR EQU( 0xFFFFF128 );
                                                           -( AIC ) Interrupt Clear Command Register
                                                           AT91C_AIC_ISR EQU( 0xFFFFF108 );
                                                           -( AIC ) Interrupt Status Register
                                                           AT91C_AIC_IMR EQU( 0xFFFFF110 );
                                                           -( AIC ) Interrupt Mask Register
                                                           AT91C_AIC_IPR EQU( 0xFFFFF10C );
                                                           -( AIC ) Interrupt Pending Register
                                                           AT91C_AIC_FFER EQU( 0xFFFFF140 );
                                                           -( AIC ) Fast Forcing Enable Register
                                                           AT91C_AIC_IECR EQU( 0xFFFFF120 );
                                                           -( AIC ) Interrupt Enable Command Register
                                                           AT91C_AIC_ISCR EQU( 0xFFFFF12C );
                                                           -( AIC ) Interrupt Set Command Register
                                                           AT91C_AIC_FFDR EQU( 0xFFFFF144 );
                                                           -( AIC ) Fast Forcing Disable Register
                                                           AT91C_AIC_CISR EQU( 0xFFFFF114 );
                                                           -( AIC ) Core Interrupt Status Register
                                                           AT91C_AIC_IDCR EQU( 0xFFFFF124 );
                                                           -( AIC ) Interrupt Disable Command Register
                                                           AT91C_AIC_SPU EQU( 0xFFFFF134 );
                                                           -( AIC ) Spurious Vector Register
/* - ========== Register definition for PDC_DBGU peripheral ========== */
                                                           AT91C_DBGU_TCR EQU( 0xFFFFF30C );
                                                           -( PDC_DBGU ) Transmit Counter Register
                                                           AT91C_DBGU_RNPR EQU( 0xFFFFF310 );
                                                           -( PDC_DBGU ) Receive Next Pointer Register
                                                           AT91C_DBGU_TNPR EQU( 0xFFFFF318 );
                                                           -( PDC_DBGU ) Transmit Next Pointer Register
                                                           AT91C_DBGU_TPR EQU( 0xFFFFF308 );
                                                           -( PDC_DBGU ) Transmit Pointer Register
                                                           AT91C_DBGU_RPR EQU( 0xFFFFF300 );
                                                           -( PDC_DBGU ) Receive Pointer Register
                                                           AT91C_DBGU_RCR EQU( 0xFFFFF304 );
                                                           -( PDC_DBGU ) Receive Counter Register
                                                           AT91C_DBGU_RNCR EQU( 0xFFFFF314 );
                                                           -( PDC_DBGU ) Receive Next Counter Register
                                                           AT91C_DBGU_PTCR EQU( 0xFFFFF320 );
                                                           -( PDC_DBGU ) PDC Transfer Control Register
                                                           AT91C_DBGU_PTSR EQU( 0xFFFFF324 );
                                                           -( PDC_DBGU ) PDC Transfer Status Register
                                                           AT91C_DBGU_TNCR EQU( 0xFFFFF31C );
                                                           -( PDC_DBGU ) Transmit Next Counter Register
/* - ========== Register definition for DBGU peripheral ========== */
                                                           AT91C_DBGU_EXID EQU( 0xFFFFF244 );
                                                           -( DBGU ) Chip ID Extension Register
                                                           AT91C_DBGU_BRGR EQU( 0xFFFFF220 );
                                                           -( DBGU ) Baud Rate Generator Register
                                                           AT91C_DBGU_IDR EQU( 0xFFFFF20C );
                                                           -( DBGU ) Interrupt Disable Register
                                                           AT91C_DBGU_CSR EQU( 0xFFFFF214 );
                                                           -( DBGU ) Channel Status Register
                                                           AT91C_DBGU_CIDR EQU( 0xFFFFF240 );
                                                           -( DBGU ) Chip ID Register
                                                           AT91C_DBGU_MR EQU( 0xFFFFF204 );
                                                           -( DBGU ) Mode Register
                                                           AT91C_DBGU_IMR EQU( 0xFFFFF210 );
                                                           -( DBGU ) Interrupt Mask Register
                                                           AT91C_DBGU_CR EQU( 0xFFFFF200 );
                                                           -( DBGU ) Control Register
                                                           AT91C_DBGU_FNTR EQU( 0xFFFFF248 );
                                                           -( DBGU ) Force NTRST Register
                                                           AT91C_DBGU_THR EQU( 0xFFFFF21C );
                                                           -( DBGU ) Transmitter Holding Register
                                                           AT91C_DBGU_RHR EQU( 0xFFFFF218 );
                                                           -( DBGU ) Receiver Holding Register
                                                           AT91C_DBGU_IER EQU( 0xFFFFF208 );
                                                           -( DBGU ) Interrupt Enable Register
/* - ========== Register definition for PIOA peripheral ========== */
                                                           AT91C_PIOA_ODR EQU( 0xFFFFF414 );
                                                           -( PIOA ) Output Disable Registerr
                                                           AT91C_PIOA_SODR EQU( 0xFFFFF430 );
                                                           -( PIOA ) Set Output Data Register
                                                           AT91C_PIOA_ISR EQU( 0xFFFFF44C );
                                                           -( PIOA ) Interrupt Status Register
                                                           AT91C_PIOA_ABSR EQU( 0xFFFFF478 );
                                                           -( PIOA ) AB Select Status Register
                                                           AT91C_PIOA_IER EQU( 0xFFFFF440 );
                                                           -( PIOA ) Interrupt Enable Register
                                                           AT91C_PIOA_PPUDR EQU( 0xFFFFF460 );
                                                           -( PIOA ) Pull - up Disable Register
                                                           AT91C_PIOA_IMR EQU( 0xFFFFF448 );
                                                           -( PIOA ) Interrupt Mask Register
                                                           AT91C_PIOA_PER EQU( 0xFFFFF400 );
                                                           -( PIOA ) PIO Enable Register
                                                           AT91C_PIOA_IFDR EQU( 0xFFFFF424 );
                                                           -( PIOA ) Input Filter Disable Register
                                                           AT91C_PIOA_OWDR EQU( 0xFFFFF4A4 );
                                                           -( PIOA ) Output Write Disable Register
                                                           AT91C_PIOA_MDSR EQU( 0xFFFFF458 );
                                                           -( PIOA ) Multi - driver Status Register
                                                           AT91C_PIOA_IDR EQU( 0xFFFFF444 );
                                                           -( PIOA ) Interrupt Disable Register
                                                           AT91C_PIOA_ODSR EQU( 0xFFFFF438 );
                                                           -( PIOA ) Output Data Status Register
                                                           AT91C_PIOA_PPUSR EQU( 0xFFFFF468 );
                                                           -( PIOA ) Pull - up Status Register
                                                           AT91C_PIOA_OWSR EQU( 0xFFFFF4A8 );
                                                           -( PIOA ) Output Write Status Register
                                                           AT91C_PIOA_BSR EQU( 0xFFFFF474 );
                                                           -( PIOA ) Select B Register
                                                           AT91C_PIOA_OWER EQU( 0xFFFFF4A0 );
                                                           -( PIOA ) Output Write Enable Register
                                                           AT91C_PIOA_IFER EQU( 0xFFFFF420 );
                                                           -( PIOA ) Input Filter Enable Register
                                                           AT91C_PIOA_PDSR EQU( 0xFFFFF43C );
                                                           -( PIOA ) Pin Data Status Register
                                                           AT91C_PIOA_PPUER EQU( 0xFFFFF464 );
                                                           -( PIOA ) Pull - up Enable Register
                                                           AT91C_PIOA_OSR EQU( 0xFFFFF418 );
                                                           -( PIOA ) Output Status Register
                                                           AT91C_PIOA_ASR EQU( 0xFFFFF470 );
                                                           -( PIOA ) Select A Register
                                                           AT91C_PIOA_MDDR EQU( 0xFFFFF454 );
                                                           -( PIOA ) Multi - driver Disable Register
                                                           AT91C_PIOA_CODR EQU( 0xFFFFF434 );
                                                           -( PIOA ) Clear Output Data Register
                                                           AT91C_PIOA_MDER EQU( 0xFFFFF450 );
                                                           -( PIOA ) Multi - driver Enable Register
                                                           AT91C_PIOA_PDR EQU( 0xFFFFF404 );
                                                           -( PIOA ) PIO Disable Register
                                                           AT91C_PIOA_IFSR EQU( 0xFFFFF428 );
                                                           -( PIOA ) Input Filter Status Register
                                                           AT91C_PIOA_OER EQU( 0xFFFFF410 );
                                                           -( PIOA ) Output Enable Register
                                                           AT91C_PIOA_PSR EQU( 0xFFFFF408 );
                                                           -( PIOA ) PIO Status Register
/* - ========== Register definition for PIOB peripheral ========== */
                                                           AT91C_PIOB_OWDR EQU( 0xFFFFF6A4 );
                                                           -( PIOB ) Output Write Disable Register
                                                           AT91C_PIOB_MDER EQU( 0xFFFFF650 );
                                                           -( PIOB ) Multi - driver Enable Register
                                                           AT91C_PIOB_PPUSR EQU( 0xFFFFF668 );
                                                           -( PIOB ) Pull - up Status Register
                                                           AT91C_PIOB_IMR EQU( 0xFFFFF648 );
                                                           -( PIOB ) Interrupt Mask Register
                                                           AT91C_PIOB_ASR EQU( 0xFFFFF670 );
                                                           -( PIOB ) Select A Register
                                                           AT91C_PIOB_PPUDR EQU( 0xFFFFF660 );
                                                           -( PIOB ) Pull - up Disable Register
                                                           AT91C_PIOB_PSR EQU( 0xFFFFF608 );
                                                           -( PIOB ) PIO Status Register
                                                           AT91C_PIOB_IER EQU( 0xFFFFF640 );
                                                           -( PIOB ) Interrupt Enable Register
                                                           AT91C_PIOB_CODR EQU( 0xFFFFF634 );
                                                           -( PIOB ) Clear Output Data Register
                                                           AT91C_PIOB_OWER EQU( 0xFFFFF6A0 );
                                                           -( PIOB ) Output Write Enable Register
                                                           AT91C_PIOB_ABSR EQU( 0xFFFFF678 );
                                                           -( PIOB ) AB Select Status Register
                                                           AT91C_PIOB_IFDR EQU( 0xFFFFF624 );
                                                           -( PIOB ) Input Filter Disable Register
                                                           AT91C_PIOB_PDSR EQU( 0xFFFFF63C );
                                                           -( PIOB ) Pin Data Status Register
                                                           AT91C_PIOB_IDR EQU( 0xFFFFF644 );
                                                           -( PIOB ) Interrupt Disable Register
                                                           AT91C_PIOB_OWSR EQU( 0xFFFFF6A8 );
                                                           -( PIOB ) Output Write Status Register
                                                           AT91C_PIOB_PDR EQU( 0xFFFFF604 );
                                                           -( PIOB ) PIO Disable Register
                                                           AT91C_PIOB_ODR EQU( 0xFFFFF614 );
                                                           -( PIOB ) Output Disable Registerr
                                                           AT91C_PIOB_IFSR EQU( 0xFFFFF628 );
                                                           -( PIOB ) Input Filter Status Register
                                                           AT91C_PIOB_PPUER EQU( 0xFFFFF664 );
                                                           -( PIOB ) Pull - up Enable Register
                                                           AT91C_PIOB_SODR EQU( 0xFFFFF630 );
                                                           -( PIOB ) Set Output Data Register
                                                           AT91C_PIOB_ISR EQU( 0xFFFFF64C );
                                                           -( PIOB ) Interrupt Status Register
                                                           AT91C_PIOB_ODSR EQU( 0xFFFFF638 );
                                                           -( PIOB ) Output Data Status Register
                                                           AT91C_PIOB_OSR EQU( 0xFFFFF618 );
                                                           -( PIOB ) Output Status Register
                                                           AT91C_PIOB_MDSR EQU( 0xFFFFF658 );
                                                           -( PIOB ) Multi - driver Status Register
                                                           AT91C_PIOB_IFER EQU( 0xFFFFF620 );
                                                           -( PIOB ) Input Filter Enable Register
                                                           AT91C_PIOB_BSR EQU( 0xFFFFF674 );
                                                           -( PIOB ) Select B Register
                                                           AT91C_PIOB_MDDR EQU( 0xFFFFF654 );
                                                           -( PIOB ) Multi - driver Disable Register
                                                           AT91C_PIOB_OER EQU( 0xFFFFF610 );
                                                           -( PIOB ) Output Enable Register
                                                           AT91C_PIOB_PER EQU( 0xFFFFF600 );
                                                           -( PIOB ) PIO Enable Register
/* - ========== Register definition for CKGR peripheral ========== */
                                                           AT91C_CKGR_MOR EQU( 0xFFFFFC20 );
                                                           -( CKGR ) Main Oscillator Register
                                                           AT91C_CKGR_PLLR EQU( 0xFFFFFC2C );
                                                           -( CKGR ) PLL Register
                                                           AT91C_CKGR_MCFR EQU( 0xFFFFFC24 );
                                                           -( CKGR ) Main Clock Frequency Register
/* - ========== Register definition for PMC peripheral ========== */
                                                           AT91C_PMC_IDR EQU( 0xFFFFFC64 );
                                                           -( PMC ) Interrupt Disable Register
                                                           AT91C_PMC_MOR EQU( 0xFFFFFC20 );
                                                           -( PMC ) Main Oscillator Register
                                                           AT91C_PMC_PLLR EQU( 0xFFFFFC2C );
                                                           -( PMC ) PLL Register
                                                           AT91C_PMC_PCER EQU( 0xFFFFFC10 );
                                                           -( PMC ) Peripheral Clock Enable Register
                                                           AT91C_PMC_PCKR EQU( 0xFFFFFC40 );
                                                           -( PMC ) Programmable Clock Register
                                                           AT91C_PMC_MCKR EQU( 0xFFFFFC30 );
                                                           -( PMC ) Master Clock Register
                                                           AT91C_PMC_SCDR EQU( 0xFFFFFC04 );
                                                           -( PMC ) System Clock Disable Register
                                                           AT91C_PMC_PCDR EQU( 0xFFFFFC14 );
                                                           -( PMC ) Peripheral Clock Disable Register
                                                           AT91C_PMC_SCSR EQU( 0xFFFFFC08 );
                                                           -( PMC ) System Clock Status Register
                                                           AT91C_PMC_PCSR EQU( 0xFFFFFC18 );
                                                           -( PMC ) Peripheral Clock Status Register
                                                           AT91C_PMC_MCFR EQU( 0xFFFFFC24 );
                                                           -( PMC ) Main Clock Frequency Register
                                                           AT91C_PMC_SCER EQU( 0xFFFFFC00 );
                                                           -( PMC ) System Clock Enable Register
                                                           AT91C_PMC_IMR EQU( 0xFFFFFC6C );
                                                           -( PMC ) Interrupt Mask Register
                                                           AT91C_PMC_IER EQU( 0xFFFFFC60 );
                                                           -( PMC ) Interrupt Enable Register
                                                           AT91C_PMC_SR EQU( 0xFFFFFC68 );
                                                           -( PMC ) Status Register
/* - ========== Register definition for RSTC peripheral ========== */
                                                           AT91C_RSTC_RCR EQU( 0xFFFFFD00 );
                                                           -( RSTC ) Reset Control Register
                                                           AT91C_RSTC_RMR EQU( 0xFFFFFD08 );
                                                           -( RSTC ) Reset Mode Register
                                                           AT91C_RSTC_RSR EQU( 0xFFFFFD04 );
                                                           -( RSTC ) Reset Status Register
/* - ========== Register definition for RTTC peripheral ========== */
                                                           AT91C_RTTC_RTSR EQU( 0xFFFFFD2C );
                                                           -( RTTC ) Real - time Status Register
                                                           AT91C_RTTC_RTMR EQU( 0xFFFFFD20 );
                                                           -( RTTC ) Real - time Mode Register
                                                           AT91C_RTTC_RTVR EQU( 0xFFFFFD28 );
                                                           -( RTTC ) Real - time Value Register
                                                           AT91C_RTTC_RTAR EQU( 0xFFFFFD24 );
                                                           -( RTTC ) Real - time Alarm Register
/* - ========== Register definition for PITC peripheral ========== */
                                                           AT91C_PITC_PIVR EQU( 0xFFFFFD38 );
                                                           -( PITC ) Period Interval Value Register
                                                           AT91C_PITC_PISR EQU( 0xFFFFFD34 );
                                                           -( PITC ) Period Interval Status Register
                                                           AT91C_PITC_PIIR EQU( 0xFFFFFD3C );
                                                           -( PITC ) Period Interval Image Register
                                                           AT91C_PITC_PIMR EQU( 0xFFFFFD30 );
                                                           -( PITC ) Period Interval Mode Register
/* - ========== Register definition for WDTC peripheral ========== */
                                                           AT91C_WDTC_WDCR EQU( 0xFFFFFD40 );
                                                           -( WDTC ) Watchdog Control Register
                                                           AT91C_WDTC_WDSR EQU( 0xFFFFFD48 );
                                                           -( WDTC ) Watchdog Status Register
                                                           AT91C_WDTC_WDMR EQU( 0xFFFFFD44 );
                                                           -( WDTC ) Watchdog Mode Register
/* - ========== Register definition for VREG peripheral ========== */
                                                           AT91C_VREG_MR EQU( 0xFFFFFD60 );
                                                           -( VREG ) Voltage Regulator Mode Register
/* - ========== Register definition for MC peripheral ========== */
                                                           AT91C_MC_ASR EQU( 0xFFFFFF04 );
                                                           -( MC ) MC Abort Status Register
                                                           AT91C_MC_RCR EQU( 0xFFFFFF00 );
                                                           -( MC ) MC Remap Control Register
                                                           AT91C_MC_FCR EQU( 0xFFFFFF64 );
                                                           -( MC ) MC Flash Command Register
                                                           AT91C_MC_AASR EQU( 0xFFFFFF08 );
                                                           -( MC ) MC Abort Address Status Register
                                                           AT91C_MC_FSR EQU( 0xFFFFFF68 );
                                                           -( MC ) MC Flash Status Register
                                                           AT91C_MC_FMR EQU( 0xFFFFFF60 );
                                                           -( MC ) MC Flash Mode Register
/* - ========== Register definition for PDC_SPI1 peripheral ========== */
                                                           AT91C_SPI1_PTCR EQU( 0xFFFE4120 );
                                                           -( PDC_SPI1 ) PDC Transfer Control Register
                                                           AT91C_SPI1_RPR EQU( 0xFFFE4100 );
                                                           -( PDC_SPI1 ) Receive Pointer Register
                                                           AT91C_SPI1_TNCR EQU( 0xFFFE411C );
                                                           -( PDC_SPI1 ) Transmit Next Counter Register
                                                           AT91C_SPI1_TPR EQU( 0xFFFE4108 );
                                                           -( PDC_SPI1 ) Transmit Pointer Register
                                                           AT91C_SPI1_TNPR EQU( 0xFFFE4118 );
                                                           -( PDC_SPI1 ) Transmit Next Pointer Register
                                                           AT91C_SPI1_TCR EQU( 0xFFFE410C );
                                                           -( PDC_SPI1 ) Transmit Counter Register
                                                           AT91C_SPI1_RCR EQU( 0xFFFE4104 );
                                                           -( PDC_SPI1 ) Receive Counter Register
                                                           AT91C_SPI1_RNPR EQU( 0xFFFE4110 );
                                                           -( PDC_SPI1 ) Receive Next Pointer Register
                                                           AT91C_SPI1_RNCR EQU( 0xFFFE4114 );
                                                           -( PDC_SPI1 ) Receive Next Counter Register
                                                           AT91C_SPI1_PTSR EQU( 0xFFFE4124 );
                                                           -( PDC_SPI1 ) PDC Transfer Status Register
/* - ========== Register definition for SPI1 peripheral ========== */
                                                           AT91C_SPI1_IMR EQU( 0xFFFE401C );
                                                           -( SPI1 ) Interrupt Mask Register
                                                           AT91C_SPI1_IER EQU( 0xFFFE4014 );
                                                           -( SPI1 ) Interrupt Enable Register
                                                           AT91C_SPI1_MR EQU( 0xFFFE4004 );
                                                           -( SPI1 ) Mode Register
                                                           AT91C_SPI1_RDR EQU( 0xFFFE4008 );
                                                           -( SPI1 ) Receive Data Register
                                                           AT91C_SPI1_IDR EQU( 0xFFFE4018 );
                                                           -( SPI1 ) Interrupt Disable Register
                                                           AT91C_SPI1_SR EQU( 0xFFFE4010 );
                                                           -( SPI1 ) Status Register
                                                           AT91C_SPI1_TDR EQU( 0xFFFE400C );
                                                           -( SPI1 ) Transmit Data Register
                                                           AT91C_SPI1_CR EQU( 0xFFFE4000 );
                                                           -( SPI1 ) Control Register
                                                           AT91C_SPI1_CSR EQU( 0xFFFE4030 );
                                                           -( SPI1 ) Chip Select Register
/* - ========== Register definition for PDC_SPI0 peripheral ========== */
                                                           AT91C_SPI0_PTCR EQU( 0xFFFE0120 );
                                                           -( PDC_SPI0 ) PDC Transfer Control Register
                                                           AT91C_SPI0_TPR EQU( 0xFFFE0108 );
                                                           -( PDC_SPI0 ) Transmit Pointer Register
                                                           AT91C_SPI0_TCR EQU( 0xFFFE010C );
                                                           -( PDC_SPI0 ) Transmit Counter Register
                                                           AT91C_SPI0_RCR EQU( 0xFFFE0104 );
                                                           -( PDC_SPI0 ) Receive Counter Register
                                                           AT91C_SPI0_PTSR EQU( 0xFFFE0124 );
                                                           -( PDC_SPI0 ) PDC Transfer Status Register
                                                           AT91C_SPI0_RNPR EQU( 0xFFFE0110 );
                                                           -( PDC_SPI0 ) Receive Next Pointer Register
                                                           AT91C_SPI0_RPR EQU( 0xFFFE0100 );
                                                           -( PDC_SPI0 ) Receive Pointer Register
                                                           AT91C_SPI0_TNCR EQU( 0xFFFE011C );
                                                           -( PDC_SPI0 ) Transmit Next Counter Register
                                                           AT91C_SPI0_RNCR EQU( 0xFFFE0114 );
                                                           -( PDC_SPI0 ) Receive Next Counter Register
                                                           AT91C_SPI0_TNPR EQU( 0xFFFE0118 );
                                                           -( PDC_SPI0 ) Transmit Next Pointer Register
/* - ========== Register definition for SPI0 peripheral ========== */
                                                           AT91C_SPI0_IER EQU( 0xFFFE0014 );
                                                           -( SPI0 ) Interrupt Enable Register
                                                           AT91C_SPI0_SR EQU( 0xFFFE0010 );
                                                           -( SPI0 ) Status Register
                                                           AT91C_SPI0_IDR EQU( 0xFFFE0018 );
                                                           -( SPI0 ) Interrupt Disable Register
                                                           AT91C_SPI0_CR EQU( 0xFFFE0000 );
                                                           -( SPI0 ) Control Register
                                                           AT91C_SPI0_MR EQU( 0xFFFE0004 );
                                                           -( SPI0 ) Mode Register
                                                           AT91C_SPI0_IMR EQU( 0xFFFE001C );
                                                           -( SPI0 ) Interrupt Mask Register
                                                           AT91C_SPI0_TDR EQU( 0xFFFE000C );
                                                           -( SPI0 ) Transmit Data Register
                                                           AT91C_SPI0_RDR EQU( 0xFFFE0008 );
                                                           -( SPI0 ) Receive Data Register
                                                           AT91C_SPI0_CSR EQU( 0xFFFE0030 );
                                                           -( SPI0 ) Chip Select Register
/* - ========== Register definition for PDC_US1 peripheral ========== */
                                                           AT91C_US1_RNCR EQU( 0xFFFC4114 );
                                                           -( PDC_US1 ) Receive Next Counter Register
                                                           AT91C_US1_PTCR EQU( 0xFFFC4120 );
                                                           -( PDC_US1 ) PDC Transfer Control Register
                                                           AT91C_US1_TCR EQU( 0xFFFC410C );
                                                           -( PDC_US1 ) Transmit Counter Register
                                                           AT91C_US1_PTSR EQU( 0xFFFC4124 );
                                                           -( PDC_US1 ) PDC Transfer Status Register
                                                           AT91C_US1_TNPR EQU( 0xFFFC4118 );
                                                           -( PDC_US1 ) Transmit Next Pointer Register
                                                           AT91C_US1_RCR EQU( 0xFFFC4104 );
                                                           -( PDC_US1 ) Receive Counter Register
                                                           AT91C_US1_RNPR EQU( 0xFFFC4110 );
                                                           -( PDC_US1 ) Receive Next Pointer Register
                                                           AT91C_US1_RPR EQU( 0xFFFC4100 );
                                                           -( PDC_US1 ) Receive Pointer Register
                                                           AT91C_US1_TNCR EQU( 0xFFFC411C );
                                                           -( PDC_US1 ) Transmit Next Counter Register
                                                           AT91C_US1_TPR EQU( 0xFFFC4108 );
                                                           -( PDC_US1 ) Transmit Pointer Register
/* - ========== Register definition for US1 peripheral ========== */
                                                           AT91C_US1_IF EQU( 0xFFFC404C );
                                                           -( US1 ) IRDA_FILTER Register
                                                           AT91C_US1_NER EQU( 0xFFFC4044 );
                                                           -( US1 ) Nb Errors Register
                                                           AT91C_US1_RTOR EQU( 0xFFFC4024 );
                                                           -( US1 ) Receiver Time - out Register
                                                           AT91C_US1_CSR EQU( 0xFFFC4014 );
                                                           -( US1 ) Channel Status Register
                                                           AT91C_US1_IDR EQU( 0xFFFC400C );
                                                           -( US1 ) Interrupt Disable Register
                                                           AT91C_US1_IER EQU( 0xFFFC4008 );
                                                           -( US1 ) Interrupt Enable Register
                                                           AT91C_US1_THR EQU( 0xFFFC401C );
                                                           -( US1 ) Transmitter Holding Register
                                                           AT91C_US1_TTGR EQU( 0xFFFC4028 );
                                                           -( US1 ) Transmitter Time - guard Register
                                                           AT91C_US1_RHR EQU( 0xFFFC4018 );
                                                           -( US1 ) Receiver Holding Register
                                                           AT91C_US1_BRGR EQU( 0xFFFC4020 );
                                                           -( US1 ) Baud Rate Generator Register
                                                           AT91C_US1_IMR EQU( 0xFFFC4010 );
                                                           -( US1 ) Interrupt Mask Register
                                                           AT91C_US1_FIDI EQU( 0xFFFC4040 );
                                                           -( US1 ) FI_DI_Ratio Register
                                                           AT91C_US1_CR EQU( 0xFFFC4000 );
                                                           -( US1 ) Control Register
                                                           AT91C_US1_MR EQU( 0xFFFC4004 );
                                                           -( US1 ) Mode Register
/* - ========== Register definition for PDC_US0 peripheral ========== */
                                                           AT91C_US0_TNPR EQU( 0xFFFC0118 );
                                                           -( PDC_US0 ) Transmit Next Pointer Register
                                                           AT91C_US0_RNPR EQU( 0xFFFC0110 );
                                                           -( PDC_US0 ) Receive Next Pointer Register
                                                           AT91C_US0_TCR EQU( 0xFFFC010C );
                                                           -( PDC_US0 ) Transmit Counter Register
                                                           AT91C_US0_PTCR EQU( 0xFFFC0120 );
                                                           -( PDC_US0 ) PDC Transfer Control Register
                                                           AT91C_US0_PTSR EQU( 0xFFFC0124 );
                                                           -( PDC_US0 ) PDC Transfer Status Register
                                                           AT91C_US0_TNCR EQU( 0xFFFC011C );
                                                           -( PDC_US0 ) Transmit Next Counter Register
                                                           AT91C_US0_TPR EQU( 0xFFFC0108 );
                                                           -( PDC_US0 ) Transmit Pointer Register
                                                           AT91C_US0_RCR EQU( 0xFFFC0104 );
                                                           -( PDC_US0 ) Receive Counter Register
                                                           AT91C_US0_RPR EQU( 0xFFFC0100 );
                                                           -( PDC_US0 ) Receive Pointer Register
                                                           AT91C_US0_RNCR EQU( 0xFFFC0114 );
                                                           -( PDC_US0 ) Receive Next Counter Register
/* - ========== Register definition for US0 peripheral ========== */
                                                           AT91C_US0_BRGR EQU( 0xFFFC0020 );
                                                           -( US0 ) Baud Rate Generator Register
                                                           AT91C_US0_NER EQU( 0xFFFC0044 );
                                                           -( US0 ) Nb Errors Register
                                                           AT91C_US0_CR EQU( 0xFFFC0000 );
                                                           -( US0 ) Control Register
                                                           AT91C_US0_IMR EQU( 0xFFFC0010 );
                                                           -( US0 ) Interrupt Mask Register
                                                           AT91C_US0_FIDI EQU( 0xFFFC0040 );
                                                           -( US0 ) FI_DI_Ratio Register
                                                           AT91C_US0_TTGR EQU( 0xFFFC0028 );
                                                           -( US0 ) Transmitter Time - guard Register
                                                           AT91C_US0_MR EQU( 0xFFFC0004 );
                                                           -( US0 ) Mode Register
                                                           AT91C_US0_RTOR EQU( 0xFFFC0024 );
                                                           -( US0 ) Receiver Time - out Register
                                                           AT91C_US0_CSR EQU( 0xFFFC0014 );
                                                           -( US0 ) Channel Status Register
                                                           AT91C_US0_RHR EQU( 0xFFFC0018 );
                                                           -( US0 ) Receiver Holding Register
                                                           AT91C_US0_IDR EQU( 0xFFFC000C );
                                                           -( US0 ) Interrupt Disable Register
                                                           AT91C_US0_THR EQU( 0xFFFC001C );
                                                           -( US0 ) Transmitter Holding Register
                                                           AT91C_US0_IF EQU( 0xFFFC004C );
                                                           -( US0 ) IRDA_FILTER Register
                                                           AT91C_US0_IER EQU( 0xFFFC0008 );
                                                           -( US0 ) Interrupt Enable Register
/* - ========== Register definition for PDC_SSC peripheral ========== */
                                                           AT91C_SSC_TNCR EQU( 0xFFFD411C );
                                                           -( PDC_SSC ) Transmit Next Counter Register
                                                           AT91C_SSC_RPR EQU( 0xFFFD4100 );
                                                           -( PDC_SSC ) Receive Pointer Register
                                                           AT91C_SSC_RNCR EQU( 0xFFFD4114 );
                                                           -( PDC_SSC ) Receive Next Counter Register
                                                           AT91C_SSC_TPR EQU( 0xFFFD4108 );
                                                           -( PDC_SSC ) Transmit Pointer Register
                                                           AT91C_SSC_PTCR EQU( 0xFFFD4120 );
                                                           -( PDC_SSC ) PDC Transfer Control Register
                                                           AT91C_SSC_TCR EQU( 0xFFFD410C );
                                                           -( PDC_SSC ) Transmit Counter Register
                                                           AT91C_SSC_RCR EQU( 0xFFFD4104 );
                                                           -( PDC_SSC ) Receive Counter Register
                                                           AT91C_SSC_RNPR EQU( 0xFFFD4110 );
                                                           -( PDC_SSC ) Receive Next Pointer Register
                                                           AT91C_SSC_TNPR EQU( 0xFFFD4118 );
                                                           -( PDC_SSC ) Transmit Next Pointer Register
                                                           AT91C_SSC_PTSR EQU( 0xFFFD4124 );
                                                           -( PDC_SSC ) PDC Transfer Status Register
/* - ========== Register definition for SSC peripheral ========== */
                                                           AT91C_SSC_RHR EQU( 0xFFFD4020 );
                                                           -( SSC ) Receive Holding Register
                                                           AT91C_SSC_RSHR EQU( 0xFFFD4030 );
                                                           -( SSC ) Receive Sync Holding Register
                                                           AT91C_SSC_TFMR EQU( 0xFFFD401C );
                                                           -( SSC ) Transmit Frame Mode Register
                                                           AT91C_SSC_IDR EQU( 0xFFFD4048 );
                                                           -( SSC ) Interrupt Disable Register
                                                           AT91C_SSC_THR EQU( 0xFFFD4024 );
                                                           -( SSC ) Transmit Holding Register
                                                           AT91C_SSC_RCMR EQU( 0xFFFD4010 );
                                                           -( SSC ) Receive Clock ModeRegister
                                                           AT91C_SSC_IER EQU( 0xFFFD4044 );
                                                           -( SSC ) Interrupt Enable Register
                                                           AT91C_SSC_TSHR EQU( 0xFFFD4034 );
                                                           -( SSC ) Transmit Sync Holding Register
                                                           AT91C_SSC_SR EQU( 0xFFFD4040 );
                                                           -( SSC ) Status Register
                                                           AT91C_SSC_CMR EQU( 0xFFFD4004 );
                                                           -( SSC ) Clock Mode Register
                                                           AT91C_SSC_TCMR EQU( 0xFFFD4018 );
                                                           -( SSC ) Transmit Clock Mode Register
                                                           AT91C_SSC_CR EQU( 0xFFFD4000 );
                                                           -( SSC ) Control Register
                                                           AT91C_SSC_IMR EQU( 0xFFFD404C );
                                                           -( SSC ) Interrupt Mask Register
                                                           AT91C_SSC_RFMR EQU( 0xFFFD4014 );
                                                           -( SSC ) Receive Frame Mode Register
/* - ========== Register definition for TWI peripheral ========== */
                                                           AT91C_TWI_IER EQU( 0xFFFB8024 );
                                                           -( TWI ) Interrupt Enable Register
                                                           AT91C_TWI_CR EQU( 0xFFFB8000 );
                                                           -( TWI ) Control Register
                                                           AT91C_TWI_SR EQU( 0xFFFB8020 );
                                                           -( TWI ) Status Register
                                                           AT91C_TWI_IMR EQU( 0xFFFB802C );
                                                           -( TWI ) Interrupt Mask Register
                                                           AT91C_TWI_THR EQU( 0xFFFB8034 );
                                                           -( TWI ) Transmit Holding Register
                                                           AT91C_TWI_IDR EQU( 0xFFFB8028 );
                                                           -( TWI ) Interrupt Disable Register
                                                           AT91C_TWI_IADR EQU( 0xFFFB800C );
                                                           -( TWI ) Internal Address Register
                                                           AT91C_TWI_MMR EQU( 0xFFFB8004 );
                                                           -( TWI ) Master Mode Register
                                                           AT91C_TWI_CWGR EQU( 0xFFFB8010 );
                                                           -( TWI ) Clock Waveform Generator Register
                                                           AT91C_TWI_RHR EQU( 0xFFFB8030 );
                                                           -( TWI ) Receive Holding Register
/* - ========== Register definition for PWMC_CH3 peripheral ========== */
                                                           AT91C_PWMC_CH3_CUPDR EQU( 0xFFFCC270 );
                                                           -( PWMC_CH3 ) Channel Update Register
                                                           AT91C_PWMC_CH3_Reserved EQU( 0xFFFCC274 );
                                                           -( PWMC_CH3 ) Reserved
                                                           AT91C_PWMC_CH3_CPRDR EQU( 0xFFFCC268 );
                                                           -( PWMC_CH3 ) Channel Period Register
                                                           AT91C_PWMC_CH3_CDTYR EQU( 0xFFFCC264 );
                                                           -( PWMC_CH3 ) Channel Duty Cycle Register
                                                           AT91C_PWMC_CH3_CCNTR EQU( 0xFFFCC26C );
                                                           -( PWMC_CH3 ) Channel Counter Register
                                                           AT91C_PWMC_CH3_CMR EQU( 0xFFFCC260 );
                                                           -( PWMC_CH3 ) Channel Mode Register
/* - ========== Register definition for PWMC_CH2 peripheral ========== */
                                                           AT91C_PWMC_CH2_Reserved EQU( 0xFFFCC254 );
                                                           -( PWMC_CH2 ) Reserved
                                                           AT91C_PWMC_CH2_CMR EQU( 0xFFFCC240 );
                                                           -( PWMC_CH2 ) Channel Mode Register
                                                           AT91C_PWMC_CH2_CCNTR EQU( 0xFFFCC24C );
                                                           -( PWMC_CH2 ) Channel Counter Register
                                                           AT91C_PWMC_CH2_CPRDR EQU( 0xFFFCC248 );
                                                           -( PWMC_CH2 ) Channel Period Register
                                                           AT91C_PWMC_CH2_CUPDR EQU( 0xFFFCC250 );
                                                           -( PWMC_CH2 ) Channel Update Register
                                                           AT91C_PWMC_CH2_CDTYR EQU( 0xFFFCC244 );
                                                           -( PWMC_CH2 ) Channel Duty Cycle Register
/* - ========== Register definition for PWMC_CH1 peripheral ========== */
                                                           AT91C_PWMC_CH1_Reserved EQU( 0xFFFCC234 );
                                                           -( PWMC_CH1 ) Reserved
                                                           AT91C_PWMC_CH1_CUPDR EQU( 0xFFFCC230 );
                                                           -( PWMC_CH1 ) Channel Update Register
                                                           AT91C_PWMC_CH1_CPRDR EQU( 0xFFFCC228 );
                                                           -( PWMC_CH1 ) Channel Period Register
                                                           AT91C_PWMC_CH1_CCNTR EQU( 0xFFFCC22C );
                                                           -( PWMC_CH1 ) Channel Counter Register
                                                           AT91C_PWMC_CH1_CDTYR EQU( 0xFFFCC224 );
                                                           -( PWMC_CH1 ) Channel Duty Cycle Register
                                                           AT91C_PWMC_CH1_CMR EQU( 0xFFFCC220 );
                                                           -( PWMC_CH1 ) Channel Mode Register
/* - ========== Register definition for PWMC_CH0 peripheral ========== */
                                                           AT91C_PWMC_CH0_Reserved EQU( 0xFFFCC214 );
                                                           -( PWMC_CH0 ) Reserved
                                                           AT91C_PWMC_CH0_CPRDR EQU( 0xFFFCC208 );
                                                           -( PWMC_CH0 ) Channel Period Register
                                                           AT91C_PWMC_CH0_CDTYR EQU( 0xFFFCC204 );
                                                           -( PWMC_CH0 ) Channel Duty Cycle Register
                                                           AT91C_PWMC_CH0_CMR EQU( 0xFFFCC200 );
                                                           -( PWMC_CH0 ) Channel Mode Register
                                                           AT91C_PWMC_CH0_CUPDR EQU( 0xFFFCC210 );
                                                           -( PWMC_CH0 ) Channel Update Register
                                                           AT91C_PWMC_CH0_CCNTR EQU( 0xFFFCC20C );
                                                           -( PWMC_CH0 ) Channel Counter Register
/* - ========== Register definition for PWMC peripheral ========== */
                                                           AT91C_PWMC_IDR EQU( 0xFFFCC014 );
                                                           -( PWMC ) PWMC Interrupt Disable Register
                                                           AT91C_PWMC_DIS EQU( 0xFFFCC008 );
                                                           -( PWMC ) PWMC Disable Register
                                                           AT91C_PWMC_IER EQU( 0xFFFCC010 );
                                                           -( PWMC ) PWMC Interrupt Enable Register
                                                           AT91C_PWMC_VR EQU( 0xFFFCC0FC );
                                                           -( PWMC ) PWMC Version Register
                                                           AT91C_PWMC_ISR EQU( 0xFFFCC01C );
                                                           -( PWMC ) PWMC Interrupt Status Register
                                                           AT91C_PWMC_SR EQU( 0xFFFCC00C );
                                                           -( PWMC ) PWMC Status Register
                                                           AT91C_PWMC_IMR EQU( 0xFFFCC018 );
                                                           -( PWMC ) PWMC Interrupt Mask Register
                                                           AT91C_PWMC_MR EQU( 0xFFFCC000 );
                                                           -( PWMC ) PWMC Mode Register
                                                           AT91C_PWMC_ENA EQU( 0xFFFCC004 );
                                                           -( PWMC ) PWMC Enable Register
/* - ========== Register definition for UDP peripheral ========== */
                                                           AT91C_UDP_IMR EQU( 0xFFFB0018 );
                                                           -( UDP ) Interrupt Mask Register
                                                           AT91C_UDP_FADDR EQU( 0xFFFB0008 );
                                                           -( UDP ) Function Address Register
                                                           AT91C_UDP_NUM EQU( 0xFFFB0000 );
                                                           -( UDP ) Frame Number Register
                                                           AT91C_UDP_FDR EQU( 0xFFFB0050 );
                                                           -( UDP ) Endpoint FIFO Data Register
                                                           AT91C_UDP_ISR EQU( 0xFFFB001C );
                                                           -( UDP ) Interrupt Status Register
                                                           AT91C_UDP_CSR EQU( 0xFFFB0030 );
                                                           -( UDP ) Endpoint Control and Status Register
                                                           AT91C_UDP_IDR EQU( 0xFFFB0014 );
                                                           -( UDP ) Interrupt Disable Register
                                                           AT91C_UDP_ICR EQU( 0xFFFB0020 );
                                                           -( UDP ) Interrupt Clear Register
                                                           AT91C_UDP_RSTEP EQU( 0xFFFB0028 );
                                                           -( UDP ) Reset Endpoint Register
                                                           AT91C_UDP_TXVC EQU( 0xFFFB0074 );
                                                           -( UDP ) Transceiver Control Register
                                                           AT91C_UDP_GLBSTATE EQU( 0xFFFB0004 );
                                                           -( UDP ) Global State Register
                                                           AT91C_UDP_IER EQU( 0xFFFB0010 );
                                                           -( UDP ) Interrupt Enable Register
/* - ========== Register definition for TC0 peripheral ========== */
                                                           AT91C_TC0_SR EQU( 0xFFFA0020 );
                                                           -( TC0 ) Status Register
                                                           AT91C_TC0_RC EQU( 0xFFFA001C );
                                                           -( TC0 ) Register C
                                                           AT91C_TC0_RB EQU( 0xFFFA0018 );
                                                           -( TC0 ) Register B
                                                           AT91C_TC0_CCR EQU( 0xFFFA0000 );
                                                           -( TC0 ) Channel Control Register
                                                           AT91C_TC0_CMR EQU( 0xFFFA0004 );
                                                           -( TC0 ) Channel Mode Register( Capture Mode / Waveform Mode )
                                                           AT91C_TC0_IER EQU( 0xFFFA0024 );
                                                           -( TC0 ) Interrupt Enable Register
                                                           AT91C_TC0_RA EQU( 0xFFFA0014 );
                                                           -( TC0 ) Register A
                                                           AT91C_TC0_IDR EQU( 0xFFFA0028 );
                                                           -( TC0 ) Interrupt Disable Register
                                                           AT91C_TC0_CV EQU( 0xFFFA0010 );
                                                           -( TC0 ) Counter Value
                                                           AT91C_TC0_IMR EQU( 0xFFFA002C );
                                                           -( TC0 ) Interrupt Mask Register
/* - ========== Register definition for TC1 peripheral ========== */
                                                           AT91C_TC1_RB EQU( 0xFFFA0058 );
                                                           -( TC1 ) Register B
                                                           AT91C_TC1_CCR EQU( 0xFFFA0040 );
                                                           -( TC1 ) Channel Control Register
                                                           AT91C_TC1_IER EQU( 0xFFFA0064 );
                                                           -( TC1 ) Interrupt Enable Register
                                                           AT91C_TC1_IDR EQU( 0xFFFA0068 );
                                                           -( TC1 ) Interrupt Disable Register
                                                           AT91C_TC1_SR EQU( 0xFFFA0060 );
                                                           -( TC1 ) Status Register
                                                           AT91C_TC1_CMR EQU( 0xFFFA0044 );
                                                           -( TC1 ) Channel Mode Register( Capture Mode / Waveform Mode )
                                                           AT91C_TC1_RA EQU( 0xFFFA0054 );
                                                           -( TC1 ) Register A
                                                           AT91C_TC1_RC EQU( 0xFFFA005C );
                                                           -( TC1 ) Register C
                                                           AT91C_TC1_IMR EQU( 0xFFFA006C );
                                                           -( TC1 ) Interrupt Mask Register
                                                           AT91C_TC1_CV EQU( 0xFFFA0050 );
                                                           -( TC1 ) Counter Value
/* - ========== Register definition for TC2 peripheral ========== */
                                                           AT91C_TC2_CMR EQU( 0xFFFA0084 );
                                                           -( TC2 ) Channel Mode Register( Capture Mode / Waveform Mode )
                                                           AT91C_TC2_CCR EQU( 0xFFFA0080 );
                                                           -( TC2 ) Channel Control Register
                                                           AT91C_TC2_CV EQU( 0xFFFA0090 );
                                                           -( TC2 ) Counter Value
                                                           AT91C_TC2_RA EQU( 0xFFFA0094 );
                                                           -( TC2 ) Register A
                                                           AT91C_TC2_RB EQU( 0xFFFA0098 );
                                                           -( TC2 ) Register B
                                                           AT91C_TC2_IDR EQU( 0xFFFA00A8 );
                                                           -( TC2 ) Interrupt Disable Register
                                                           AT91C_TC2_IMR EQU( 0xFFFA00AC );
                                                           -( TC2 ) Interrupt Mask Register
                                                           AT91C_TC2_RC EQU( 0xFFFA009C );
                                                           -( TC2 ) Register C
                                                           AT91C_TC2_IER EQU( 0xFFFA00A4 );
                                                           -( TC2 ) Interrupt Enable Register
                                                           AT91C_TC2_SR EQU( 0xFFFA00A0 );
                                                           -( TC2 ) Status Register
/* - ========== Register definition for TCB peripheral ========== */
                                                           AT91C_TCB_BMR EQU( 0xFFFA00C4 );
                                                           -( TCB ) TC Block Mode Register
                                                           AT91C_TCB_BCR EQU( 0xFFFA00C0 );
                                                           -( TCB ) TC Block Control Register
/* - ========== Register definition for CAN_MB0 peripheral ========== */
                                                           AT91C_CAN_MB0_MDL EQU( 0xFFFD0214 );
                                                           -( CAN_MB0 ) MailBox Data Low Register
                                                           AT91C_CAN_MB0_MAM EQU( 0xFFFD0204 );
                                                           -( CAN_MB0 ) MailBox Acceptance Mask Register
                                                           AT91C_CAN_MB0_MCR EQU( 0xFFFD021C );
                                                           -( CAN_MB0 ) MailBox Control Register
                                                           AT91C_CAN_MB0_MID EQU( 0xFFFD0208 );
                                                           -( CAN_MB0 ) MailBox ID Register
                                                           AT91C_CAN_MB0_MSR EQU( 0xFFFD0210 );
                                                           -( CAN_MB0 ) MailBox Status Register
                                                           AT91C_CAN_MB0_MFID EQU( 0xFFFD020C );
                                                           -( CAN_MB0 ) MailBox Family ID Register
                                                           AT91C_CAN_MB0_MDH EQU( 0xFFFD0218 );
                                                           -( CAN_MB0 ) MailBox Data High Register
                                                           AT91C_CAN_MB0_MMR EQU( 0xFFFD0200 );
                                                           -( CAN_MB0 ) MailBox Mode Register
/* - ========== Register definition for CAN_MB1 peripheral ========== */
                                                           AT91C_CAN_MB1_MDL EQU( 0xFFFD0234 );
                                                           -( CAN_MB1 ) MailBox Data Low Register
                                                           AT91C_CAN_MB1_MID EQU( 0xFFFD0228 );
                                                           -( CAN_MB1 ) MailBox ID Register
                                                           AT91C_CAN_MB1_MMR EQU( 0xFFFD0220 );
                                                           -( CAN_MB1 ) MailBox Mode Register
                                                           AT91C_CAN_MB1_MSR EQU( 0xFFFD0230 );
                                                           -( CAN_MB1 ) MailBox Status Register
                                                           AT91C_CAN_MB1_MAM EQU( 0xFFFD0224 );
                                                           -( CAN_MB1 ) MailBox Acceptance Mask Register
                                                           AT91C_CAN_MB1_MDH EQU( 0xFFFD0238 );
                                                           -( CAN_MB1 ) MailBox Data High Register
                                                           AT91C_CAN_MB1_MCR EQU( 0xFFFD023C );
                                                           -( CAN_MB1 ) MailBox Control Register
                                                           AT91C_CAN_MB1_MFID EQU( 0xFFFD022C );
                                                           -( CAN_MB1 ) MailBox Family ID Register
/* - ========== Register definition for CAN_MB2 peripheral ========== */
                                                           AT91C_CAN_MB2_MCR EQU( 0xFFFD025C );
                                                           -( CAN_MB2 ) MailBox Control Register
                                                           AT91C_CAN_MB2_MDH EQU( 0xFFFD0258 );
                                                           -( CAN_MB2 ) MailBox Data High Register
                                                           AT91C_CAN_MB2_MID EQU( 0xFFFD0248 );
                                                           -( CAN_MB2 ) MailBox ID Register
                                                           AT91C_CAN_MB2_MDL EQU( 0xFFFD0254 );
                                                           -( CAN_MB2 ) MailBox Data Low Register
                                                           AT91C_CAN_MB2_MMR EQU( 0xFFFD0240 );
                                                           -( CAN_MB2 ) MailBox Mode Register
                                                           AT91C_CAN_MB2_MAM EQU( 0xFFFD0244 );
                                                           -( CAN_MB2 ) MailBox Acceptance Mask Register
                                                           AT91C_CAN_MB2_MFID EQU( 0xFFFD024C );
                                                           -( CAN_MB2 ) MailBox Family ID Register
                                                           AT91C_CAN_MB2_MSR EQU( 0xFFFD0250 );
                                                           -( CAN_MB2 ) MailBox Status Register
/* - ========== Register definition for CAN_MB3 peripheral ========== */
                                                           AT91C_CAN_MB3_MFID EQU( 0xFFFD026C );
                                                           -( CAN_MB3 ) MailBox Family ID Register
                                                           AT91C_CAN_MB3_MAM EQU( 0xFFFD0264 );
                                                           -( CAN_MB3 ) MailBox Acceptance Mask Register
                                                           AT91C_CAN_MB3_MID EQU( 0xFFFD0268 );
                                                           -( CAN_MB3 ) MailBox ID Register
                                                           AT91C_CAN_MB3_MCR EQU( 0xFFFD027C );
                                                           -( CAN_MB3 ) MailBox Control Register
                                                           AT91C_CAN_MB3_MMR EQU( 0xFFFD0260 );
                                                           -( CAN_MB3 ) MailBox Mode Register
                                                           AT91C_CAN_MB3_MSR EQU( 0xFFFD0270 );
                                                           -( CAN_MB3 ) MailBox Status Register
                                                           AT91C_CAN_MB3_MDL EQU( 0xFFFD0274 );
                                                           -( CAN_MB3 ) MailBox Data Low Register
                                                           AT91C_CAN_MB3_MDH EQU( 0xFFFD0278 );
                                                           -( CAN_MB3 ) MailBox Data High Register
/* - ========== Register definition for CAN_MB4 peripheral ========== */
                                                           AT91C_CAN_MB4_MID EQU( 0xFFFD0288 );
                                                           -( CAN_MB4 ) MailBox ID Register
                                                           AT91C_CAN_MB4_MMR EQU( 0xFFFD0280 );
                                                           -( CAN_MB4 ) MailBox Mode Register
                                                           AT91C_CAN_MB4_MDH EQU( 0xFFFD0298 );
                                                           -( CAN_MB4 ) MailBox Data High Register
                                                           AT91C_CAN_MB4_MFID EQU( 0xFFFD028C );
                                                           -( CAN_MB4 ) MailBox Family ID Register
                                                           AT91C_CAN_MB4_MSR EQU( 0xFFFD0290 );
                                                           -( CAN_MB4 ) MailBox Status Register
                                                           AT91C_CAN_MB4_MCR EQU( 0xFFFD029C );
                                                           -( CAN_MB4 ) MailBox Control Register
                                                           AT91C_CAN_MB4_MDL EQU( 0xFFFD0294 );
                                                           -( CAN_MB4 ) MailBox Data Low Register
                                                           AT91C_CAN_MB4_MAM EQU( 0xFFFD0284 );
                                                           -( CAN_MB4 ) MailBox Acceptance Mask Register
/* - ========== Register definition for CAN_MB5 peripheral ========== */
                                                           AT91C_CAN_MB5_MSR EQU( 0xFFFD02B0 );
                                                           -( CAN_MB5 ) MailBox Status Register
                                                           AT91C_CAN_MB5_MCR EQU( 0xFFFD02BC );
                                                           -( CAN_MB5 ) MailBox Control Register
                                                           AT91C_CAN_MB5_MFID EQU( 0xFFFD02AC );
                                                           -( CAN_MB5 ) MailBox Family ID Register
                                                           AT91C_CAN_MB5_MDH EQU( 0xFFFD02B8 );
                                                           -( CAN_MB5 ) MailBox Data High Register
                                                           AT91C_CAN_MB5_MID EQU( 0xFFFD02A8 );
                                                           -( CAN_MB5 ) MailBox ID Register
                                                           AT91C_CAN_MB5_MMR EQU( 0xFFFD02A0 );
                                                           -( CAN_MB5 ) MailBox Mode Register
                                                           AT91C_CAN_MB5_MDL EQU( 0xFFFD02B4 );
                                                           -( CAN_MB5 ) MailBox Data Low Register
                                                           AT91C_CAN_MB5_MAM EQU( 0xFFFD02A4 );
                                                           -( CAN_MB5 ) MailBox Acceptance Mask Register
/* - ========== Register definition for CAN_MB6 peripheral ========== */
                                                           AT91C_CAN_MB6_MFID EQU( 0xFFFD02CC );
                                                           -( CAN_MB6 ) MailBox Family ID Register
                                                           AT91C_CAN_MB6_MID EQU( 0xFFFD02C8 );
                                                           -( CAN_MB6 ) MailBox ID Register
                                                           AT91C_CAN_MB6_MAM EQU( 0xFFFD02C4 );
                                                           -( CAN_MB6 ) MailBox Acceptance Mask Register
                                                           AT91C_CAN_MB6_MSR EQU( 0xFFFD02D0 );
                                                           -( CAN_MB6 ) MailBox Status Register
                                                           AT91C_CAN_MB6_MDL EQU( 0xFFFD02D4 );
                                                           -( CAN_MB6 ) MailBox Data Low Register
                                                           AT91C_CAN_MB6_MCR EQU( 0xFFFD02DC );
                                                           -( CAN_MB6 ) MailBox Control Register
                                                           AT91C_CAN_MB6_MDH EQU( 0xFFFD02D8 );
                                                           -( CAN_MB6 ) MailBox Data High Register
                                                           AT91C_CAN_MB6_MMR EQU( 0xFFFD02C0 );
                                                           -( CAN_MB6 ) MailBox Mode Register
/* - ========== Register definition for CAN_MB7 peripheral ========== */
                                                           AT91C_CAN_MB7_MCR EQU( 0xFFFD02FC );
                                                           -( CAN_MB7 ) MailBox Control Register
                                                           AT91C_CAN_MB7_MDH EQU( 0xFFFD02F8 );
                                                           -( CAN_MB7 ) MailBox Data High Register
                                                           AT91C_CAN_MB7_MFID EQU( 0xFFFD02EC );
                                                           -( CAN_MB7 ) MailBox Family ID Register
                                                           AT91C_CAN_MB7_MDL EQU( 0xFFFD02F4 );
                                                           -( CAN_MB7 ) MailBox Data Low Register
                                                           AT91C_CAN_MB7_MID EQU( 0xFFFD02E8 );
                                                           -( CAN_MB7 ) MailBox ID Register
                                                           AT91C_CAN_MB7_MMR EQU( 0xFFFD02E0 );
                                                           -( CAN_MB7 ) MailBox Mode Register
                                                           AT91C_CAN_MB7_MAM EQU( 0xFFFD02E4 );
                                                           -( CAN_MB7 ) MailBox Acceptance Mask Register
                                                           AT91C_CAN_MB7_MSR EQU( 0xFFFD02F0 );
                                                           -( CAN_MB7 ) MailBox Status Register
/* - ========== Register definition for CAN peripheral ========== */
                                                           AT91C_CAN_TCR EQU( 0xFFFD0024 );
                                                           -( CAN ) Transfer Command Register
                                                           AT91C_CAN_IMR EQU( 0xFFFD000C );
                                                           -( CAN ) Interrupt Mask Register
                                                           AT91C_CAN_IER EQU( 0xFFFD0004 );
                                                           -( CAN ) Interrupt Enable Register
                                                           AT91C_CAN_ECR EQU( 0xFFFD0020 );
                                                           -( CAN ) Error Counter Register
                                                           AT91C_CAN_TIMESTP EQU( 0xFFFD001C );
                                                           -( CAN ) Time Stamp Register
                                                           AT91C_CAN_MR EQU( 0xFFFD0000 );
                                                           -( CAN ) Mode Register
                                                           AT91C_CAN_IDR EQU( 0xFFFD0008 );
                                                           -( CAN ) Interrupt Disable Register
                                                           AT91C_CAN_ACR EQU( 0xFFFD0028 );
                                                           -( CAN ) Abort Command Register
                                                           AT91C_CAN_TIM EQU( 0xFFFD0018 );
                                                           -( CAN ) Timer Register
                                                           AT91C_CAN_SR EQU( 0xFFFD0010 );
                                                           -( CAN ) Status Register
                                                           AT91C_CAN_BR EQU( 0xFFFD0014 );
                                                           -( CAN ) Baudrate Register
                                                           AT91C_CAN_VR EQU( 0xFFFD00FC );
                                                           -( CAN ) Version Register
/* - ========== Register definition for EMAC peripheral ========== */
                                                           AT91C_EMAC_ISR EQU( 0xFFFDC024 );
                                                           -( EMAC ) Interrupt Status Register
                                                           AT91C_EMAC_SA4H EQU( 0xFFFDC0B4 );
                                                           -( EMAC ) Specific Address 4 Top, Last 2 bytes
                                                           AT91C_EMAC_SA1L EQU( 0xFFFDC098 );
                                                           -( EMAC ) Specific Address 1 Bottom, First 4 bytes
                                                           AT91C_EMAC_ELE EQU( 0xFFFDC078 );
                                                           -( EMAC ) Excessive Length Errors Register
                                                           AT91C_EMAC_LCOL EQU( 0xFFFDC05C );
                                                           -( EMAC ) Late Collision Register
                                                           AT91C_EMAC_RLE EQU( 0xFFFDC088 );
                                                           -( EMAC ) Receive Length Field Mismatch Register
                                                           AT91C_EMAC_WOL EQU( 0xFFFDC0C4 );
                                                           -( EMAC ) Wake On LAN Register
                                                           AT91C_EMAC_DTF EQU( 0xFFFDC058 );
                                                           -( EMAC ) Deferred Transmission Frame Register
                                                           AT91C_EMAC_TUND EQU( 0xFFFDC064 );
                                                           -( EMAC ) Transmit Underrun Error Register
                                                           AT91C_EMAC_NCR EQU( 0xFFFDC000 );
                                                           -( EMAC ) Network Control Register
                                                           AT91C_EMAC_SA4L EQU( 0xFFFDC0B0 );
                                                           -( EMAC ) Specific Address 4 Bottom, First 4 bytes
                                                           AT91C_EMAC_RSR EQU( 0xFFFDC020 );
                                                           -( EMAC ) Receive Status Register
                                                           AT91C_EMAC_SA3L EQU( 0xFFFDC0A8 );
                                                           -( EMAC ) Specific Address 3 Bottom, First 4 bytes
                                                           AT91C_EMAC_TSR EQU( 0xFFFDC014 );
                                                           -( EMAC ) Transmit Status Register
                                                           AT91C_EMAC_IDR EQU( 0xFFFDC02C );
                                                           -( EMAC ) Interrupt Disable Register
                                                           AT91C_EMAC_RSE EQU( 0xFFFDC074 );
                                                           -( EMAC ) Receive Symbol Errors Register
                                                           AT91C_EMAC_ECOL EQU( 0xFFFDC060 );
                                                           -( EMAC ) Excessive Collision Register
                                                           AT91C_EMAC_TID EQU( 0xFFFDC0B8 );
                                                           -( EMAC ) Type ID Checking Register
                                                           AT91C_EMAC_HRB EQU( 0xFFFDC090 );
                                                           -( EMAC ) Hash Address Bottom[ 31 : 0 ]
                                                           AT91C_EMAC_TBQP EQU( 0xFFFDC01C );
                                                           -( EMAC ) Transmit Buffer Queue Pointer
                                                           AT91C_EMAC_USRIO EQU( 0xFFFDC0C0 );
                                                           -( EMAC ) USER Input / Output Register
                                                           AT91C_EMAC_PTR EQU( 0xFFFDC038 );
                                                           -( EMAC ) Pause Time Register
                                                           AT91C_EMAC_SA2H EQU( 0xFFFDC0A4 );
                                                           -( EMAC ) Specific Address 2 Top, Last 2 bytes
                                                           AT91C_EMAC_ROV EQU( 0xFFFDC070 );
                                                           -( EMAC ) Receive Overrun Errors Register
                                                           AT91C_EMAC_ALE EQU( 0xFFFDC054 );
                                                           -( EMAC ) Alignment Error Register
                                                           AT91C_EMAC_RJA EQU( 0xFFFDC07C );
                                                           -( EMAC ) Receive Jabbers Register
                                                           AT91C_EMAC_RBQP EQU( 0xFFFDC018 );
                                                           -( EMAC ) Receive Buffer Queue Pointer
                                                           AT91C_EMAC_TPF EQU( 0xFFFDC08C );
                                                           -( EMAC ) Transmitted Pause Frames Register
                                                           AT91C_EMAC_NCFGR EQU( 0xFFFDC004 );
                                                           -( EMAC ) Network Configuration Register
                                                           AT91C_EMAC_HRT EQU( 0xFFFDC094 );
                                                           -( EMAC ) Hash Address Top[ 63 : 32 ]
                                                           AT91C_EMAC_USF EQU( 0xFFFDC080 );
                                                           -( EMAC ) Undersize Frames Register
                                                           AT91C_EMAC_FCSE EQU( 0xFFFDC050 );
                                                           -( EMAC ) Frame Check Sequence Error Register
                                                           AT91C_EMAC_TPQ EQU( 0xFFFDC0BC );
                                                           -( EMAC ) Transmit Pause Quantum Register
                                                           AT91C_EMAC_MAN EQU( 0xFFFDC034 );
                                                           -( EMAC ) PHY Maintenance Register
                                                           AT91C_EMAC_FTO EQU( 0xFFFDC040 );
                                                           -( EMAC ) Frames Transmitted OK Register
                                                           AT91C_EMAC_REV EQU( 0xFFFDC0FC );
                                                           -( EMAC ) Revision Register
                                                           AT91C_EMAC_IMR EQU( 0xFFFDC030 );
                                                           -( EMAC ) Interrupt Mask Register
                                                           AT91C_EMAC_SCF EQU( 0xFFFDC044 );
                                                           -( EMAC ) Single Collision Frame Register
                                                           AT91C_EMAC_PFR EQU( 0xFFFDC03C );
                                                           -( EMAC ) Pause Frames received Register
                                                           AT91C_EMAC_MCF EQU( 0xFFFDC048 );
                                                           -( EMAC ) Multiple Collision Frame Register
                                                           AT91C_EMAC_NSR EQU( 0xFFFDC008 );
                                                           -( EMAC ) Network Status Register
                                                           AT91C_EMAC_SA2L EQU( 0xFFFDC0A0 );
                                                           -( EMAC ) Specific Address 2 Bottom, First 4 bytes
                                                           AT91C_EMAC_FRO EQU( 0xFFFDC04C );
                                                           -( EMAC ) Frames Received OK Register
                                                           AT91C_EMAC_IER EQU( 0xFFFDC028 );
                                                           -( EMAC ) Interrupt Enable Register
                                                           AT91C_EMAC_SA1H EQU( 0xFFFDC09C );
                                                           -( EMAC ) Specific Address 1 Top, Last 2 bytes
                                                           AT91C_EMAC_CSE EQU( 0xFFFDC068 );
                                                           -( EMAC ) Carrier Sense Error Register
                                                           AT91C_EMAC_SA3H EQU( 0xFFFDC0AC );
                                                           -( EMAC ) Specific Address 3 Top, Last 2 bytes
                                                           AT91C_EMAC_RRE EQU( 0xFFFDC06C );
                                                           -( EMAC ) Receive Ressource Error Register
                                                           AT91C_EMAC_STE EQU( 0xFFFDC084 );
                                                           -( EMAC ) SQE Test Error Register
/* - ========== Register definition for PDC_ADC peripheral ========== */
                                                           AT91C_ADC_PTSR EQU( 0xFFFD8124 );
                                                           -( PDC_ADC ) PDC Transfer Status Register
                                                           AT91C_ADC_PTCR EQU( 0xFFFD8120 );
                                                           -( PDC_ADC ) PDC Transfer Control Register
                                                           AT91C_ADC_TNPR EQU( 0xFFFD8118 );
                                                           -( PDC_ADC ) Transmit Next Pointer Register
                                                           AT91C_ADC_TNCR EQU( 0xFFFD811C );
                                                           -( PDC_ADC ) Transmit Next Counter Register
                                                           AT91C_ADC_RNPR EQU( 0xFFFD8110 );
                                                           -( PDC_ADC ) Receive Next Pointer Register
                                                           AT91C_ADC_RNCR EQU( 0xFFFD8114 );
                                                           -( PDC_ADC ) Receive Next Counter Register
                                                           AT91C_ADC_RPR EQU( 0xFFFD8100 );
                                                           -( PDC_ADC ) Receive Pointer Register
                                                           AT91C_ADC_TCR EQU( 0xFFFD810C );
                                                           -( PDC_ADC ) Transmit Counter Register
                                                           AT91C_ADC_TPR EQU( 0xFFFD8108 );
                                                           -( PDC_ADC ) Transmit Pointer Register
                                                           AT91C_ADC_RCR EQU( 0xFFFD8104 );
                                                           -( PDC_ADC ) Receive Counter Register
/* - ========== Register definition for ADC peripheral ========== */
                                                           AT91C_ADC_CDR2 EQU( 0xFFFD8038 );
                                                           -( ADC ) ADC Channel Data Register 2
                                                           AT91C_ADC_CDR3 EQU( 0xFFFD803C );
                                                           -( ADC ) ADC Channel Data Register 3
                                                           AT91C_ADC_CDR0 EQU( 0xFFFD8030 );
                                                           -( ADC ) ADC Channel Data Register 0
                                                           AT91C_ADC_CDR5 EQU( 0xFFFD8044 );
                                                           -( ADC ) ADC Channel Data Register 5
                                                           AT91C_ADC_CHDR EQU( 0xFFFD8014 );
                                                           -( ADC ) ADC Channel Disable Register
                                                           AT91C_ADC_SR EQU( 0xFFFD801C );
                                                           -( ADC ) ADC Status Register
                                                           AT91C_ADC_CDR4 EQU( 0xFFFD8040 );
                                                           -( ADC ) ADC Channel Data Register 4
                                                           AT91C_ADC_CDR1 EQU( 0xFFFD8034 );
                                                           -( ADC ) ADC Channel Data Register 1
                                                           AT91C_ADC_LCDR EQU( 0xFFFD8020 );
                                                           -( ADC ) ADC Last Converted Data Register
                                                           AT91C_ADC_IDR EQU( 0xFFFD8028 );
                                                           -( ADC ) ADC Interrupt Disable Register
                                                           AT91C_ADC_CR EQU( 0xFFFD8000 );
                                                           -( ADC ) ADC Control Register
                                                           AT91C_ADC_CDR7 EQU( 0xFFFD804C );
                                                           -( ADC ) ADC Channel Data Register 7
                                                           AT91C_ADC_CDR6 EQU( 0xFFFD8048 );
                                                           -( ADC ) ADC Channel Data Register 6
                                                           AT91C_ADC_IER EQU( 0xFFFD8024 );
                                                           -( ADC ) ADC Interrupt Enable Register
                                                           AT91C_ADC_CHER EQU( 0xFFFD8010 );
                                                           -( ADC ) ADC Channel Enable Register
                                                           AT91C_ADC_CHSR EQU( 0xFFFD8018 );
                                                           -( ADC ) ADC Channel Status Register
                                                           AT91C_ADC_MR EQU( 0xFFFD8004 );
                                                           -( ADC ) ADC Mode Register
                                                           AT91C_ADC_IMR EQU( 0xFFFD802C );
                                                           -( ADC ) ADC Interrupt Mask Register
/* - ========== Register definition for PDC_AES peripheral ========== */
                                                           AT91C_AES_TPR EQU( 0xFFFA4108 );
                                                           -( PDC_AES ) Transmit Pointer Register
                                                           AT91C_AES_PTCR EQU( 0xFFFA4120 );
                                                           -( PDC_AES ) PDC Transfer Control Register
                                                           AT91C_AES_RNPR EQU( 0xFFFA4110 );
                                                           -( PDC_AES ) Receive Next Pointer Register
                                                           AT91C_AES_TNCR EQU( 0xFFFA411C );
                                                           -( PDC_AES ) Transmit Next Counter Register
                                                           AT91C_AES_TCR EQU( 0xFFFA410C );
                                                           -( PDC_AES ) Transmit Counter Register
                                                           AT91C_AES_RCR EQU( 0xFFFA4104 );
                                                           -( PDC_AES ) Receive Counter Register
                                                           AT91C_AES_RNCR EQU( 0xFFFA4114 );
                                                           -( PDC_AES ) Receive Next Counter Register
                                                           AT91C_AES_TNPR EQU( 0xFFFA4118 );
                                                           -( PDC_AES ) Transmit Next Pointer Register
                                                           AT91C_AES_RPR EQU( 0xFFFA4100 );
                                                           -( PDC_AES ) Receive Pointer Register
                                                           AT91C_AES_PTSR EQU( 0xFFFA4124 );
                                                           -( PDC_AES ) PDC Transfer Status Register
/* - ========== Register definition for AES peripheral ========== */
                                                           AT91C_AES_IVxR EQU( 0xFFFA4060 );
                                                           -( AES ) Initialization Vector x Register
                                                           AT91C_AES_MR EQU( 0xFFFA4004 );
                                                           -( AES ) Mode Register
                                                           AT91C_AES_VR EQU( 0xFFFA40FC );
                                                           -( AES ) AES Version Register
                                                           AT91C_AES_ODATAxR EQU( 0xFFFA4050 );
                                                           -( AES ) Output Data x Register
                                                           AT91C_AES_IDATAxR EQU( 0xFFFA4040 );
                                                           -( AES ) Input Data x Register
                                                           AT91C_AES_CR EQU( 0xFFFA4000 );
                                                           -( AES ) Control Register
                                                           AT91C_AES_IDR EQU( 0xFFFA4014 );
                                                           -( AES ) Interrupt Disable Register
                                                           AT91C_AES_IMR EQU( 0xFFFA4018 );
                                                           -( AES ) Interrupt Mask Register
                                                           AT91C_AES_IER EQU( 0xFFFA4010 );
                                                           -( AES ) Interrupt Enable Register
                                                           AT91C_AES_KEYWxR EQU( 0xFFFA4020 );
                                                           -( AES ) Key Word x Register
                                                           AT91C_AES_ISR EQU( 0xFFFA401C );
                                                           -( AES ) Interrupt Status Register
/* - ========== Register definition for PDC_TDES peripheral ========== */
                                                           AT91C_TDES_RNCR EQU( 0xFFFA8114 );
                                                           -( PDC_TDES ) Receive Next Counter Register
                                                           AT91C_TDES_TCR EQU( 0xFFFA810C );
                                                           -( PDC_TDES ) Transmit Counter Register
                                                           AT91C_TDES_RCR EQU( 0xFFFA8104 );
                                                           -( PDC_TDES ) Receive Counter Register
                                                           AT91C_TDES_TNPR EQU( 0xFFFA8118 );
                                                           -( PDC_TDES ) Transmit Next Pointer Register
                                                           AT91C_TDES_RNPR EQU( 0xFFFA8110 );
                                                           -( PDC_TDES ) Receive Next Pointer Register
                                                           AT91C_TDES_RPR EQU( 0xFFFA8100 );
                                                           -( PDC_TDES ) Receive Pointer Register
                                                           AT91C_TDES_TNCR EQU( 0xFFFA811C );
                                                           -( PDC_TDES ) Transmit Next Counter Register
                                                           AT91C_TDES_TPR EQU( 0xFFFA8108 );
                                                           -( PDC_TDES ) Transmit Pointer Register
                                                           AT91C_TDES_PTSR EQU( 0xFFFA8124 );
                                                           -( PDC_TDES ) PDC Transfer Status Register
                                                           AT91C_TDES_PTCR EQU( 0xFFFA8120 );
                                                           -( PDC_TDES ) PDC Transfer Control Register
/* - ========== Register definition for TDES peripheral ========== */
                                                           AT91C_TDES_KEY2WxR EQU( 0xFFFA8028 );
                                                           -( TDES ) Key 2 Word x Register
                                                           AT91C_TDES_KEY3WxR EQU( 0xFFFA8030 );
                                                           -( TDES ) Key 3 Word x Register
                                                           AT91C_TDES_IDR EQU( 0xFFFA8014 );
                                                           -( TDES ) Interrupt Disable Register
                                                           AT91C_TDES_VR EQU( 0xFFFA80FC );
                                                           -( TDES ) TDES Version Register
                                                           AT91C_TDES_IVxR EQU( 0xFFFA8060 );
                                                           -( TDES ) Initialization Vector x Register
                                                           AT91C_TDES_ODATAxR EQU( 0xFFFA8050 );
                                                           -( TDES ) Output Data x Register
                                                           AT91C_TDES_IMR EQU( 0xFFFA8018 );
                                                           -( TDES ) Interrupt Mask Register
                                                           AT91C_TDES_MR EQU( 0xFFFA8004 );
                                                           -( TDES ) Mode Register
                                                           AT91C_TDES_CR EQU( 0xFFFA8000 );
                                                           -( TDES ) Control Register
                                                           AT91C_TDES_IER EQU( 0xFFFA8010 );
                                                           -( TDES ) Interrupt Enable Register
                                                           AT91C_TDES_ISR EQU( 0xFFFA801C );
                                                           -( TDES ) Interrupt Status Register
                                                           AT91C_TDES_IDATAxR EQU( 0xFFFA8040 );
                                                           -( TDES ) Input Data x Register
                                                           AT91C_TDES_KEY1WxR EQU( 0xFFFA8020 );
                                                           -( TDES ) Key 1 Word x Register

/* - ***************************************************************************** */
/* -               PIO DEFINITIONS FOR AT91SAM7X256 */
/* - ***************************************************************************** */
                                                           AT91C_PIO_PA0 EQU( 1 << 0 );
                                                           -Pin Controlled by PA0
                                                           AT91C_PA0_RXD0 EQU( AT91C_PIO_PA0 );
                                                           -USART 0 Receive Data
                                                           AT91C_PIO_PA1 EQU( 1 << 1 );
                                                           -Pin Controlled by PA1
                                                           AT91C_PA1_TXD0 EQU( AT91C_PIO_PA1 );
                                                           -USART 0 Transmit Data
                                                           AT91C_PIO_PA10 EQU( 1 << 10 );
                                                           -Pin Controlled by PA10
                                                           AT91C_PA10_TWD EQU( AT91C_PIO_PA10 );
                                                           -TWI Two - wire Serial Data
                                                           AT91C_PIO_PA11 EQU( 1 << 11 );
                                                           -Pin Controlled by PA11
                                                           AT91C_PA11_TWCK EQU( AT91C_PIO_PA11 );
                                                           -TWI Two - wire Serial Clock
                                                           AT91C_PIO_PA12 EQU( 1 << 12 );
                                                           -Pin Controlled by PA12
                                                           AT91C_PA12_NPCS00 EQU( AT91C_PIO_PA12 );
                                                           -SPI 0 Peripheral Chip Select 0
                                                           AT91C_PIO_PA13 EQU( 1 << 13 );
                                                           -Pin Controlled by PA13
                                                           AT91C_PA13_NPCS01 EQU( AT91C_PIO_PA13 );
                                                           -SPI 0 Peripheral Chip Select 1
                                                           AT91C_PA13_PCK1 EQU( AT91C_PIO_PA13 );
                                                           -PMC Programmable Clock Output 1
                                                           AT91C_PIO_PA14 EQU( 1 << 14 );
                                                           -Pin Controlled by PA14
                                                           AT91C_PA14_NPCS02 EQU( AT91C_PIO_PA14 );
                                                           -SPI 0 Peripheral Chip Select 2
                                                           AT91C_PA14_IRQ1 EQU( AT91C_PIO_PA14 );
                                                           -External Interrupt 1
                                                           AT91C_PIO_PA15 EQU( 1 << 15 );
                                                           -Pin Controlled by PA15
                                                           AT91C_PA15_NPCS03 EQU( AT91C_PIO_PA15 );
                                                           -SPI 0 Peripheral Chip Select 3
                                                           AT91C_PA15_TCLK2 EQU( AT91C_PIO_PA15 );
                                                           -Timer Counter 2 external clock input
                                                           AT91C_PIO_PA16 EQU( 1 << 16 );
                                                           -Pin Controlled by PA16
                                                           AT91C_PA16_MISO0 EQU( AT91C_PIO_PA16 );
                                                           -SPI 0 Master In Slave
                                                           AT91C_PIO_PA17 EQU( 1 << 17 );
                                                           -Pin Controlled by PA17
                                                           AT91C_PA17_MOSI0 EQU( AT91C_PIO_PA17 );
                                                           -SPI 0 Master Out Slave
                                                           AT91C_PIO_PA18 EQU( 1 << 18 );
                                                           -Pin Controlled by PA18
                                                           AT91C_PA18_SPCK0 EQU( AT91C_PIO_PA18 );
                                                           -SPI 0 Serial Clock
                                                           AT91C_PIO_PA19 EQU( 1 << 19 );
                                                           -Pin Controlled by PA19
                                                           AT91C_PA19_CANRX EQU( AT91C_PIO_PA19 );
                                                           -CAN Receive
                                                           AT91C_PIO_PA2 EQU( 1 << 2 );
                                                           -Pin Controlled by PA2
                                                           AT91C_PA2_SCK0 EQU( AT91C_PIO_PA2 );
                                                           -USART 0 Serial Clock
                                                           AT91C_PA2_NPCS11 EQU( AT91C_PIO_PA2 );
                                                           -SPI 1 Peripheral Chip Select 1
                                                           AT91C_PIO_PA20 EQU( 1 << 20 );
                                                           -Pin Controlled by PA20
                                                           AT91C_PA20_CANTX EQU( AT91C_PIO_PA20 );
                                                           -CAN Transmit
                                                           AT91C_PIO_PA21 EQU( 1 << 21 );
                                                           -Pin Controlled by PA21
                                                           AT91C_PA21_TF EQU( AT91C_PIO_PA21 );
                                                           -SSC Transmit Frame Sync
                                                           AT91C_PA21_NPCS10 EQU( AT91C_PIO_PA21 );
                                                           -SPI 1 Peripheral Chip Select 0
                                                           AT91C_PIO_PA22 EQU( 1 << 22 );
                                                           -Pin Controlled by PA22
                                                           AT91C_PA22_TK EQU( AT91C_PIO_PA22 );
                                                           -SSC Transmit Clock
                                                           AT91C_PA22_SPCK1 EQU( AT91C_PIO_PA22 );
                                                           -SPI 1 Serial Clock
                                                           AT91C_PIO_PA23 EQU( 1 << 23 );
                                                           -Pin Controlled by PA23
                                                           AT91C_PA23_TD EQU( AT91C_PIO_PA23 );
                                                           -SSC Transmit data
                                                           AT91C_PA23_MOSI1 EQU( AT91C_PIO_PA23 );
                                                           -SPI 1 Master Out Slave
                                                           AT91C_PIO_PA24 EQU( 1 << 24 );
                                                           -Pin Controlled by PA24
                                                           AT91C_PA24_RD EQU( AT91C_PIO_PA24 );
                                                           -SSC Receive Data
                                                           AT91C_PA24_MISO1 EQU( AT91C_PIO_PA24 );
                                                           -SPI 1 Master In Slave
                                                           AT91C_PIO_PA25 EQU( 1 << 25 );
                                                           -Pin Controlled by PA25
                                                           AT91C_PA25_RK EQU( AT91C_PIO_PA25 );
                                                           -SSC Receive Clock
                                                           AT91C_PA25_NPCS11 EQU( AT91C_PIO_PA25 );
                                                           -SPI 1 Peripheral Chip Select 1
                                                           AT91C_PIO_PA26 EQU( 1 << 26 );
                                                           -Pin Controlled by PA26
                                                           AT91C_PA26_RF EQU( AT91C_PIO_PA26 );
                                                           -SSC Receive Frame Sync
                                                           AT91C_PA26_NPCS12 EQU( AT91C_PIO_PA26 );
                                                           -SPI 1 Peripheral Chip Select 2
                                                           AT91C_PIO_PA27 EQU( 1 << 27 );
                                                           -Pin Controlled by PA27
                                                           AT91C_PA27_DRXD EQU( AT91C_PIO_PA27 );
                                                           -DBGU Debug Receive Data
                                                           AT91C_PA27_PCK3 EQU( AT91C_PIO_PA27 );
                                                           -PMC Programmable Clock Output 3
                                                           AT91C_PIO_PA28 EQU( 1 << 28 );
                                                           -Pin Controlled by PA28
                                                           AT91C_PA28_DTXD EQU( AT91C_PIO_PA28 );
                                                           -DBGU Debug Transmit Data
                                                           AT91C_PIO_PA29 EQU( 1 << 29 );
                                                           -Pin Controlled by PA29
                                                           AT91C_PA29_FIQ EQU( AT91C_PIO_PA29 );
                                                           -AIC Fast Interrupt Input
                                                           AT91C_PA29_NPCS13 EQU( AT91C_PIO_PA29 );
                                                           -SPI 1 Peripheral Chip Select 3
                                                           AT91C_PIO_PA3 EQU( 1 << 3 );
                                                           -Pin Controlled by PA3
                                                           AT91C_PA3_RTS0 EQU( AT91C_PIO_PA3 );
                                                           -USART 0 Ready To Send
                                                           AT91C_PA3_NPCS12 EQU( AT91C_PIO_PA3 );
                                                           -SPI 1 Peripheral Chip Select 2
                                                           AT91C_PIO_PA30 EQU( 1 << 30 );
                                                           -Pin Controlled by PA30
                                                           AT91C_PA30_IRQ0 EQU( AT91C_PIO_PA30 );
                                                           -External Interrupt 0
                                                           AT91C_PA30_PCK2 EQU( AT91C_PIO_PA30 );
                                                           -PMC Programmable Clock Output 2
                                                           AT91C_PIO_PA4 EQU( 1 << 4 );
                                                           -Pin Controlled by PA4
                                                           AT91C_PA4_CTS0 EQU( AT91C_PIO_PA4 );
                                                           -USART 0 Clear To Send
                                                           AT91C_PA4_NPCS13 EQU( AT91C_PIO_PA4 );
                                                           -SPI 1 Peripheral Chip Select 3
                                                           AT91C_PIO_PA5 EQU( 1 << 5 );
                                                           -Pin Controlled by PA5
                                                           AT91C_PA5_RXD1 EQU( AT91C_PIO_PA5 );
                                                           -USART 1 Receive Data
                                                           AT91C_PIO_PA6 EQU( 1 << 6 );
                                                           -Pin Controlled by PA6
                                                           AT91C_PA6_TXD1 EQU( AT91C_PIO_PA6 );
                                                           -USART 1 Transmit Data
                                                           AT91C_PIO_PA7 EQU( 1 << 7 );
                                                           -Pin Controlled by PA7
                                                           AT91C_PA7_SCK1 EQU( AT91C_PIO_PA7 );
                                                           -USART 1 Serial Clock
                                                           AT91C_PA7_NPCS01 EQU( AT91C_PIO_PA7 );
                                                           -SPI 0 Peripheral Chip Select 1
                                                           AT91C_PIO_PA8 EQU( 1 << 8 );
                                                           -Pin Controlled by PA8
                                                           AT91C_PA8_RTS1 EQU( AT91C_PIO_PA8 );
                                                           -USART 1 Ready To Send
                                                           AT91C_PA8_NPCS02 EQU( AT91C_PIO_PA8 );
                                                           -SPI 0 Peripheral Chip Select 2
                                                           AT91C_PIO_PA9 EQU( 1 << 9 );
                                                           -Pin Controlled by PA9
                                                           AT91C_PA9_CTS1 EQU( AT91C_PIO_PA9 );
                                                           -USART 1 Clear To Send
                                                           AT91C_PA9_NPCS03 EQU( AT91C_PIO_PA9 );
                                                           -SPI 0 Peripheral Chip Select 3
                                                           AT91C_PIO_PB0 EQU( 1 << 0 );
                                                           -Pin Controlled by PB0
                                                           AT91C_PB0_ETXCK_EREFCK EQU( AT91C_PIO_PB0 );
                                                           -Ethernet MAC Transmit Clock / Reference Clock
                                                           AT91C_PB0_PCK0 EQU( AT91C_PIO_PB0 );
                                                           -PMC Programmable Clock Output 0
                                                           AT91C_PIO_PB1 EQU( 1 << 1 );
                                                           -Pin Controlled by PB1
                                                           AT91C_PB1_ETXEN EQU( AT91C_PIO_PB1 );
                                                           -Ethernet MAC Transmit Enable
                                                           AT91C_PIO_PB10 EQU( 1 << 10 );
                                                           -Pin Controlled by PB10
                                                           AT91C_PB10_ETX2 EQU( AT91C_PIO_PB10 );
                                                           -Ethernet MAC Transmit Data 2
                                                           AT91C_PB10_NPCS11 EQU( AT91C_PIO_PB10 );
                                                           -SPI 1 Peripheral Chip Select 1
                                                           AT91C_PIO_PB11 EQU( 1 << 11 );
                                                           -Pin Controlled by PB11
                                                           AT91C_PB11_ETX3 EQU( AT91C_PIO_PB11 );
                                                           -Ethernet MAC Transmit Data 3
                                                           AT91C_PB11_NPCS12 EQU( AT91C_PIO_PB11 );
                                                           -SPI 1 Peripheral Chip Select 2
                                                           AT91C_PIO_PB12 EQU( 1 << 12 );
                                                           -Pin Controlled by PB12
                                                           AT91C_PB12_ETXER EQU( AT91C_PIO_PB12 );
                                                           -Ethernet MAC Transmikt Coding Error
                                                           AT91C_PB12_TCLK0 EQU( AT91C_PIO_PB12 );
                                                           -Timer Counter 0 external clock input
                                                           AT91C_PIO_PB13 EQU( 1 << 13 );
                                                           -Pin Controlled by PB13
                                                           AT91C_PB13_ERX2 EQU( AT91C_PIO_PB13 );
                                                           -Ethernet MAC Receive Data 2
                                                           AT91C_PB13_NPCS01 EQU( AT91C_PIO_PB13 );
                                                           -SPI 0 Peripheral Chip Select 1
                                                           AT91C_PIO_PB14 EQU( 1 << 14 );
                                                           -Pin Controlled by PB14
                                                           AT91C_PB14_ERX3 EQU( AT91C_PIO_PB14 );
                                                           -Ethernet MAC Receive Data 3
                                                           AT91C_PB14_NPCS02 EQU( AT91C_PIO_PB14 );
                                                           -SPI 0 Peripheral Chip Select 2
                                                           AT91C_PIO_PB15 EQU( 1 << 15 );
                                                           -Pin Controlled by PB15
                                                           AT91C_PB15_ERXDV EQU( AT91C_PIO_PB15 );
                                                           -Ethernet MAC Receive Data Valid
                                                           AT91C_PIO_PB16 EQU( 1 << 16 );
                                                           -Pin Controlled by PB16
                                                           AT91C_PB16_ECOL EQU( AT91C_PIO_PB16 );
                                                           -Ethernet MAC Collision Detected
                                                           AT91C_PB16_NPCS13 EQU( AT91C_PIO_PB16 );
                                                           -SPI 1 Peripheral Chip Select 3
                                                           AT91C_PIO_PB17 EQU( 1 << 17 );
                                                           -Pin Controlled by PB17
                                                           AT91C_PB17_ERXCK EQU( AT91C_PIO_PB17 );
                                                           -Ethernet MAC Receive Clock
                                                           AT91C_PB17_NPCS03 EQU( AT91C_PIO_PB17 );
                                                           -SPI 0 Peripheral Chip Select 3
                                                           AT91C_PIO_PB18 EQU( 1 << 18 );
                                                           -Pin Controlled by PB18
                                                           AT91C_PB18_EF100 EQU( AT91C_PIO_PB18 );
                                                           -Ethernet MAC Force 100 Mbits / sec
                                                           AT91C_PB18_ADTRG EQU( AT91C_PIO_PB18 );
                                                           -ADC External Trigger
                                                           AT91C_PIO_PB19 EQU( 1 << 19 );
                                                           -Pin Controlled by PB19
                                                           AT91C_PB19_PWM0 EQU( AT91C_PIO_PB19 );
                                                           -PWM Channel 0
                                                           AT91C_PB19_TCLK1 EQU( AT91C_PIO_PB19 );
                                                           -Timer Counter 1 external clock input
                                                           AT91C_PIO_PB2 EQU( 1 << 2 );
                                                           -Pin Controlled by PB2
                                                           AT91C_PB2_ETX0 EQU( AT91C_PIO_PB2 );
                                                           -Ethernet MAC Transmit Data 0
                                                           AT91C_PIO_PB20 EQU( 1 << 20 );
                                                           -Pin Controlled by PB20
                                                           AT91C_PB20_PWM1 EQU( AT91C_PIO_PB20 );
                                                           -PWM Channel 1
                                                           AT91C_PB20_PCK0 EQU( AT91C_PIO_PB20 );
                                                           -PMC Programmable Clock Output 0
                                                           AT91C_PIO_PB21 EQU( 1 << 21 );
                                                           -Pin Controlled by PB21
                                                           AT91C_PB21_PWM2 EQU( AT91C_PIO_PB21 );
                                                           -PWM Channel 2
                                                           AT91C_PB21_PCK1 EQU( AT91C_PIO_PB21 );
                                                           -PMC Programmable Clock Output 1
                                                           AT91C_PIO_PB22 EQU( 1 << 22 );
                                                           -Pin Controlled by PB22
                                                           AT91C_PB22_PWM3 EQU( AT91C_PIO_PB22 );
                                                           -PWM Channel 3
                                                           AT91C_PB22_PCK2 EQU( AT91C_PIO_PB22 );
                                                           -PMC Programmable Clock Output 2
                                                           AT91C_PIO_PB23 EQU( 1 << 23 );
                                                           -Pin Controlled by PB23
                                                           AT91C_PB23_TIOA0 EQU( AT91C_PIO_PB23 );
                                                           -Timer Counter 0 Multipurpose Timer I / O Pin A
                                                           AT91C_PB23_DCD1 EQU( AT91C_PIO_PB23 );
                                                           -USART 1 Data Carrier Detect
                                                           AT91C_PIO_PB24 EQU( 1 << 24 );
                                                           -Pin Controlled by PB24
                                                           AT91C_PB24_TIOB0 EQU( AT91C_PIO_PB24 );
                                                           -Timer Counter 0 Multipurpose Timer I / O Pin B
                                                           AT91C_PB24_DSR1 EQU( AT91C_PIO_PB24 );
                                                           -USART 1 Data Set ready
                                                           AT91C_PIO_PB25 EQU( 1 << 25 );
                                                           -Pin Controlled by PB25
                                                           AT91C_PB25_TIOA1 EQU( AT91C_PIO_PB25 );
                                                           -Timer Counter 1 Multipurpose Timer I / O Pin A
                                                           AT91C_PB25_DTR1 EQU( AT91C_PIO_PB25 );
                                                           -USART 1 Data Terminal ready
                                                           AT91C_PIO_PB26 EQU( 1 << 26 );
                                                           -Pin Controlled by PB26
                                                           AT91C_PB26_TIOB1 EQU( AT91C_PIO_PB26 );
                                                           -Timer Counter 1 Multipurpose Timer I / O Pin B
                                                           AT91C_PB26_RI1 EQU( AT91C_PIO_PB26 );
                                                           -USART 1 Ring Indicator
                                                           AT91C_PIO_PB27 EQU( 1 << 27 );
                                                           -Pin Controlled by PB27
                                                           AT91C_PB27_TIOA2 EQU( AT91C_PIO_PB27 );
                                                           -Timer Counter 2 Multipurpose Timer I / O Pin A
                                                           AT91C_PB27_PWM0 EQU( AT91C_PIO_PB27 );
                                                           -PWM Channel 0
                                                           AT91C_PIO_PB28 EQU( 1 << 28 );
                                                           -Pin Controlled by PB28
                                                           AT91C_PB28_TIOB2 EQU( AT91C_PIO_PB28 );
                                                           -Timer Counter 2 Multipurpose Timer I / O Pin B
                                                           AT91C_PB28_PWM1 EQU( AT91C_PIO_PB28 );
                                                           -PWM Channel 1
                                                           AT91C_PIO_PB29 EQU( 1 << 29 );
                                                           -Pin Controlled by PB29
                                                           AT91C_PB29_PCK1 EQU( AT91C_PIO_PB29 );
                                                           -PMC Programmable Clock Output 1
                                                           AT91C_PB29_PWM2 EQU( AT91C_PIO_PB29 );
                                                           -PWM Channel 2
                                                           AT91C_PIO_PB3 EQU( 1 << 3 );
                                                           -Pin Controlled by PB3
                                                           AT91C_PB3_ETX1 EQU( AT91C_PIO_PB3 );
                                                           -Ethernet MAC Transmit Data 1
                                                           AT91C_PIO_PB30 EQU( 1 << 30 );
                                                           -Pin Controlled by PB30
                                                           AT91C_PB30_PCK2 EQU( AT91C_PIO_PB30 );
                                                           -PMC Programmable Clock Output 2
                                                           AT91C_PB30_PWM3 EQU( AT91C_PIO_PB30 );
                                                           -PWM Channel 3
                                                           AT91C_PIO_PB4 EQU( 1 << 4 );
                                                           -Pin Controlled by PB4
                                                           AT91C_PB4_ECRS_ECRSDV EQU( AT91C_PIO_PB4 );
                                                           -Ethernet MAC Carrier Sense / Carrier Sense and Data Valid
                                                           AT91C_PIO_PB5 EQU( 1 << 5 );
                                                           -Pin Controlled by PB5
                                                           AT91C_PB5_ERX0 EQU( AT91C_PIO_PB5 );
                                                           -Ethernet MAC Receive Data 0
                                                           AT91C_PIO_PB6 EQU( 1 << 6 );
                                                           -Pin Controlled by PB6
                                                           AT91C_PB6_ERX1 EQU( AT91C_PIO_PB6 );
                                                           -Ethernet MAC Receive Data 1
                                                           AT91C_PIO_PB7 EQU( 1 << 7 );
                                                           -Pin Controlled by PB7
                                                           AT91C_PB7_ERXER EQU( AT91C_PIO_PB7 );
                                                           -Ethernet MAC Receive Error
                                                           AT91C_PIO_PB8 EQU( 1 << 8 );
                                                           -Pin Controlled by PB8
                                                           AT91C_PB8_EMDC EQU( AT91C_PIO_PB8 );
                                                           -Ethernet MAC Management Data Clock
                                                           AT91C_PIO_PB9 EQU( 1 << 9 );
                                                           -Pin Controlled by PB9
                                                           AT91C_PB9_EMDIO EQU( AT91C_PIO_PB9 );
                                                           -Ethernet MAC Management Data Input / Output

/* - ***************************************************************************** */
/* -               PERIPHERAL ID DEFINITIONS FOR AT91SAM7X256 */
/* - ***************************************************************************** */
                                                           AT91C_ID_FIQ EQU( 0 );
                                                           -Advanced Interrupt Controller( FIQ )
                                                           AT91C_ID_SYS EQU( 1 );
                                                           -System Peripheral
                                                           AT91C_ID_PIOA EQU( 2 );
                                                           -Parallel IO Controller A
                                                           AT91C_ID_PIOB EQU( 3 );
                                                           -Parallel IO Controller B
                                                           AT91C_ID_SPI0 EQU( 4 );
                                                           -Serial Peripheral Interface 0
                                                           AT91C_ID_SPI1 EQU( 5 );
                                                           -Serial Peripheral Interface 1
                                                           AT91C_ID_US0 EQU( 6 );
                                                           -USART 0
                                                           AT91C_ID_US1 EQU( 7 );
                                                           -USART 1
                                                           AT91C_ID_SSC EQU( 8 );
                                                           -Serial Synchronous Controller
                                                           AT91C_ID_TWI EQU( 9 );
                                                           -Two - Wire Interface
                                                           AT91C_ID_PWMC EQU( 10 );
                                                           -PWM Controller
                                                           AT91C_ID_UDP EQU( 11 );
                                                           -USB Device Port
                                                           AT91C_ID_TC0 EQU( 12 );
                                                           -Timer Counter 0
                                                           AT91C_ID_TC1 EQU( 13 );
                                                           -Timer Counter 1
                                                           AT91C_ID_TC2 EQU( 14 );
                                                           -Timer Counter 2
                                                           AT91C_ID_CAN EQU( 15 );
                                                           -Control Area Network Controller
                                                           AT91C_ID_EMAC EQU( 16 );
                                                           -Ethernet MAC
                                                           AT91C_ID_ADC EQU( 17 );
                                                           -Analog - to - Digital Converter
                                                           AT91C_ID_AES EQU( 18 );
                                                           -Advanced Encryption Standard 128 - bit
                                                           AT91C_ID_TDES EQU( 19 );
                                                           -Triple Data Encryption Standard
                                                           AT91C_ID_20_Reserved EQU( 20 );
                                                           -Reserved
                                                           AT91C_ID_21_Reserved EQU( 21 );
                                                           -Reserved
                                                           AT91C_ID_22_Reserved EQU( 22 );
                                                           -Reserved
                                                           AT91C_ID_23_Reserved EQU( 23 );
                                                           -Reserved
                                                           AT91C_ID_24_Reserved EQU( 24 );
                                                           -Reserved
                                                           AT91C_ID_25_Reserved EQU( 25 );
                                                           -Reserved
                                                           AT91C_ID_26_Reserved EQU( 26 );
                                                           -Reserved
                                                           AT91C_ID_27_Reserved EQU( 27 );
                                                           -Reserved
                                                           AT91C_ID_28_Reserved EQU( 28 );
                                                           -Reserved
                                                           AT91C_ID_29_Reserved EQU( 29 );
                                                           -Reserved
                                                           AT91C_ID_IRQ0 EQU( 30 );
                                                           -Advanced Interrupt Controller( IRQ0 )
                                                           AT91C_ID_IRQ1 EQU( 31 );
                                                           -Advanced Interrupt Controller( IRQ1 )

/* - ***************************************************************************** */
/* -               BASE ADDRESS DEFINITIONS FOR AT91SAM7X256 */
/* - ***************************************************************************** */
                                                           AT91C_BASE_SYS EQU( 0xFFFFF000 );
                                                           -( SYS ) Base Address
                                                           AT91C_BASE_AIC EQU( 0xFFFFF000 );
                                                           -( AIC ) Base Address
                                                           AT91C_BASE_PDC_DBGU EQU( 0xFFFFF300 );
                                                           -( PDC_DBGU ) Base Address
                                                           AT91C_BASE_DBGU EQU( 0xFFFFF200 );
                                                           -( DBGU ) Base Address
                                                           AT91C_BASE_PIOA EQU( 0xFFFFF400 );
                                                           -( PIOA ) Base Address
                                                           AT91C_BASE_PIOB EQU( 0xFFFFF600 );
                                                           -( PIOB ) Base Address
                                                           AT91C_BASE_CKGR EQU( 0xFFFFFC20 );
                                                           -( CKGR ) Base Address
                                                           AT91C_BASE_PMC EQU( 0xFFFFFC00 );
                                                           -( PMC ) Base Address
                                                           AT91C_BASE_RSTC EQU( 0xFFFFFD00 );
                                                           -( RSTC ) Base Address
                                                           AT91C_BASE_RTTC EQU( 0xFFFFFD20 );
                                                           -( RTTC ) Base Address
                                                           AT91C_BASE_PITC EQU( 0xFFFFFD30 );
                                                           -( PITC ) Base Address
                                                           AT91C_BASE_WDTC EQU( 0xFFFFFD40 );
                                                           -( WDTC ) Base Address
                                                           AT91C_BASE_VREG EQU( 0xFFFFFD60 );
                                                           -( VREG ) Base Address
                                                           AT91C_BASE_MC EQU( 0xFFFFFF00 );
                                                           -( MC ) Base Address
                                                           AT91C_BASE_PDC_SPI1 EQU( 0xFFFE4100 );
                                                           -( PDC_SPI1 ) Base Address
                                                           AT91C_BASE_SPI1 EQU( 0xFFFE4000 );
                                                           -( SPI1 ) Base Address
                                                           AT91C_BASE_PDC_SPI0 EQU( 0xFFFE0100 );
                                                           -( PDC_SPI0 ) Base Address
                                                           AT91C_BASE_SPI0 EQU( 0xFFFE0000 );
                                                           -( SPI0 ) Base Address
                                                           AT91C_BASE_PDC_US1 EQU( 0xFFFC4100 );
                                                           -( PDC_US1 ) Base Address
                                                           AT91C_BASE_US1 EQU( 0xFFFC4000 );
                                                           -( US1 ) Base Address
                                                           AT91C_BASE_PDC_US0 EQU( 0xFFFC0100 );
                                                           -( PDC_US0 ) Base Address
                                                           AT91C_BASE_US0 EQU( 0xFFFC0000 );
                                                           -( US0 ) Base Address
                                                           AT91C_BASE_PDC_SSC EQU( 0xFFFD4100 );
                                                           -( PDC_SSC ) Base Address
                                                           AT91C_BASE_SSC EQU( 0xFFFD4000 );
                                                           -( SSC ) Base Address
                                                           AT91C_BASE_TWI EQU( 0xFFFB8000 );
                                                           -( TWI ) Base Address
                                                           AT91C_BASE_PWMC_CH3 EQU( 0xFFFCC260 );
                                                           -( PWMC_CH3 ) Base Address
                                                           AT91C_BASE_PWMC_CH2 EQU( 0xFFFCC240 );
                                                           -( PWMC_CH2 ) Base Address
                                                           AT91C_BASE_PWMC_CH1 EQU( 0xFFFCC220 );
                                                           -( PWMC_CH1 ) Base Address
                                                           AT91C_BASE_PWMC_CH0 EQU( 0xFFFCC200 );
                                                           -( PWMC_CH0 ) Base Address
                                                           AT91C_BASE_PWMC EQU( 0xFFFCC000 );
                                                           -( PWMC ) Base Address
                                                           AT91C_BASE_UDP EQU( 0xFFFB0000 );
                                                           -( UDP ) Base Address
                                                           AT91C_BASE_TC0 EQU( 0xFFFA0000 );
                                                           -( TC0 ) Base Address
                                                           AT91C_BASE_TC1 EQU( 0xFFFA0040 );
                                                           -( TC1 ) Base Address
                                                           AT91C_BASE_TC2 EQU( 0xFFFA0080 );
                                                           -( TC2 ) Base Address
                                                           AT91C_BASE_TCB EQU( 0xFFFA0000 );
                                                           -( TCB ) Base Address
                                                           AT91C_BASE_CAN_MB0 EQU( 0xFFFD0200 );
                                                           -( CAN_MB0 ) Base Address
                                                           AT91C_BASE_CAN_MB1 EQU( 0xFFFD0220 );
                                                           -( CAN_MB1 ) Base Address
                                                           AT91C_BASE_CAN_MB2 EQU( 0xFFFD0240 );
                                                           -( CAN_MB2 ) Base Address
                                                           AT91C_BASE_CAN_MB3 EQU( 0xFFFD0260 );
                                                           -( CAN_MB3 ) Base Address
                                                           AT91C_BASE_CAN_MB4 EQU( 0xFFFD0280 );
                                                           -( CAN_MB4 ) Base Address
                                                           AT91C_BASE_CAN_MB5 EQU( 0xFFFD02A0 );
                                                           -( CAN_MB5 ) Base Address
                                                           AT91C_BASE_CAN_MB6 EQU( 0xFFFD02C0 );
                                                           -( CAN_MB6 ) Base Address
                                                           AT91C_BASE_CAN_MB7 EQU( 0xFFFD02E0 );
                                                           -( CAN_MB7 ) Base Address
                                                           AT91C_BASE_CAN EQU( 0xFFFD0000 );
                                                           -( CAN ) Base Address
                                                           AT91C_BASE_EMAC EQU( 0xFFFDC000 );
                                                           -( EMAC ) Base Address
                                                           AT91C_BASE_PDC_ADC EQU( 0xFFFD8100 );
                                                           -( PDC_ADC ) Base Address
                                                           AT91C_BASE_ADC EQU( 0xFFFD8000 );
                                                           -( ADC ) Base Address
                                                           AT91C_BASE_PDC_AES EQU( 0xFFFA4100 );
                                                           -( PDC_AES ) Base Address
                                                           AT91C_BASE_AES EQU( 0xFFFA4000 );
                                                           -( AES ) Base Address
                                                           AT91C_BASE_PDC_TDES EQU( 0xFFFA8100 );
                                                           -( PDC_TDES ) Base Address
                                                           AT91C_BASE_TDES EQU( 0xFFFA8000 );
                                                           -( TDES ) Base Address

/* - ***************************************************************************** */
/* -               MEMORY MAPPING DEFINITIONS FOR AT91SAM7X256 */
/* - ***************************************************************************** */
                                                           AT91C_ISRAM EQU( 0x00200000 );
                                                           -Internal SRAM base address
                                                           AT91C_ISRAM_SIZE EQU( 0x00010000 );
                                                           -Internal SRAM size in byte( 64 Kbyte )
                                                           AT91C_IFLASH EQU( 0x00100000 );
                                                           -Internal ROM base address
                                                           AT91C_IFLASH_SIZE EQU( 0x00040000 );
                                                           -Internal ROM size in byte( 256 Kbyte )



#endif /* AT91SAM7X256_H */
