//---------------------------------------------------------------------------- // File Name : pio.h // Object : Parallel I/O Header File // //* 1.0 27/10/02 GR : Creation //---------------------------------------------------------------------------- #ifndef pio_h #define pio_h #include "std_c.h" /*------------------------------------------------------------*/ /* User Interface Parallel I/O Interface Structure Definition */ /*------------------------------------------------------------*/ typedef struct { at91_reg PIO_PER ; /* PIO Enable Register */ at91_reg PIO_PDR ; /* PIO Disable Register */ at91_reg PIO_PSR ; /* PIO Status Register */ at91_reg Reserved0 ; at91_reg PIO_OER ; /* Output Enable Register */ at91_reg PIO_ODR ; /* Output Disable Register */ at91_reg PIO_OSR ; /* Output Status Register */ at91_reg Reserved1 ; 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 ; 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 */ } StructPIO ; #define PIOB_BASE ((StructPIO *) 0xFFFF0000) /* Parallel I/O Controller B */ #define PIOA_BASE ((StructPIO *) 0xFFFEC000) /* Parallel I/O Controller A */ /* PIO Controller A */ #define PIOTCLK3 0 /* Timer 3 Clock signal */ #define PIOTIOA3 1 /* Timer 3 Signal A */ #define PIOTIOB3 2 /* Timer 3 Signal B */ #define PIOTCLK4 3 /* Timer 4 Clock signal */ #define PIOTIOA4 4 /* Timer 4 Signal A */ #define PIOTIOB4 5 /* Timer 4 Signal B */ #define PIOTCLK5 6 /* Timer 5 Clock signal */ #define PIOTIOA5 7 /* Timer 5 Signal A */ #define PIOTIOB5 8 /* Timer 5 Signal B */ #define PIOIRQ0 9 /* External Interrupt 0 */ #define PIOIRQ1 10 /* External Interrupt 1 */ #define PIOIRQ2 11 /* External Interrupt 2 */ #define PIOIRQ3 12 /* External Interrupt 3 */ #define PIOFIQ 13 /* Fast Interrupt */ #define PIOSCK0 14 /* USART 0 signal */ #define PIOTXD0 15 /* USART 0 transmit data */ #define PIORXD0 16 /* USART 0 receive data */ #define PIOSCK1 17 /* USART 1 clock signal */ #define PIOTXD1 18 /* USART 1 transmit data */ #define PIORXD1 19 /* USART 1 receive data */ #define PIOSCK2 20 /* USART 2 clock signal */ #define PIOTXD2 21 /* USART 2 transmit data */ #define PIORXD2 22 /* USART 2 receive data */ #define PIOSPCK 23 /* SPI clock signal */ #define PIOMISO 24 /* SPI Master In Slave */ #define PIOMOSI 25 /* SPI Master Out Slave */ #define PIONPCS0 26 /* SPI Peripheral Chip Select 0 */ #define PIONSS PIONPCS0 #define PIONPCS1 27 /* SPI Peripheral Chip Select 1 */ #define PIONPCS2 28 /* SPI Peripheral Chip Select 2 */ #define PIONPCS3 29 /* SPI Peripheral Chip Select 3 */ /* PIO Controller B */ #define PIOTCLK0 19 /* Timer 0 Clock signal input */ #define PIOTIOA0 20 /* Timer 0 Signal A */ #define PIOTIOB0 21 /* Timer 0 Signal B */ #define PIOTCLK1 22 /* Timer 1 Clock signal */ #define PIOTIOA1 23 /* Timer 1 Signal A */ #define PIOTIOB1 24 /* Timer 1 Signal B */ #define PIOTCLK2 25 /* Timer 2 Clock signal */ #define PIOTIOA2 26 /* Timer 2 Signal A */ #define PIOTIOB2 27 /* Timer 2 Signal B */ #define PIOMCKO 17 /* Master Clock Output */ #define PIOBMS 18 /* Boot Mode Select */ #define PIOMPI_NOE 0 /* MPI output enable */ #define PIOMPI_NLB 1 /* MPI lower byte select */ #define PIOMPI_NUB 2 /* MPI upper byte select */ #define LED1 (1<<8) /* LED 1 (linke LED) */ #define LED2 (1<<9) /* LED 2 */ #define LED3 (1<<10) /* LED 3 */ #define LED4 (1<<11) /* LED 4 */ #define LED5 (1<<12) /* LED 5 */ #define LED6 (1<<13) /* LED 6 */ #define LED7 (1<<14) /* LED 7 */ #define LED8 (1<<15) /* LED 8 */ #define ALL_LEDS (LED1|LED2|LED3|LED4|LED5|LED6|LED7|LED8) #define KEY1 (1<<3) /* TASTE 1 (linke Taste) auf PB3 */ #define KEY2 (1<<4) /* TASTE 2 auf PB4 */ #define KEY3 (1<<5) /* TASTE 3 auf PB5 */ #define KEY4 (1<<9) /* TASTE 4 auf PA9/IRQ0 */ #define ALL_KEYS (KEY1|KEY2|KEY3) #endif /* pio_h */