1/*
2 * Theses defines come from an atmel file that says specifically that it
3 * has no copyright.
4 *
5 * These defines are also usable for the AT91SAM9260 which has pin multiplexing
6 * that is identical to the AT91SAM9G20.
7 */
8
9/* $FreeBSD: releng/11.0/sys/arm/at91/at91_pio_sam9g20.h 213498 2010-10-06 22:40:27Z cognet $ */
10
11#ifndef  ARM_AT91_AT91_PIO_SAM9G20_H
12#define  ARM_AT91_AT91_PIO_SAM9G20_H
13
14#include <arm/at91/at91_pioreg.h>
15
16
17// *****************************************************************************
18//               PIO DEFINITIONS FOR AT91SAM9G20
19// *****************************************************************************
20#define AT91C_PA0_SPI0_MISO (AT91C_PIO_PA0)  //  SPI 0 Master In Slave
21#define AT91C_PA0_MCDB0     (AT91C_PIO_PA0)  //  Multimedia Card B Data 0
22#define AT91C_PA1_SPI0_MOSI (AT91C_PIO_PA1)  //  SPI 0 Master Out Slave
23#define AT91C_PA1_MCCDB     (AT91C_PIO_PA1)  //  Multimedia Card B Command
24#define AT91C_PA10_MCDA2    (AT91C_PIO_PA10) //  Multimedia Card A Data 2
25#define AT91C_PA10_ETX2_0   (AT91C_PIO_PA10) //  Ethernet MAC Transmit Data 2
26#define AT91C_PA11_MCDA3    (AT91C_PIO_PA11) //  Multimedia Card A Data 3
27#define AT91C_PA11_ETX3_0   (AT91C_PIO_PA11) //  Ethernet MAC Transmit Data 3
28#define AT91C_PA12_ETX0     (AT91C_PIO_PA12) //  Ethernet MAC Transmit Data 0
29#define AT91C_PA13_ETX1     (AT91C_PIO_PA13) //  Ethernet MAC Transmit Data 1
30#define AT91C_PA14_ERX0     (AT91C_PIO_PA14) //  Ethernet MAC Receive Data 0
31#define AT91C_PA15_ERX1     (AT91C_PIO_PA15) //  Ethernet MAC Receive Data 1
32#define AT91C_PA16_ETXEN    (AT91C_PIO_PA16) //  Ethernet MAC Transmit Enable
33#define AT91C_PA17_ERXDV    (AT91C_PIO_PA17) //  Ethernet MAC Receive Data Valid
34#define AT91C_PA18_ERXER    (AT91C_PIO_PA18) //  Ethernet MAC Receive Error
35#define AT91C_PA19_ETXCK    (AT91C_PIO_PA19) //  Ethernet MAC Transmit Clock/Reference Clock
36#define AT91C_PA2_SPI0_SPCK (AT91C_PIO_PA2)  //  SPI 0 Serial Clock
37#define AT91C_PA20_EMDC     (AT91C_PIO_PA20) //  Ethernet MAC Management Data Clock
38#define AT91C_PA21_EMDIO    (AT91C_PIO_PA21) //  Ethernet MAC Management Data Input/Output
39#define AT91C_PA22_ADTRG    (AT91C_PIO_PA22) //  ADC Trigger
40#define AT91C_PA22_ETXER    (AT91C_PIO_PA22) //  Ethernet MAC Transmikt Coding Error
41#define AT91C_PA23_TWD      (AT91C_PIO_PA23) //  TWI Two-wire Serial Data
42#define AT91C_PA23_ETX2_1   (AT91C_PIO_PA23) //  Ethernet MAC Transmit Data 2
43#define AT91C_PA24_TWCK     (AT91C_PIO_PA24) //  TWI Two-wire Serial Clock
44#define AT91C_PA24_ETX3_1   (AT91C_PIO_PA24) //  Ethernet MAC Transmit Data 3
45#define AT91C_PA25_TCLK0    (AT91C_PIO_PA25) //  Timer Counter 0 external clock input
46#define AT91C_PA25_ERX2     (AT91C_PIO_PA25) //  Ethernet MAC Receive Data 2
47#define AT91C_PA26_TIOA0    (AT91C_PIO_PA26) //  Timer Counter 0 Multipurpose Timer I/O Pin A
48#define AT91C_PA26_ERX3     (AT91C_PIO_PA26) //  Ethernet MAC Receive Data 3
49#define AT91C_PA27_TIOA1    (AT91C_PIO_PA27) //  Timer Counter 1 Multipurpose Timer I/O Pin A
50#define AT91C_PA27_ERXCK    (AT91C_PIO_PA27) //  Ethernet MAC Receive Clock
51#define AT91C_PA28_TIOA2    (AT91C_PIO_PA28) //  Timer Counter 2 Multipurpose Timer I/O Pin A
52#define AT91C_PA28_ECRS     (AT91C_PIO_PA28) //  Ethernet MAC Carrier Sense/Carrier Sense and Data Valid
53#define AT91C_PA29_SCK1     (AT91C_PIO_PA29) //  USART 1 Serial Clock
54#define AT91C_PA29_ECOL     (AT91C_PIO_PA29) //  Ethernet MAC Collision Detected
55#define AT91C_PA3_SPI0_NPCS0 (AT91C_PIO_PA3) //  SPI 0 Peripheral Chip Select 0
56#define AT91C_PA3_MCDB3     (AT91C_PIO_PA3)  //  Multimedia Card B Data 3
57#define AT91C_PA30_SCK2     (AT91C_PIO_PA30) //  USART 2 Serial Clock
58#define AT91C_PA30_RXD4     (AT91C_PIO_PA30) //  USART 4 Receive Data
59#define AT91C_PA31_SCK0     (AT91C_PIO_PA31) //  USART 0 Serial Clock
60#define AT91C_PA31_TXD4     (AT91C_PIO_PA31) //  USART 4 Transmit Data
61#define AT91C_PA4_RTS2      (AT91C_PIO_PA4)  //  USART 2 Ready To Send
62#define AT91C_PA4_MCDB2     (AT91C_PIO_PA4)  //  Multimedia Card B Data 2
63#define AT91C_PA5_CTS2      (AT91C_PIO_PA5)  //  USART 2 Clear To Send
64#define AT91C_PA5_MCDB1     (AT91C_PIO_PA5)  //  Multimedia Card B Data 1
65#define AT91C_PA6_MCDA0     (AT91C_PIO_PA6)  //  Multimedia Card A Data 0
66#define AT91C_PA7_MCCDA     (AT91C_PIO_PA7)  //  Multimedia Card A Command
67#define AT91C_PA8_MCCK      (AT91C_PIO_PA8)  //  Multimedia Card Clock
68#define AT91C_PA9_MCDA1     (AT91C_PIO_PA9)  //  Multimedia Card A Data 1
69#define AT91C_PB0_SPI1_MISO (AT91C_PIO_PB0)  //  SPI 1 Master In Slave
70#define AT91C_PB0_TIOA3     (AT91C_PIO_PB0)  //  Timer Counter 3 Multipurpose Timer I/O Pin A
71#define AT91C_PB1_SPI1_MOSI (AT91C_PIO_PB1)  //  SPI 1 Master Out Slave
72#define AT91C_PB1_TIOB3     (AT91C_PIO_PB1)  //  Timer Counter 3 Multipurpose Timer I/O Pin B
73#define AT91C_PB10_TXD3     (AT91C_PIO_PB10) //  USART 3 Transmit Data
74#define AT91C_PB10_ISI_D8   (AT91C_PIO_PB10) //  Image Sensor Data 8
75#define AT91C_PB11_RXD3     (AT91C_PIO_PB11) //  USART 3 Receive Data
76#define AT91C_PB11_ISI_D9   (AT91C_PIO_PB11) //  Image Sensor Data 9
77#define AT91C_PB12_TXD5     (AT91C_PIO_PB12) //  USART 5 Transmit Data
78#define AT91C_PB12_ISI_D10  (AT91C_PIO_PB12) //  Image Sensor Data 10
79#define AT91C_PB13_RXD5     (AT91C_PIO_PB13) //  USART 5 Receive Data
80#define AT91C_PB13_ISI_D11  (AT91C_PIO_PB13) //  Image Sensor Data 11
81#define AT91C_PB14_DRXD     (AT91C_PIO_PB14) //  DBGU Debug Receive Data
82#define AT91C_PB15_DTXD     (AT91C_PIO_PB15) //  DBGU Debug Transmit Data
83#define AT91C_PB16_TK0      (AT91C_PIO_PB16) //  SSC0 Transmit Clock
84#define AT91C_PB16_TCLK3    (AT91C_PIO_PB16) //  Timer Counter 3 external clock input
85#define AT91C_PB17_TF0      (AT91C_PIO_PB17) //  SSC0 Transmit Frame Sync
86#define AT91C_PB17_TCLK4    (AT91C_PIO_PB17) //  Timer Counter 4 external clock input
87#define AT91C_PB18_TD0      (AT91C_PIO_PB18) //  SSC0 Transmit data
88#define AT91C_PB18_TIOB4    (AT91C_PIO_PB18) //  Timer Counter 4 Multipurpose Timer I/O Pin B
89#define AT91C_PB19_RD0      (AT91C_PIO_PB19) //  SSC0 Receive Data
90#define AT91C_PB19_TIOB5    (AT91C_PIO_PB19) //  Timer Counter 5 Multipurpose Timer I/O Pin B
91#define AT91C_PB2_SPI1_SPCK (AT91C_PIO_PB2)  //  SPI 1 Serial Clock
92#define AT91C_PB2_TIOA4     (AT91C_PIO_PB2)  //  Timer Counter 4 Multipurpose Timer I/O Pin A
93#define AT91C_PB20_RK0      (AT91C_PIO_PB20) //  SSC0 Receive Clock
94#define AT91C_PB20_ISI_D0   (AT91C_PIO_PB20) //  Image Sensor Data 0
95#define AT91C_PB21_RF0      (AT91C_PIO_PB21) //  SSC0 Receive Frame Sync
96#define AT91C_PB21_ISI_D1   (AT91C_PIO_PB21) //  Image Sensor Data 1
97#define AT91C_PB22_DSR0     (AT91C_PIO_PB22) //  USART 0 Data Set ready
98#define AT91C_PB22_ISI_D2   (AT91C_PIO_PB22) //  Image Sensor Data 2
99#define AT91C_PB23_DCD0     (AT91C_PIO_PB23) //  USART 0 Data Carrier Detect
100#define AT91C_PB23_ISI_D3   (AT91C_PIO_PB23) //  Image Sensor Data 3
101#define AT91C_PB24_DTR0     (AT91C_PIO_PB24) //  USART 0 Data Terminal ready
102#define AT91C_PB24_ISI_D4   (AT91C_PIO_PB24) //  Image Sensor Data 4
103#define AT91C_PB25_RI0      (AT91C_PIO_PB25) //  USART 0 Ring Indicator
104#define AT91C_PB25_ISI_D5   (AT91C_PIO_PB25) //  Image Sensor Data 5
105#define AT91C_PB26_RTS0     (AT91C_PIO_PB26) //  USART 0 Ready To Send
106#define AT91C_PB26_ISI_D6   (AT91C_PIO_PB26) //  Image Sensor Data 6
107#define AT91C_PB27_CTS0     (AT91C_PIO_PB27) //  USART 0 Clear To Send
108#define AT91C_PB27_ISI_D7   (AT91C_PIO_PB27) //  Image Sensor Data 7
109#define AT91C_PB28_RTS1     (AT91C_PIO_PB28) //  USART 1 Ready To Send
110#define AT91C_PB28_ISI_PCK  (AT91C_PIO_PB28) //  Image Sensor Data Clock
111#define AT91C_PB29_CTS1     (AT91C_PIO_PB29) //  USART 1 Clear To Send
112#define AT91C_PB29_ISI_VSYNC (AT91C_PIO_PB29) //  Image Sensor Vertical Synchro
113#define AT91C_PB3_SPI1_NPCS0 (AT91C_PIO_PB3) //  SPI 1 Peripheral Chip Select 0
114#define AT91C_PB3_TIOA5     (AT91C_PIO_PB3)  //  Timer Counter 5 Multipurpose Timer I/O Pin A
115#define AT91C_PB30_PCK0_0   (AT91C_PIO_PB30) //  PMC Programmable Clock Output 0
116#define AT91C_PB30_ISI_HSYNC (AT91C_PIO_PB30) //  Image Sensor Horizontal Synchro
117#define AT91C_PB31_PCK1_0   (AT91C_PIO_PB31) //  PMC Programmable Clock Output 1
118#define AT91C_PB31_ISI_MCK  (AT91C_PIO_PB31) //  Image Sensor Reference Clock
119#define AT91C_PB4_TXD0      (AT91C_PIO_PB4) //  USART 0 Transmit Data
120#define AT91C_PB5_RXD0      (AT91C_PIO_PB5) //  USART 0 Receive Data
121#define AT91C_PB6_TXD1      (AT91C_PIO_PB6) //  USART 1 Transmit Data
122#define AT91C_PB6_TCLK1     (AT91C_PIO_PB6) //  Timer Counter 1 external clock input
123#define AT91C_PB7_RXD1      (AT91C_PIO_PB7) //  USART 1 Receive Data
124#define AT91C_PB7_TCLK2     (AT91C_PIO_PB7) //  Timer Counter 2 external clock input
125#define AT91C_PB8_TXD2      (AT91C_PIO_PB8) //  USART 2 Transmit Data
126#define AT91C_PB9_RXD2      (AT91C_PIO_PB9) //  USART 2 Receive Data
127#define AT91C_PC0_AD0       (AT91C_PIO_PC0) //  ADC Analog Input 0
128#define AT91C_PC0_SCK3      (AT91C_PIO_PC0) //  USART 3 Serial Clock
129#define AT91C_PC1_AD1       (AT91C_PIO_PC1) //  ADC Analog Input 1
130#define AT91C_PC1_PCK0_1    (AT91C_PIO_PC1) //  PMC Programmable Clock Output 0
131#define AT91C_PC10_A25_CFR NW (AT91C_PIO_PC10) //  Address Bus[25]
132#define AT91C_PC10_CTS3     (AT91C_PIO_PC10) //  USART 3 Clear To Send
133#define AT91C_PC11_NCS2     (AT91C_PIO_PC11) //  Chip Select Line 2
134#define AT91C_PC11_SPI0_NPCS1 (AT91C_PIO_PC11) //  SPI 0 Peripheral Chip Select 1
135#define AT91C_PC12_IRQ0     (AT91C_PIO_PC12) //  External Interrupt 0
136#define AT91C_PC12_NCS7     (AT91C_PIO_PC12) //  Chip Select Line 7
137#define AT91C_PC13_FIQ      (AT91C_PIO_PC13) //  AIC Fast Interrupt Input
138#define AT91C_PC13_NCS6     (AT91C_PIO_PC13) //  Chip Select Line 6
139#define AT91C_PC14_NCS3_NANDCS (AT91C_PIO_PC14) //  Chip Select Line 3
140#define AT91C_PC14_IRQ2     (AT91C_PIO_PC14) //  External Interrupt 2
141#define AT91C_PC15_NWAIT    (AT91C_PIO_PC15) //  External Wait Signal
142#define AT91C_PC15_IRQ1     (AT91C_PIO_PC15) //  External Interrupt 1
143#define AT91C_PC16_D16      (AT91C_PIO_PC16) //  Data Bus[16]
144#define AT91C_PC16_SPI0_NPCS2 (AT91C_PIO_PC16) //  SPI 0 Peripheral Chip Select 2
145#define AT91C_PC17_D17      (AT91C_PIO_PC17)  //  Data Bus[17]
146#define AT91C_PC17_SPI0_NPCS3 (AT91C_PIO_PC17) //  SPI 0 Peripheral Chip Select 3
147#define AT91C_PC18_D18      (AT91C_PIO_PC18)  //  Data Bus[18]
148#define AT91C_PC18_SPI1_NPCS1_1 (AT91C_PIO_PC18) //  SPI 1 Peripheral Chip Select 1
149#define AT91C_PC19_D19      (AT91C_PIO_PC19) //  Data Bus[19]
150#define AT91C_PC19_SPI1_NPCS2_1 (AT91C_PIO_PC19) //  SPI 1 Peripheral Chip Select 2
151#define AT91C_PC2_AD2       (AT91C_PIO_PC2)  //  ADC Analog Input 2
152#define AT91C_PC2_PCK1_1    (AT91C_PIO_PC2)  //  PMC Programmable Clock Output 1
153#define AT91C_PC20_D20      (AT91C_PIO_PC20) //  Data Bus[20]
154#define AT91C_PC20_SPI1_NPCS3_1 (AT91C_PIO_PC20) //  SPI 1 Peripheral Chip Select 3
155#define AT91C_PC21_D21      (AT91C_PIO_PC21) //  Data Bus[21]
156#define AT91C_PC21_EF100    (AT91C_PIO_PC21) //  Ethernet MAC Force 100 Mbits/sec
157#define AT91C_PC22_D22      (AT91C_PIO_PC22) //  Data Bus[22]
158#define AT91C_PC22_TCLK5    (AT91C_PIO_PC22) //  Timer Counter 5 external clock input
159#define AT91C_PC23_D23      (AT91C_PIO_PC23) //  Data Bus[23]
160#define AT91C_PC24_D24      (AT91C_PIO_PC24) //  Data Bus[24]
161#define AT91C_PC25_D25      (AT91C_PIO_PC25) //  Data Bus[25]
162#define AT91C_PC26_D26      (AT91C_PIO_PC26) //  Data Bus[26]
163#define AT91C_PC27_D27      (AT91C_PIO_PC27) //  Data Bus[27]
164#define AT91C_PC28_D28      (AT91C_PIO_PC28) //  Data Bus[28]
165#define AT91C_PC29_D29      (AT91C_PIO_PC29) //  Data Bus[29]
166#define AT91C_PC3_AD3       (AT91C_PIO_PC3)  //  ADC Analog Input 3
167#define AT91C_PC3_SPI1_NPCS3_0 (AT91C_PIO_PC3) //  SPI 1 Peripheral Chip Select 3
168#define AT91C_PC30_D30      (AT91C_PIO_PC30) //  Data Bus[30]
169#define AT91C_PC31_D31      (AT91C_PIO_PC31) //  Data Bus[31]
170#define AT91C_PC4_A23       (AT91C_PIO_PC4)  //  Address Bus[23]
171#define AT91C_PC4_SPI1_NPCS2_0 (AT91C_PIO_PC4) //  SPI 1 Peripheral Chip Select 2
172#define AT91C_PC5_A24       (AT91C_PIO_PC5)  //  Address Bus[24]
173#define AT91C_PC5_SPI1_NPCS1_0 (AT91C_PIO_PC5) //  SPI 1 Peripheral Chip Select 1
174#define AT91C_PC6_TIOB2     (AT91C_PIO_PC6)  //  Timer Counter 2 Multipurpose Timer I/O Pin B
175#define AT91C_PC6_CFCE1     (AT91C_PIO_PC6)  //  Compact Flash Enable 1
176#define AT91C_PC7_TIOB1     (AT91C_PIO_PC7)  //  Timer Counter 1 Multipurpose Timer I/O Pin B
177#define AT91C_PC7_CFCE2     (AT91C_PIO_PC7)  //  Compact Flash Enable 2
178#define AT91C_PC8_NCS4_CFCS0 (AT91C_PIO_PC8) //  Chip Select Line 4
179#define AT91C_PC8_RTS3      (AT91C_PIO_PC8)  //  USART 3 Ready To Send
180#define AT91C_PC9_NCS5_CFCS1 (AT91C_PIO_PC9) //  Chip Select Line 5
181#define AT91C_PC9_TIOB0     (AT91C_PIO_PC9)  //  Timer Counter 0 Multipurpose Timer I/O Pin B
182
183#endif /* ARM_AT91_AT91_PIO_SAM9G20_H */
184