Mercurial > nand-ecoscentric
changeset 1795:68f7128db71e
* include/var_io.h: Added definitions for AT91M55800A SPI and PIO
pins.
| author | asl |
|---|---|
| date | Tue, 05 Oct 2004 08:36:35 +0000 |
| parents | 6531d33a6737 |
| children | bfa08c344743 |
| files | packages/hal/arm/at91/var/current/ChangeLog packages/hal/arm/at91/var/current/include/var_io.h |
| diffstat | 2 files changed, 122 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/hal/arm/at91/var/current/ChangeLog +++ b/packages/hal/arm/at91/var/current/ChangeLog @@ -1,3 +1,8 @@ +2004-10-05 Savin Zlobec <savin@elatec.si> + + * include/var_io.h: Added definitions for AT91M55800A SPI and PIO + pins. + 2004-09-17 Andrea Michelotti <amichelotti@atmel.com> * cdl/hal_arm_at91.cdl:
--- a/packages/hal/arm/at91/var/current/include/var_io.h +++ b/packages/hal/arm/at91/var/current/include/var_io.h @@ -162,6 +162,59 @@ #define AT91_PIO_PER 0x00 // PIO enable #define AT91_PIO_PDR 0x04 // PIO disable #define AT91_PIO_PSR 0x08 // PIO status + +#if defined(CYGHWR_HAL_ARM_AT91_M55800A) + +// PIOA +#define AT91_PIO_PSR_TCLK3 0x00000001 // Timer 3 Clock signal +#define AT91_PIO_PSR_TIOA3 0x00000002 // Timer 3 Signal A +#define AT91_PIO_PSR_TIOB3 0x00000004 // Timer 3 Signal B +#define AT91_PIO_PSR_TCLK4 0x00000008 // Timer 4 Clock signal +#define AT91_PIO_PSR_TIOA4 0x00000010 // Timer 4 Signal A +#define AT91_PIO_PSR_TIOB4 0x00000020 // Timer 4 Signal B +#define AT91_PIO_PSR_TCLK5 0x00000040 // Timer 5 Clock signal +#define AT91_PIO_PSR_TIOA5 0x00000080 // Timer 5 Signal A +#define AT91_PIO_PSR_TIOB5 0x00000100 // Timer 5 Signal B +#define AT91_PIO_PSR_IRQ0 0x00000200 // External Interrupt 0 +#define AT91_PIO_PSR_IRQ1 0x00000400 // External Interrupt 1 +#define AT91_PIO_PSR_IRQ2 0x00000800 // External Interrupt 2 +#define AT91_PIO_PSR_IRQ3 0x00001000 // External Interrupt 3 +#define AT91_PIO_PSR_FIQ 0x00002000 // Fast Interrupt +#define AT91_PIO_PSR_SCK0 0x00004000 // USART 0 Clock signal +#define AT91_PIO_PSR_TXD0 0x00008000 // USART 0 transmit data +#define AT91_PIO_PSR_RXD0 0x00010000 // USART 0 receive data +#define AT91_PIO_PSR_SCK1 0x00020000 // USART 1 Clock signal +#define AT91_PIO_PSR_TXD1 0x00040000 // USART 1 transmit data +#define AT91_PIO_PSR_RXD1 0x00080000 // USART 1 receive data +#define AT91_PIO_PSR_SCK2 0x00100000 // USART 2 Clock signal +#define AT91_PIO_PSR_TXD2 0x00200000 // USART 2 transmit data +#define AT91_PIO_PSR_RXD2 0x00400000 // USART 2 receive data +#define AT91_PIO_PSR_SPCK 0x00800000 // SPI Clock signal +#define AT91_PIO_PSR_MISO 0x01000000 // SPI Master In Slave Out +#define AT91_PIO_PSR_MOIS 0x02000000 // SPI Master Out Slave In +#define AT91_PIO_PSR_NPCS0 0x04000000 // SPI Peripheral Chip Select 0 +#define AT91_PIO_PSR_NPCS1 0x08000000 // SPI Peripheral Chip Select 1 +#define AT91_PIO_PSR_NPCS2 0x10000000 // SPI Peripheral Chip Select 2 +#define AT91_PIO_PSR_NPCS3 0x20000000 // SPI Peripheral Chip Select 3 + +// PIOB +#define AT91_PIO_PSR_IRQ4 0x00000008 // External Interrupt 4 +#define AT91_PIO_PSR_IRQ5 0x00000010 // External Interrupt 5 +#define AT91_PIO_PSR_AD0TRIG 0x00000040 // ADC0 External Trigger +#define AT91_PIO_PSR_AD1TRIG 0x00000080 // ADC1 External Trigger +#define AT91_PIO_PSR_BMS 0x00040000 // Boot Mode Select +#define AT91_PIO_PSR_TCLK0 0x00080000 // Timer 0 Clock signal +#define AT91_PIO_PSR_TIOA0 0x00100000 // Timer 0 Signal A +#define AT91_PIO_PSR_TIOB0 0x00200000 // Timer 0 Signal B +#define AT91_PIO_PSR_TCLK1 0x00400000 // Timer 1 Clock signal +#define AT91_PIO_PSR_TIOA1 0x00800000 // Timer 1 Signal A +#define AT91_PIO_PSR_TIOB1 0x01000000 // Timer 1 Signal B +#define AT91_PIO_PSR_TCLK2 0x02000000 // Timer 2 Clock signal +#define AT91_PIO_PSR_TIOA2 0x04000000 // Timer 2 Signal A +#define AT91_PIO_PSR_TIOB2 0x08000000 // Timer 2 Signal B + +#else + #define AT91_PIO_PSR_TCLK0 0x00000001 // Timer #0 clock #define AT91_PIO_PSR_TIOA0 0x00000002 // Timer #0 signal A #define AT91_PIO_PSR_TIOB0 0x00000004 // Timer #0 signal B @@ -194,6 +247,9 @@ #define AT91_PIO_PSR_CS6_A21 0x20000000 // Chip select #6 or A21 #define AT91_PIO_PSR_CS5_A22 0x40000000 // Chip select #5 or A22 #define AT91_PIO_PSR_CS4_A23 0x80000000 // Chip select #4 or A23 + +#endif + #define AT91_PIO_OER 0x10 // Output enable #define AT91_PIO_ODR 0x14 // Output disable #define AT91_PIO_OSR 0x18 // Output status @@ -656,6 +712,67 @@ #define AT91_WD_SR 0x0C #define AT91_WD_SR_WDOVF 0x00000001 +//============================================================================= +// SPI + +#ifndef AT91_SPI +#define AT91_SPI 0xFFFBC000 +#endif + +#define AT91_SPI_CR 0x00 // Control Register +#define AT91_SPI_CR_SPIEN 0x00000001 // SPI Enable +#define AT91_SPI_CR_SPIDIS 0x00000002 // SPI Disable +#define AT91_SPI_CR_SWRST 0x00000080 // SPI Software reset +#define AT91_SPI_MR 0x04 // Mode Register +#define AT91_SPI_MR_MSTR 0x00000001 // Master/Slave Mode +#define AT91_SPI_MR_PS 0x00000002 // Peripheral Select +#define AT91_SPI_MR_PCSDEC 0x00000004 // Chip Select Decode +#define AT91_SPI_MR_DIV32 0x00000008 // Clock Selection +#define AT91_SPI_MR_LLB 0x00000080 // Local Loopback Enable +#define AT91_SPI_MR_PCS(x) (((x)&0x0F)<<16) // Peripheral Chip Select +#define AT91_SPI_MR_DLYBCS(x) (((x)&0xFF)<<24) // Delay Between Chip Selects +#define AT91_SPI_RDR 0x08 // Receive Data Register +#define AT91_SPI_TDR 0x0C // Transmit Data Register +#define AT91_SPI_SR 0x10 // Status Register +#define AT91_SPI_SR_RDRF 0x00000001 // Receive Data Register Full +#define AT91_SPI_SR_TDRE 0x00000002 // Transmit Data Register Empty +#define AT91_SPI_SR_MODF 0x00000004 // Mode Fault Error +#define AT91_SPI_SR_OVRES 0x00000008 // Overrun Error Status +#define AT91_SPI_SR_ENDRX 0x00000010 // End of Receiver Transfer +#define AT91_SPI_SR_ENDTX 0x00000020 // End of Transmitter Transfer +#define AT91_SPI_SR_SPIENS 0x00010000 // SPI Enable Status +#define AT91_SPI_IER 0x14 // Interrupt Enable Register +#define AT91_SPI_IDR 0x18 // Interrupt Disable Register +#define AT91_SPI_IMR 0x1C // Interrupt Mask Register +#define AT91_SPI_RPR 0x20 // Receive Pointer Register +#define AT91_SPI_RCR 0x24 // Receive Counter Register +#define AT91_SPI_TPR 0x28 // Transmit Pointer Register +#define AT91_SPI_TCR 0x2C // Transmit Counter Register +#define AT91_SPI_CSR0 0x30 // Chip Select Register 0 +#define AT91_SPI_CSR1 0x34 // Chip Select Register 1 +#define AT91_SPI_CSR2 0x38 // Chip Select Register 2 +#define AT91_SPI_CSR3 0x3C // Chip Select Register 3 +#define AT91_SPI_CSR_CPOL 0x00000001 // Clock Polarity +#define AT91_SPI_CSR_NCPHA 0x00000002 // Clock Phase +#define AT91_SPI_CSR_BITS(x) (((x)&0x0F)<<4) // Bits Per Transfer +#define AT91_SPI_CSR_BITS8 AT91_SPI_CSR_BITS(0) +#define AT91_SPI_CSR_BITS9 AT91_SPI_CSR_BITS(1) +#define AT91_SPI_CSR_BITS10 AT91_SPI_CSR_BITS(2) +#define AT91_SPI_CSR_BITS11 AT91_SPI_CSR_BITS(3) +#define AT91_SPI_CSR_BITS12 AT91_SPI_CSR_BITS(4) +#define AT91_SPI_CSR_BITS13 AT91_SPI_CSR_BITS(5) +#define AT91_SPI_CSR_BITS14 AT91_SPI_CSR_BITS(6) +#define AT91_SPI_CSR_BITS15 AT91_SPI_CSR_BITS(7) +#define AT91_SPI_CSR_BITS16 AT91_SPI_CSR_BITS(8) +#define AT91_SPI_CSR_SCBR(x) (((x)&0xFF)<<8) // Serial Clock Baud Rate +#define AT91_SPI_CSR_DLYBS(x) (((x)&0xFF)<<16) // Delay Before SPCK +#define AT91_SPI_CSR_DLYBCT(x) (((x)&0xFF)<<24) // Delay Between two transfers + +#if defined(CYGHWR_HAL_ARM_AT91_M55800A) + +#define AT91_SPI_PIO AT91_PIOA +#define AT91_SPI_PIO_NPCS(x) (((x)&0x0F)<<26) +#endif //============================================================================= // FIQ interrupt vector which is shared by all HAL varients.
