blob: 42a32d3f15f3277b5d785fa9221609b74d83b46c (
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
/*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#ifndef __AT91RM9200_H__
#define __AT91RM9200_H__
#define CONFIG_AT91FAMILY /* it's a member of AT91 family */
#define CONFIG_ARM920T /* it's an ARM920T Core */
#define CONFIG_ARCH_CPU_INIT /* we need arch_cpu_init() for hw timers */
#define CONFIG_AT91_GPIO /* and require always gpio features */
/* Periperial Identifiers */
#define ATMEL_ID_SYS 1 /* System Peripheral */
#define ATMEL_ID_PIOA 2 /* PIO port A */
#define ATMEL_ID_PIOB 3 /* PIO port B */
#define ATMEL_ID_PIOC 4 /* PIO port C */
#define ATMEL_ID_PIOD 5 /* PIO port D BGA only */
#define ATMEL_ID_USART0 6 /* USART 0 */
#define ATMEL_ID_USART1 7 /* USART 1 */
#define ATMEL_ID_USART2 8 /* USART 2 */
#define ATMEL_ID_USART3 9 /* USART 3 */
#define ATMEL_ID_MCI 10 /* Multimedia Card Interface */
#define ATMEL_ID_UDP 11 /* USB Device Port */
#define ATMEL_ID_TWI 12 /* Two Wire Interface */
#define ATMEL_ID_SPI 13 /* Serial Peripheral Interface */
#define ATMEL_ID_SSC0 14 /* Synch. Serial Controller 0 */
#define ATMEL_ID_SSC1 15 /* Synch. Serial Controller 1 */
#define ATMEL_ID_SSC2 16 /* Synch. Serial Controller 2 */
#define ATMEL_ID_TC0 17 /* Timer Counter 0 */
#define ATMEL_ID_TC1 18 /* Timer Counter 1 */
#define ATMEL_ID_TC2 19 /* Timer Counter 2 */
#define ATMEL_ID_TC3 20 /* Timer Counter 3 */
#define ATMEL_ID_TC4 21 /* Timer Counter 4 */
#define ATMEL_ID_TC5 22 /* Timer Counter 5 */
#define ATMEL_ID_UHP 23 /* OHCI USB Host Port */
#define ATMEL_ID_EMAC 24 /* Ethernet MAC */
#define ATMEL_ID_IRQ0 25 /* Advanced Interrupt Controller */
#define ATMEL_ID_IRQ1 26 /* Advanced Interrupt Controller */
#define ATMEL_ID_IRQ2 27 /* Advanced Interrupt Controller */
#define ATMEL_ID_IRQ3 28 /* Advanced Interrupt Controller */
#define ATMEL_ID_IRQ4 29 /* Advanced Interrupt Controller */
#define ATMEL_ID_IRQ5 30 /* Advanced Interrupt Controller */
#define ATMEL_ID_IRQ6 31 /* Advanced Interrupt Controller */
#define ATMEL_USB_HOST_BASE 0x00300000
#define ATMEL_BASE_TC 0xFFFA0000
#define ATMEL_BASE_UDP 0xFFFB0000
#define ATMEL_BASE_MCI 0xFFFB4000
#define ATMEL_BASE_TWI 0xFFFB8000
#define ATMEL_BASE_EMAC 0xFFFBC000
#define ATMEL_BASE_USART 0xFFFC0000 /* 4x 0x4000 Offset */
#define ATMEL_BASE_USART0 ATMEL_BASE_USART
#define ATMEL_BASE_USART1 (ATMEL_BASE_USART + 0x4000)
#define ATMEL_BASE_USART2 (ATMEL_BASE_USART + 0x8000)
#define ATMEL_BASE_USART3 (ATMEL_BASE_USART + 0xC000)
#define ATMEL_BASE_SCC 0xFFFD0000 /* 4x 0x4000 Offset */
#define ATMEL_BASE_SPI 0xFFFE0000
#define ATMEL_BASE_AIC 0xFFFFF000
#define ATMEL_BASE_DBGU 0xFFFFF200
#define ATMEL_BASE_PIO 0xFFFFF400 /* 4x 0x200 Offset */
#define ATMEL_BASE_PIOA 0xFFFFF400
#define ATMEL_BASE_PIOB 0xFFFFF600
#define ATMEL_BASE_PIOC 0xFFFFF800
#define ATMEL_BASE_PIOD 0xFFFFFA00
#define ATMEL_BASE_PMC 0xFFFFFC00
#define ATMEL_BASE_ST 0xFFFFFD00
#define ATMEL_BASE_RTC 0xFFFFFE00
#define ATMEL_BASE_MC 0xFFFFFF00
#define AT91_PIO_BASE ATMEL_BASE_PIO
/* AT91RM9200 Periperial Multiplexing A */
/* Port A */
#define ATMEL_PMX_AA_EREFCK 0x00000080
#define ATMEL_PMX_AA_ETXCK 0x00000080
#define ATMEL_PMX_AA_ETXEN 0x00000100
#define ATMEL_PMX_AA_ETX0 0x00000200
#define ATMEL_PMX_AA_ETX1 0x00000400
#define ATMEL_PMX_AA_ECRS 0x00000800
#define ATMEL_PMX_AA_ECRSDV 0x00000800
#define ATMEL_PMX_AA_ERX0 0x00001000
#define ATMEL_PMX_AA_ERX1 0x00002000
#define ATMEL_PMX_AA_ERXER 0x00004000
#define ATMEL_PMX_AA_EMDC 0x00008000
#define ATMEL_PMX_AA_EMDIO 0x00010000
#define ATMEL_PMX_AA_TXD2 0x00800000
#define ATMEL_PMX_AA_TWD 0x02000000
#define ATMEL_PMX_AA_TWCK 0x04000000
/* Port B */
#define ATMEL_PMX_BA_ERXCK 0x00080000
#define ATMEL_PMX_BA_ECOL 0x00040000
#define ATMEL_PMX_BA_ERXDV 0x00020000
#define ATMEL_PMX_BA_ERX3 0x00010000
#define ATMEL_PMX_BA_ERX2 0x00008000
#define ATMEL_PMX_BA_ETXER 0x00004000
#define ATMEL_PMX_BA_ETX3 0x00002000
#define ATMEL_PMX_BA_ETX2 0x00001000
/* Port B */
#define ATMEL_PMX_CA_BFCK 0x00000001
#define ATMEL_PMX_CA_BFRDY 0x00000002
#define ATMEL_PMX_CA_SMOE 0x00000002
#define ATMEL_PMX_CA_BFAVD 0x00000004
#define ATMEL_PMX_CA_BFBAA 0x00000008
#define ATMEL_PMX_CA_SMWE 0x00000008
#define ATMEL_PMX_CA_BFOE 0x00000010
#define ATMEL_PMX_CA_BFWE 0x00000020
#define ATMEL_PMX_CA_NWAIT 0x00000040
#define ATMEL_PMX_CA_A23 0x00000080
#define ATMEL_PMX_CA_A24 0x00000100
#define ATMEL_PMX_CA_A25 0x00000200
#define ATMEL_PMX_CA_CFRNW 0x00000200
#define ATMEL_PMX_CA_NCS4 0x00000400
#define ATMEL_PMX_CA_CFCS 0x00000400
#define ATMEL_PMX_CA_NCS5 0x00000800
#define ATMEL_PMX_CA_CFCE1 0x00001000
#define ATMEL_PMX_CA_NCS6 0x00001000
#define ATMEL_PMX_CA_CFCE2 0x00002000
#define ATMEL_PMX_CA_NCS7 0x00002000
#define ATMEL_PMX_CA_D16_31 0xFFFF0000
#define ATMEL_PIO_PORTS 4 /* theese SoCs have 4 PIO */
#define ATMEL_PMC_UHP AT91RM9200_PMC_UHP
#define CONFIG_SYS_ATMEL_CPU_NAME "AT91RM9200"
#endif
|