blob: b95084ce8837d4184da0575370992dbc31ff535f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
//----------------------------------------------------------------------------
// 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 */
|