at91rm9200.h revision 199767f8919635c4928607450d9e0abb932109ce
// ----------------------------------------------------------------------------
// ATMEL Microcontroller Software Support - ROUSSET -
// ----------------------------------------------------------------------------
// The software is delivered "AS IS" without warranty or condition of any
// kind, either express, implied or statutory. This includes without
// limitation any warranty or condition with respect to merchantability or
// fitness for any particular purpose, or against the infringements of
// intellectual property rights of others.
// ----------------------------------------------------------------------------
// $FreeBSD$
//
// File Name : AT91RM9200.h
// Object : AT91RM9200 definitions
// Generated : AT91 SW Application Group 07/04/2003 (11:05:04)
//
// CVS Reference : /AT91RM9200.pl/1.16/Fri Feb 07 09:29:50 2003//
// CVS Reference : /SYS_AT91RM9200.pl/1.2/Fri Jan 17 11:44:36 2003//
// CVS Reference : /MC_1760A.pl/1.1/Fri Aug 23 13:38:22 2002//
// CVS Reference : /AIC_1796B.pl/1.1.1.1/Fri Jun 28 08:36:46 2002//
// CVS Reference : /PMC_2636A.pl/1.1.1.1/Fri Jun 28 08:36:48 2002//
// CVS Reference : /ST_1763B.pl/1.1/Fri Aug 23 13:41:42 2002//
// CVS Reference : /RTC_1245D.pl/1.2/Fri Jan 31 11:19:06 2003//
// CVS Reference : /PIO_1725D.pl/1.1.1.1/Fri Jun 28 08:36:46 2002//
// CVS Reference : /DBGU_1754A.pl/1.4/Fri Jan 31 11:18:24 2003//
// CVS Reference : /UDP_1765B.pl/1.3/Fri Aug 02 13:45:38 2002//
// CVS Reference : /MCI_1764A.pl/1.2/Thu Nov 14 16:48:24 2002//
// CVS Reference : /US_1739C.pl/1.2/Fri Jul 12 06:49:24 2002//
// CVS Reference : /SPI_AT91RMxxxx.pl/1.3/Tue Nov 26 09:20:28 2002//
// CVS Reference : /SSC_1762A.pl/1.2/Fri Nov 08 12:26:38 2002//
// CVS Reference : /TC_1753B.pl/1.2/Fri Jan 31 11:19:54 2003//
// CVS Reference : /TWI_1761B.pl/1.4/Fri Feb 07 09:30:06 2003//
// CVS Reference : /PDC_1734B.pl/1.2/Thu Nov 21 15:38:22 2002//
// CVS Reference : /UHP_xxxxA.pl/1.1/Mon Jul 22 11:21:58 2002//
// CVS Reference : /EMAC_1794A.pl/1.4/Fri Jan 17 11:11:54 2003//
// CVS Reference : /EBI_1759B.pl/1.10/Fri Jan 17 11:44:28 2003//
// CVS Reference : /SMC_1783A.pl/1.3/Thu Oct 31 13:38:16 2002//
// CVS Reference : /SDRC_1758B.pl/1.2/Thu Oct 03 12:04:40 2002//
// CVS Reference : /BFC_1757B.pl/1.3/Thu Oct 31 13:38:00 2002//
// ----------------------------------------------------------------------------
#ifndef AT91RM9200_H
#define AT91RM9200_H
#define ATMEL_ENV
typedef volatile unsigned int AT91_REG;// Hardware register definition
// *****************************************************************************
// SOFTWARE API DEFINITION FOR System Peripherals
// *****************************************************************************
typedef struct _AT91S_SYS {
} AT91S_SYS, *AT91PS_SYS;
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Memory Controller Interface
// *****************************************************************************
typedef struct _AT91S_MC {
// -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register --------
// -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register --------
// -------- MC_PUIA : (MC Offset: 0x10) MC Protection Unit Area --------
// -------- MC_PUP : (MC Offset: 0x50) MC Protection Unit Peripheral --------
// -------- MC_PUER : (MC Offset: 0x54) MC Protection Unit Area --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Real-time Clock Alarm and Parallel Load Interface
// *****************************************************************************
typedef struct _AT91S_RTC {
} AT91S_RTC, *AT91PS_RTC;
// -------- RTC_CR : (RTC Offset: 0x0) RTC Control Register --------
#define AT91C_RTC_CALEVSEL_MONTH (0x1u << 16) // (RTC) Month change (every 01 of each month at time 00:00:00).
#define AT91C_RTC_CALEVSEL_YEAR (0x2u << 16) // (RTC) Year change (every January 1 at time 00:00:00).
// -------- RTC_MR : (RTC Offset: 0x4) RTC Mode Register --------
// -------- RTC_TIMR : (RTC Offset: 0x8) RTC Time Register --------
// -------- RTC_CALR : (RTC Offset: 0xc) RTC Calendar Register --------
// -------- RTC_TIMALR : (RTC Offset: 0x10) RTC Time Alarm Register --------
// -------- RTC_CALALR : (RTC Offset: 0x14) RTC Calendar Alarm Register --------
// -------- RTC_SR : (RTC Offset: 0x18) RTC Status Register --------
// -------- RTC_SCCR : (RTC Offset: 0x1c) RTC Status Clear Command Register --------
// -------- RTC_IER : (RTC Offset: 0x20) RTC Interrupt Enable Register --------
// -------- RTC_IDR : (RTC Offset: 0x24) RTC Interrupt Disable Register --------
// -------- RTC_IMR : (RTC Offset: 0x28) RTC Interrupt Mask Register --------
// -------- RTC_VER : (RTC Offset: 0x2c) RTC Valid Entry Register --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR System Timer Interface
// *****************************************************************************
typedef struct _AT91S_ST {
// -------- ST_CR : (ST Offset: 0x0) System Timer Control Register --------
// -------- ST_PIMR : (ST Offset: 0x4) System Timer Period Interval Mode Register --------
// -------- ST_WDMR : (ST Offset: 0x8) System Timer Watchdog Mode Register --------
// -------- ST_RTMR : (ST Offset: 0xc) System Timer Real-time Mode Register --------
// -------- ST_SR : (ST Offset: 0x10) System Timer Status Register --------
// -------- ST_IER : (ST Offset: 0x14) System Timer Interrupt Enable Register --------
// -------- ST_IDR : (ST Offset: 0x18) System Timer Interrupt Disable Register --------
// -------- ST_IMR : (ST Offset: 0x1c) System Timer Interrupt Mask Register --------
// -------- ST_RTAR : (ST Offset: 0x20) System Timer Real-time Alarm Register --------
// -------- ST_CRTR : (ST Offset: 0x24) System Timer Current Real-time Register --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Power Management Controler
// *****************************************************************************
typedef struct _AT91S_PMC {
} AT91S_PMC, *AT91PS_PMC;
// -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register --------
#define AT91C_PMC_MCKUDP (0x1u << 2) // (PMC) USB Device Port Master Clock Automatic Disable on Suspend
// -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register --------
// -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register --------
// -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register --------
#define AT91C_PMC_MDIV_2 (0x1u << 8) // (PMC) The processor clock is twice as fast as the master clock
#define AT91C_PMC_MDIV_3 (0x2u << 8) // (PMC) The processor clock is three times faster than the master clock
#define AT91C_PMC_MDIV_4 (0x3u << 8) // (PMC) The processor clock is four times faster than the master clock
// -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register --------
// -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register --------
// -------- 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 Clock Generator Controler
// *****************************************************************************
typedef struct _AT91S_CKGR {
} AT91S_CKGR, *AT91PS_CKGR;
// -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register --------
// -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register --------
// -------- CKGR_PLLAR : (CKGR Offset: 0x8) PLL A Register --------
// -------- CKGR_PLLBR : (CKGR Offset: 0xc) PLL B Register --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Parallel Input Output Controler
// *****************************************************************************
typedef struct _AT91S_PIO {
} AT91S_PIO, *AT91PS_PIO;
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Debug Unit
// *****************************************************************************
typedef struct _AT91S_DBGU {
} AT91S_DBGU, *AT91PS_DBGU;
// -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register --------
// -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register --------
#define AT91C_US_CHMODE_NORMAL (0x0u << 14) // (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.
#define AT91C_US_CHMODE_AUTO (0x1u << 14) // (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.
#define AT91C_US_CHMODE_LOCAL (0x2u << 14) // (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.
#define AT91C_US_CHMODE_REMOTE (0x3u << 14) // (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.
// -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register --------
// -------- 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 --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Peripheral Data Controller
// *****************************************************************************
typedef struct _AT91S_PDC {
} AT91S_PDC, *AT91PS_PDC;
// -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register --------
// -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Advanced Interrupt Controller
// *****************************************************************************
typedef struct _AT91S_AIC {
} AT91S_AIC, *AT91PS_AIC;
// -------- AIC_SMR : (AIC Offset: 0x0) Control Register --------
#define AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE (0x0u << 5) // (AIC) Internal Sources Code Label Level Sensitive
#define AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED (0x1u << 5) // (AIC) Internal Sources Code Label Edge triggered
#define AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL (0x2u << 5) // (AIC) External Sources Code Label High-level Sensitive
#define AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE (0x3u << 5) // (AIC) External Sources Code Label Positive Edge triggered
// -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register --------
// -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Serial Parallel Interface
// *****************************************************************************
typedef struct _AT91S_SPI {
} AT91S_SPI, *AT91PS_SPI;
// -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register --------
// -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register --------
// -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register --------
// -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register --------
// -------- SPI_SR : (SPI Offset: 0x10) Status Register --------
// -------- 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 --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Synchronous Serial Controller Interface
// *****************************************************************************
typedef struct _AT91S_SSC {
} AT91S_SSC, *AT91PS_SSC;
// -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register --------
// -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register --------
#define AT91C_SSC_CKO_NONE (0x0u << 2) // (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only
#define AT91C_SSC_CKO_CONTINOUS (0x1u << 2) // (SSC) Continuous Receive/Transmit Clock RK pin: Output
#define AT91C_SSC_CKO_DATA_TX (0x2u << 2) // (SSC) Receive/Transmit Clock only during data transfers RK pin: Output
#define AT91C_SSC_CKG_NONE (0x0u << 6) // (SSC) Receive/Transmit Clock Gating: None, continuous clock
#define AT91C_SSC_START_CONTINOUS (0x0u << 8) // (SSC) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data.
// -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register --------
#define AT91C_SSC_FSOS_NONE (0x0u << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only
#define AT91C_SSC_FSOS_NEGATIVE (0x1u << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse
#define AT91C_SSC_FSOS_POSITIVE (0x2u << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse
#define AT91C_SSC_FSOS_LOW (0x3u << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer
#define AT91C_SSC_FSOS_HIGH (0x4u << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer
#define AT91C_SSC_FSOS_TOGGLE (0x5u << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer
// -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register --------
// -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register --------
// -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register --------
// -------- 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 Usart
// *****************************************************************************
typedef struct _AT91S_USART {
} AT91S_USART, *AT91PS_USART;
// -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register --------
// -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register --------
#define AT91C_US_NBSTOP_15_BIT (0x1u << 12) // (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits
// -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register --------
// -------- 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 --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Two-wire Interface
// *****************************************************************************
typedef struct _AT91S_TWI {
} AT91S_TWI, *AT91PS_TWI;
// -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register --------
// -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register --------
// -------- TWI_SMR : (TWI Offset: 0x8) TWI Slave Mode Register --------
// -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register --------
// -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register --------
// -------- 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 Multimedia Card Interface
// *****************************************************************************
typedef struct _AT91S_MCI {
} AT91S_MCI, *AT91PS_MCI;
// -------- MCI_CR : (MCI Offset: 0x0) MCI Control Register --------
// -------- MCI_MR : (MCI Offset: 0x4) MCI Mode Register --------
// -------- MCI_DTOR : (MCI Offset: 0x8) MCI Data Timeout Register --------
// -------- MCI_SDCR : (MCI Offset: 0xc) MCI SD Card Register --------
// -------- MCI_CMDR : (MCI Offset: 0x14) MCI Command Register --------
// -------- MCI_SR : (MCI Offset: 0x40) MCI Status Register --------
// -------- MCI_IER : (MCI Offset: 0x44) MCI Interrupt Enable Register --------
// -------- MCI_IDR : (MCI Offset: 0x48) MCI Interrupt Disable Register --------
// -------- MCI_IMR : (MCI Offset: 0x4c) MCI Interrupt Mask Register --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR USB Device Interface
// *****************************************************************************
typedef struct _AT91S_UDP {
} AT91S_UDP, *AT91PS_UDP;
// -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register --------
#define AT91C_UDP_FRM_NUM (0x7FFu << 0) // (UDP) Frame Number as Defined in the Packet Field Formats
// -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register --------
// -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register --------
// -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register --------
// -------- 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 --------
// -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register --------
// -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register --------
// -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register --------
#define AT91C_UDP_TXCOMP (0x1u << 0) // (UDP) Generates an IN packet with data previously written in the DPR
#define AT91C_UDP_FORCESTALL (0x1u << 5) // (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).
#define AT91C_UDP_RX_DATA_BK1 (0x1u << 6) // (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Timer Counter Channel Interface
// *****************************************************************************
typedef struct _AT91S_TC {
// -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register --------
// -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode --------
#define AT91C_TC_EEVT_NONE (0x0u << 10) // (TC) Signal selected as external event: TIOB TIOB direction: input
#define AT91C_TC_EEVT_RISING (0x1u << 10) // (TC) Signal selected as external event: XC0 TIOB direction: output
#define AT91C_TC_EEVT_FALLING (0x2u << 10) // (TC) Signal selected as external event: XC1 TIOB direction: output
#define AT91C_TC_EEVT_BOTH (0x3u << 10) // (TC) Signal selected as external event: XC2 TIOB direction: output
#define AT91C_TC_WAVESEL_UPDOWN (0x2u << 13) // (TC) UPDOWN mode without automatic trigger on RC Compare
#define AT91C_TC_WAVESEL_UPDOWN_AUTO (0x3u << 13) // (TC) UPDOWN mode with automatic trigger on RC Compare
// -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register --------
// -------- 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_TCB, *AT91PS_TCB;
// -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register --------
// -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR USB Host Interface
// *****************************************************************************
typedef struct _AT91S_UHP {
} AT91S_UHP, *AT91PS_UHP;
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Ethernet MAC
// *****************************************************************************
typedef struct _AT91S_EMAC {
} AT91S_EMAC, *AT91PS_EMAC;
// -------- EMAC_CTL : (EMAC Offset: 0x0) --------
#define AT91C_EMAC_LB (0x1u << 0) // (EMAC) Loopback. Optional. When set, loopback signal is at high level.
// -------- EMAC_CFG : (EMAC Offset: 0x4) Network Configuration Register --------
// -------- EMAC_SR : (EMAC Offset: 0x8) Network Status Register --------
// -------- EMAC_TCR : (EMAC Offset: 0x10) Transmit Control Register --------
// -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Control Register --------
// -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register --------
// -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register --------
// -------- 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 --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR External Bus Interface
// *****************************************************************************
typedef struct _AT91S_EBI {
} AT91S_EBI, *AT91PS_EBI;
// -------- EBI_CSA : (EBI Offset: 0x0) Chip Select Assignment Register --------
#define AT91C_EBI_CS1A_SMC (0x0u << 1) // (EBI) Chip Select 1 is assigned to the Static Memory Controller.
#define AT91C_EBI_CS1A_SDRAMC (0x1u << 1) // (EBI) Chip Select 1 is assigned to the SDRAM Controller.
#define AT91C_EBI_CS3A_SMC (0x0u << 3) // (EBI) Chip Select 3 is only assigned to the Static Memory Controller and NCS3 behaves as defined by the SMC2.
#define AT91C_EBI_CS3A_SMC_SmartMedia (0x1u << 3) // (EBI) Chip Select 3 is assigned to the Static Memory Controller and the SmartMedia Logic is activated.
#define AT91C_EBI_CS4A_SMC (0x0u << 4) // (EBI) Chip Select 4 is assigned to the Static Memory Controller and NCS4,NCS5 and NCS6 behave as defined by the SMC2.
#define AT91C_EBI_CS4A_SMC_CompactFlash (0x1u << 4) // (EBI) Chip Select 4 is assigned to the Static Memory Controller and the CompactFlash Logic is activated.
// -------- EBI_CFGR : (EBI Offset: 0x4) Configuration Register --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Static Memory Controller 2 Interface
// *****************************************************************************
typedef struct _AT91S_SMC2 {
} AT91S_SMC2, *AT91PS_SMC2;
// -------- SMC2_CSR : (SMC2 Offset: 0x0) SMC2 Chip Select Register --------
#define AT91C_SMC2_ACSS_STANDARD (0x0u << 16) // (SMC2) Standard, asserted at the beginning of the access and deasserted at the end.
#define AT91C_SMC2_ACSS_1_CYCLE (0x1u << 16) // (SMC2) One cycle less at the beginning and the end of the access.
#define AT91C_SMC2_ACSS_2_CYCLES (0x2u << 16) // (SMC2) Two cycles less at the beginning and the end of the access.
#define AT91C_SMC2_ACSS_3_CYCLES (0x3u << 16) // (SMC2) Three cycles less at the beginning and the end of the access.
// *****************************************************************************
// SOFTWARE API DEFINITION FOR SDRAM Controller Interface
// *****************************************************************************
typedef struct _AT91S_SDRC {
} AT91S_SDRC, *AT91PS_SDRC;
// -------- SDRC_MR : (SDRC Offset: 0x0) SDRAM Controller Mode Register --------
// -------- SDRC_TR : (SDRC Offset: 0x4) SDRC Refresh Timer Register --------
// -------- SDRC_CR : (SDRC Offset: 0x8) SDRAM Configuration Register --------
// -------- SDRC_SRR : (SDRC Offset: 0xc) SDRAM Controller Self-refresh Register --------
// -------- SDRC_LPR : (SDRC Offset: 0x10) SDRAM Controller Low-power Register --------
// -------- SDRC_IER : (SDRC Offset: 0x14) SDRAM Controller Interrupt Enable Register --------
// -------- SDRC_IDR : (SDRC Offset: 0x18) SDRAM Controller Interrupt Disable Register --------
// -------- SDRC_IMR : (SDRC Offset: 0x1c) SDRAM Controller Interrupt Mask Register --------
// -------- SDRC_ISR : (SDRC Offset: 0x20) SDRAM Controller Interrupt Status Register --------
// *****************************************************************************
// SOFTWARE API DEFINITION FOR Burst Flash Controller Interface
// *****************************************************************************
typedef struct _AT91S_BFC {
} AT91S_BFC, *AT91PS_BFC;
// -------- BFC_MR : (BFC Offset: 0x0) BFC Mode Register --------
// *****************************************************************************
// REGISTER ADDRESS DEFINITION FOR AT91RM9200
// *****************************************************************************
// ========== Register definition for SYS peripheral ==========
// ========== Register definition for MC peripheral ==========
// ========== Register definition for RTC peripheral ==========
// ========== Register definition for ST peripheral ==========
// ========== Register definition for PMC peripheral ==========
// ========== Register definition for CKGR peripheral ==========
// ========== Register definition for PIOD peripheral ==========
// ========== Register definition for PIOC peripheral ==========
// ========== Register definition for PIOB peripheral ==========
// ========== Register definition for PIOA peripheral ==========
// ========== Register definition for DBGU peripheral ==========
// ========== Register definition for PDC_DBGU peripheral ==========
// ========== Register definition for AIC peripheral ==========
// ========== Register definition for PDC_SPI peripheral ==========
// ========== Register definition for SPI peripheral ==========
// ========== Register definition for PDC_SSC2 peripheral ==========
// ========== Register definition for SSC2 peripheral ==========
// ========== Register definition for PDC_SSC1 peripheral ==========
// ========== Register definition for SSC1 peripheral ==========
// ========== Register definition for PDC_SSC0 peripheral ==========
// ========== Register definition for SSC0 peripheral ==========
// ========== Register definition for PDC_US3 peripheral ==========
// ========== Register definition for US3 peripheral ==========
// ========== Register definition for PDC_US2 peripheral ==========
// ========== Register definition for US2 peripheral ==========
// ========== Register definition for PDC_US1 peripheral ==========
// ========== Register definition for US1 peripheral ==========
// ========== Register definition for PDC_US0 peripheral ==========
// ========== Register definition for US0 peripheral ==========
// ========== Register definition for TWI peripheral ==========
// ========== Register definition for PDC_MCI peripheral ==========
// ========== Register definition for MCI peripheral ==========
// ========== Register definition for UDP peripheral ==========
// ========== Register definition for TC5 peripheral ==========
// ========== Register definition for TC4 peripheral ==========
// ========== Register definition for TC3 peripheral ==========
// ========== Register definition for TCB1 peripheral ==========
// ========== Register definition for TC2 peripheral ==========
// ========== Register definition for TC1 peripheral ==========
// ========== Register definition for TC0 peripheral ==========
// ========== Register definition for TCB0 peripheral ==========
// ========== Register definition for UHP peripheral ==========
#define AT91C_UHP_HcControl ((AT91_REG *) 0x00300004) // (UHP) Operating modes for the Host Controller
#define AT91C_UHP_HcHCCA ((AT91_REG *) 0x00300018) // (UHP) Pointer to the Host Controller Communication Area
#define AT91C_UHP_HcControlHeadED ((AT91_REG *) 0x00300020) // (UHP) First Endpoint Descriptor of the Control list
#define AT91C_UHP_HcPeriodCurrentED ((AT91_REG *) 0x0030001C) // (UHP) Current Isochronous or Interrupt Endpoint Descriptor
#define AT91C_UHP_HcControlCurrentED ((AT91_REG *) 0x00300024) // (UHP) Endpoint Control and Status Register
#define AT91C_UHP_HcBulkCurrentED ((AT91_REG *) 0x0030002C) // (UHP) Current endpoint of the Bulk list
#define AT91C_UHP_HcFmInterval ((AT91_REG *) 0x00300034) // (UHP) Bit time between 2 consecutive SOFs
#define AT91C_UHP_HcBulkHeadED ((AT91_REG *) 0x00300028) // (UHP) First endpoint register of the Bulk list
#define AT91C_UHP_HcBulkDoneHead ((AT91_REG *) 0x00300030) // (UHP) Last completed transfer descriptor
#define AT91C_UHP_HcFmRemaining ((AT91_REG *) 0x00300038) // (UHP) Bit time remaining in the current Frame
// ========== Register definition for EMAC peripheral ==========
// ========== Register definition for EBI peripheral ==========
// ========== Register definition for SMC2 peripheral ==========
// ========== Register definition for SDRC peripheral ==========
#define AT91C_SDRC_IER ((AT91_REG *) 0xFFFFFFA4) // (SDRC) SDRAM Controller Interrupt Enable Register
#define AT91C_SDRC_IDR ((AT91_REG *) 0xFFFFFFA8) // (SDRC) SDRAM Controller Interrupt Disable Register
// ========== Register definition for BFC peripheral ==========
#include <at91/at91_pioreg.h>
// *****************************************************************************
// PERIPHERAL ID DEFINITIONS FOR AT91RM9200
// *****************************************************************************
#define AT91C_ID_FIQ 0u // Advanced Interrupt Controller (FIQ)
// *****************************************************************************
// BASE ADDRESS DEFINITIONS FOR AT91RM9200
// *****************************************************************************
// *****************************************************************************
// MEMORY MAPPING DEFINITIONS FOR AT91RM9200
// *****************************************************************************
#endif