www.pudn.com > at91rm9200bsp.rar > at91pio.h
#ifndef _AT91_PIO_DEFINE_HEADER
#define _AT91_PIO_DEFINE_HEADER
/*---------------------------PIOC-------------------*/
#define PIOA_BASE_ADDR (0xFFFFF400)
#define PIOB_BASE_ADDR (0xFFFFF600)
#define PIOC_BASE_ADDR (0xFFFFF800)
#define PIOD_BASE_ADDR (0xFFFFFA00)
#define PIO_PDR_OFFSET (0x04)
#define PIO_ASR_OFFSET (0x70)
#define PIO_BSR_OFFSET (0x74)
#define PIOC_ENABLE_D16 (0xFFFF0000)
#ifndef _ASMLANGUAGE
typedef struct _AT91_PIO_S
{
AT91_REG PIO_PER; /* PIO Enable Register */
AT91_REG PIO_PDR; /* PIO Disable Register */
AT91_REG PIO_PSR; /* PIO Status Register */
AT91_REG Resv0[1]; /* */
AT91_REG PIO_OER; /* Output Enable Register */
AT91_REG PIO_ODR; /* Output Disable Registerr */
AT91_REG PIO_OSR; /* Output Status Register */
AT91_REG Resv1[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 Resv2[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 Resv3[1]; /* */
AT91_REG PIO_PPUDR; /* Pull-up Disable Register */
AT91_REG PIO_PPUER; /* Pull-up Enable Register */
AT91_REG PIO_PPUSR; /* Pad Pull-up Status Register */
AT91_REG Resv4[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 Resv5[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 */
AT91_REG Resv6[85]; /* */
}AT91_PIO_S;
#endif
/* PIOA config:
PA0: clock output 3 /B
PA1: clock output 0 /B
PA2: IRQ4 /B
PA3: IRQ5 /B
PA4: clock output 1 /B
PA5: txd3 /B
PA6: rxd3 /B
PA7: ETXCK /A
PA8: eth enable /A
PA9: eth tx0 /A
PA10: eth tx1 /A
PA11: eth ECRS /A
PA12: eth rx0 /A
PA13: eth rx1 /A
PA14: eth ERXER /A
PA15: eth EMDC /A
PA16: eth EMDIO /A
PA17: TXD0 /A
PA18: RXD0 /A
PA19: UART SCK0 /A
PA20: UART CTS0 /A
PA21: UART RTS0 /A
PA22: UART RXD2 /A
PA23: UART TXD2 /A
PA24: UART SCK2 /A
PA25: TWD /A
PA26: TWCK /A
PA27: TCLK3 /B
PA28: TCLK4 /B
PA29: TCLK5 /B
PA30: DRXD /A
PA31: DTXD /A
*/
#define AT91_PIOA_ASR_VALUE 0xFFFFFFFF
#define AT91_PIOA_BSR_VALUE 0x00000000
#define AT91_PIOA_OER_VALUE (0&(~(AT91_PIOA_ASR_VALUE|AT91_PIOA_BSR_VALUE)))
#define AT91_PIOA_ODR_VALUE ( 0x00000000 )
/* PIOA config:
PB0: RTS3 /B
PB1: CTS3 /B
PB2: SCK3 /B
PB3: MCDA1 /B
PB4: MCDA2 /B
PB5: MCDA3 /B
PB6: TIOA3 /B
PB7: TIOB3 /B
PB8: TIOA4 /B
PB9: TIOB4 /B
PB10: TIOA5 /B
PB11: TIOB5 /B
PB12: ETX2 /B
PB13: ETX3 /B
PB14: ETXER /B
PB15: ERX2 /B
PB16: ERX3 /B
PB17: ERXDV /B
PB18: ECOL /B
PB19: EXRXCK /B
PB20: UART TXD1 /A
PB21: UART RXD1 /A
PB22: UART SCK1 /A
PB23: UART DCD1 /A
PB24: UART CTS1 /A
PB25: DSR1 /A
PB26: RTS1 /A
PB27: PCK0 /A
PB28: FIQ /A
PB29: IRQ0 /A
PB30: DUMMY /0
PB31: DUMMY /0
*/
#define AT91_PIOB_ASR_VALUE 0x3FFC0000
#define AT91_PIOB_BSR_VALUE 0x0000003F
#define AT91_PIOB_OER_VALUE (0x0003FC00&(~(AT91_PIOB_ASR_VALUE|AT91_PIOB_BSR_VALUE)))
#define AT91_PIOB_ODR_VALUE (0x000003c0)
/* PIOC config:
PC0: IO /0
PC1: IO /0
PC2: IO /0
PC3: IO /0
PC4: IO /0
PC5: IO /0
PC6: IO /0
PC7: A23 /A
PC8: A24 /A
PC9: A24 /A
PC10: NCS4 /A
PC11: NCS5 /A
PC12: NCS6 /A
PC13: NCS7 /A
PC14: IO /0
PC15: IO /0
PC16: D16 /A
PC17: D17 /A
PC18: /A
PC19: /A
PC20: /A
PC21: /A
PC22: /A
PC23: /A
PC24: /A
PC25: /A
PC26: /A
PC27: /A
PC28: /A
PC29: /A
PC30: /A
PC31: /A
*/
#define AT91_PIOC_ASR_VALUE 0xFFFF3FCA
#define AT91_PIOC_BSR_VALUE 0x00000000
#define AT91_PIOC_OER_VALUE (0x0000c035&(~(AT91_PIOC_ASR_VALUE|AT91_PIOC_BSR_VALUE)))
#define AT91_PIOC_ODR_VALUE (0x00000000 )
/* PIOD config:
PD0: IO /0
PD1: IO /0
PD2: IO /0
PD3: IO /0
PD4: IO /0
PD5: IO /0
PD6: IO /0
PD7: IO /0
PD8: IO /0
PD9: IO /0
PD10: IO /0
PD11: IO /0
PD12: IO /0
PD13: IO /0
PD14: IO /0
PD15: IO /0
PD16: IO /0
PD17: IO /0
PD18: IO /0
PD19: IO /0
PD21: IO /0
PD22: IO /0
PD24: IO /0
PD25: IO /0
PD26: IO /0
PD27: IO /0
PD28: IO /0
PD29: IO /0
PD30: IO /0
PD31: IO /0
*/
#define AT91_PIOD_ASR_VALUE 0x00000000
#define AT91_PIOD_BSR_VALUE 0x00000000
#define AT91_PIOD_OER_VALUE (0x03FFFFFF&(~(AT91_PIOD_ASR_VALUE|AT91_PIOD_BSR_VALUE)))
#define AT91_PIOD_ODR_VALUE (0x00000000)
#endif /*_AT91_PIO_DEFINE_HEADER*/