]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_ATSAM3X_Atmel_Studio/src/asf/sam/boards/sam3x_ek/sam3x_ek.h
Add SAM3X-EK demo.
[freertos] / FreeRTOS / Demo / CORTEX_ATSAM3X_Atmel_Studio / src / asf / sam / boards / sam3x_ek / sam3x_ek.h
1 /**\r
2  * \file\r
3  *\r
4  * \brief SAM3X-EK Board Definition.\r
5  *\r
6  * Copyright (c) 2011 - 2012 Atmel Corporation. All rights reserved.\r
7  *\r
8  * \asf_license_start\r
9  *\r
10  * \page License\r
11  *\r
12  * Redistribution and use in source and binary forms, with or without\r
13  * modification, are permitted provided that the following conditions are met:\r
14  *\r
15  * 1. Redistributions of source code must retain the above copyright notice,\r
16  *    this list of conditions and the following disclaimer.\r
17  *\r
18  * 2. Redistributions in binary form must reproduce the above copyright notice,\r
19  *    this list of conditions and the following disclaimer in the documentation\r
20  *    and/or other materials provided with the distribution.\r
21  *\r
22  * 3. The name of Atmel may not be used to endorse or promote products derived\r
23  *    from this software without specific prior written permission.\r
24  *\r
25  * 4. This software may only be redistributed and used in connection with an\r
26  *    Atmel microcontroller product.\r
27  *\r
28  * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED\r
29  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
30  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
31  * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR\r
32  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
33  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
34  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
35  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r
36  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\r
37  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
38  * POSSIBILITY OF SUCH DAMAGE.\r
39  *\r
40  * \asf_license_stop\r
41  *\r
42  */\r
43 \r
44 #ifndef _SAM3X_EK_H_\r
45 #define _SAM3X_EK_H_\r
46 \r
47 #include "compiler.h"\r
48 #include "system_sam3x.h"\r
49 #include "exceptions.h"\r
50 \r
51 /*#define BOARD_REV_A */\r
52 #define BOARD_REV_B\r
53 \r
54 /* ------------------------------------------------------------------------ */\r
55 \r
56 /**\r
57  *  \page sam3x_ek_opfreq "SAM3X-EK - Operating frequencies"\r
58  *  This page lists several definition related to the board operating frequency\r
59  *\r
60  *  \section Definitions\r
61  *  - \ref BOARD_FREQ_*\r
62  *  - \ref BOARD_MCK\r
63  */\r
64 \r
65 /*! Board oscillator settings */\r
66 #define BOARD_FREQ_SLCK_XTAL            (32768U)\r
67 #define BOARD_FREQ_SLCK_BYPASS          (32768U)\r
68 #define BOARD_FREQ_MAINCK_XTAL          (12000000U)\r
69 #define BOARD_FREQ_MAINCK_BYPASS        (12000000U)\r
70 \r
71 /*! Master clock frequency */\r
72 #define BOARD_MCK                       CHIP_FREQ_CPU_MAX\r
73 \r
74 /* ------------------------------------------------------------------------ */\r
75 \r
76 /**\r
77  * \page sam3x_ek_board_info "SAM3X-EK - Board informations"\r
78  * This page lists several definition related to the board description.\r
79  *\r
80  * \section Definitions\r
81  * - \ref BOARD_NAME\r
82  */\r
83 \r
84 /*! Name of the board */\r
85 #define BOARD_NAME "SAM3X-EK"\r
86 /*! Board definition */\r
87 #define sam3xek\r
88 /*! Family definition (already defined) */\r
89 #define sam3x\r
90 /*! Core definition */\r
91 #define cortexm3\r
92 \r
93 /* ------------------------------------------------------------------------ */\r
94 \r
95 /**\r
96  * \page sam3x_ek_piodef "SAM3X-EK - PIO definitions"\r
97  * This pages lists all the pio definitions. The constants\r
98  * are named using the following convention: PIN_* for a constant which defines\r
99  * a single Pin instance (but may include several PIOs sharing the same\r
100  * controller), and PINS_* for a list of Pin instances.\r
101  *\r
102  */\r
103 \r
104 /**\r
105  * \file\r
106  * ADC\r
107  * - \ref PIN_ADC0_AD1\r
108  * - \ref PINS_ADC\r
109  *\r
110  */\r
111 \r
112 /*! ADC_AD1 pin definition. */\r
113 #define PIN_ADC0_AD1 {PIO_PA3X1_AD1, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT}\r
114 #define PINS_ADC_TRIG  PIO_PA11_IDX\r
115 #define PINS_ADC_TRIG_FLAG  (PIO_PERIPH_B | PIO_DEFAULT)\r
116 /*! Pins ADC */\r
117 #define PINS_ADC PIN_ADC0_AD1\r
118 \r
119 /**\r
120  * \file\r
121  * EBI\r
122  * - \ref PIN_EBI_DATA_BUS\r
123  * - \ref PIN_EBI_NRD\r
124  * - \ref PIN_EBI_NWE\r
125  * - \ref PIN_EBI_NCS0\r
126  * - \ref PIN_EBI_PSRAM_ADDR_BUS\r
127  * - \ref PIN_EBI_PSRAM_NBS\r
128  * - \ref PIN_EBI_A1\r
129  * - \ref PIN_EBI_NCS1\r
130  * - \ref PIN_EBI_LCD_RS\r
131  *\r
132  */\r
133 \r
134 /* ------------------------------------------------------------------------ */\r
135 /* EBI */\r
136 /* ------------------------------------------------------------------------ */\r
137 /*! EBI Data Bus pins */\r
138 #define PIN_EBI_DATA_BUS_D0       PIO_PC2_IDX\r
139 #define PIN_EBI_DATA_BUS_D1       PIO_PC3_IDX\r
140 #define PIN_EBI_DATA_BUS_D2       PIO_PC4_IDX\r
141 #define PIN_EBI_DATA_BUS_D3       PIO_PC5_IDX\r
142 #define PIN_EBI_DATA_BUS_D4       PIO_PC6_IDX\r
143 #define PIN_EBI_DATA_BUS_D5       PIO_PC7_IDX\r
144 #define PIN_EBI_DATA_BUS_D6       PIO_PC8_IDX\r
145 #define PIN_EBI_DATA_BUS_D7       PIO_PC9_IDX\r
146 #define PIN_EBI_DATA_BUS_D8       PIO_PC10_IDX\r
147 #define PIN_EBI_DATA_BUS_D9       PIO_PC11_IDX\r
148 #define PIN_EBI_DATA_BUS_D10      PIO_PC12_IDX\r
149 #define PIN_EBI_DATA_BUS_D11      PIO_PC13_IDX\r
150 #define PIN_EBI_DATA_BUS_D12      PIO_PC14_IDX\r
151 #define PIN_EBI_DATA_BUS_D13      PIO_PC15_IDX\r
152 #define PIN_EBI_DATA_BUS_D14      PIO_PC16_IDX\r
153 #define PIN_EBI_DATA_BUS_D15      PIO_PC17_IDX\r
154 #define PIN_EBI_DATA_BUS_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
155 /*! EBI NRD pin */\r
156 #define PIN_EBI_NRD            PIO_PA29_IDX\r
157 #define PIN_EBI_NRD_FLAGS      (PIO_PERIPH_B | PIO_PULLUP)\r
158 #define PIN_EBI_NRD_MASK       (1 << 29)\r
159 #define PIN_EBI_NRD_PIO        PIOB\r
160 #define PIN_EBI_NRD_ID         ID_PIOB\r
161 #define PIN_EBI_NRD_TYPE       PIO_PERIPH_B\r
162 #define PIN_EBI_NRD_ATTR       PIO_PULLUP\r
163 /*! EBI NWE pin */\r
164 #define PIN_EBI_NWE            PIO_PC18_IDX\r
165 #define PIN_EBI_NWE_FLAGS      (PIO_PERIPH_A | PIO_PULLUP)\r
166 #define PIN_EBI_NWE_MASK       (1 << 18)\r
167 #define PIN_EBI_NWE_PIO        PIOC\r
168 #define PIN_EBI_NWE_ID         ID_PIOC\r
169 #define PIN_EBI_NWE_TYPE       PIO_PERIPH_A\r
170 #define PIN_EBI_NWE_ATTR       PIO_PULLUP\r
171 /*! EBI NCS0 pin */\r
172 #define PIN_EBI_NCS0           PIO_PA6_IDX\r
173 #define PIN_EBI_NCS0_FLAGS     (PIO_PERIPH_B | PIO_PULLUP)\r
174 #define PIN_EBI_NCS0_MASK      (1 << 6)\r
175 #define PIN_EBI_NCS0_PIO       PIOA\r
176 #define PIN_EBI_NCS0_ID        ID_PIOA\r
177 #define PIN_EBI_NCS0_TYPE      PIO_PERIPH_B\r
178 #define PIN_EBI_NCS0_ATTR      PIO_PULLUP\r
179 /*! EBI address bus pins */\r
180 #define PIN_EBI_ADDR_BUS_A0    PIO_PC21_IDX\r
181 #define PIN_EBI_ADDR_BUS_NBS0  PIO_PC21_IDX\r
182 #define PIN_EBI_ADDR_BUS_A1    PIO_PC22_IDX\r
183 #define PIN_EBI_ADDR_BUS_NBS1  PIO_PD10_IDX\r
184 #define PIN_EBI_ADDR_BUS_A2    PIO_PC23_IDX\r
185 #define PIN_EBI_ADDR_BUS_A3    PIO_PC24_IDX\r
186 #define PIN_EBI_ADDR_BUS_A4    PIO_PC25_IDX\r
187 #define PIN_EBI_ADDR_BUS_A5    PIO_PC26_IDX\r
188 #define PIN_EBI_ADDR_BUS_A6    PIO_PC27_IDX\r
189 #define PIN_EBI_ADDR_BUS_A7    PIO_PC28_IDX\r
190 #define PIN_EBI_ADDR_BUS_A8    PIO_PC29_IDX\r
191 #define PIN_EBI_ADDR_BUS_A9    PIO_PC30_IDX\r
192 #define PIN_EBI_ADDR_BUS_A10   PIO_PD0_IDX\r
193 #define PIN_EBI_ADDR_BUS_A11   PIO_PD1_IDX\r
194 #define PIN_EBI_ADDR_BUS_A12   PIO_PD2_IDX\r
195 #define PIN_EBI_ADDR_BUS_A13   PIO_PD3_IDX\r
196 #define PIN_EBI_ADDR_BUS_A14   PIO_PD4_IDX\r
197 #define PIN_EBI_ADDR_BUS_A15   PIO_PD5_IDX\r
198 #define PIN_EBI_ADDR_BUS_A16   PIO_PD6_IDX\r
199 #define PIN_EBI_ADDR_BUS_A17   PIO_PD7_IDX\r
200 #define PIN_EBI_ADDR_BUS_FLAG1 (PIO_PERIPH_A | PIO_PULLUP)\r
201 #define PIN_EBI_ADDR_BUS_A18   PIO_PA25_IDX\r
202 #define PIN_EBI_ADDR_BUS_A19   PIO_PA26_IDX\r
203 #define PIN_EBI_ADDR_BUS_A20   PIO_PA27_IDX\r
204 #define PIN_EBI_ADDR_BUS_FLAG2 (PIO_PERIPH_B | PIO_PULLUP)\r
205 /*! EBI pin for LCD CS */\r
206 #define PIN_EBI_NCS2           PIO_PB24_IDX\r
207 #define PIN_EBI_NCS2_FLAGS     (PIO_PERIPH_B | PIO_PULLUP)\r
208 #define PIN_EBI_NCS2_MASK      (1 << 24)\r
209 #define PIN_EBI_NCS2_PIO       PIOB\r
210 #define PIN_EBI_NCS2_ID        ID_PIOB\r
211 #define PIN_EBI_NCS2_TYPE      PIO_PERIPH_B\r
212 #define PIN_EBI_NCS2_ATTR      PIO_PULLUP\r
213 /*! EBI pin for LCD RS */\r
214 #define PIN_EBI_LCD_RS         PIO_PC22_IDX\r
215 #define PIN_EBI_LCD_RS_FLAGS   (PIO_PERIPH_A | PIO_PULLUP)\r
216 #define PIN_EBI_LCD_RS_MASK    (1 << 22)\r
217 #define PIN_EBI_LCD_RS_PIO     PIOC\r
218 #define PIN_EBI_LCD_RS_ID      ID_PIOC\r
219 #define PIN_EBI_LCD_RS_TYPE    PIO_PERIPH_A\r
220 #define PIN_EBI_LCD_RS_ATTR    PIO_PULLUP\r
221 \r
222 /**\r
223  * \file\r
224  * LEDs\r
225  * - \ref PIN_USER_LED1\r
226  * - \ref PIN_USER_LED2\r
227  * - \ref PIN_USER_LED3\r
228  * - \ref PIN_POWER_LED\r
229  * - \ref PINS_LEDS\r
230  *\r
231  */\r
232 \r
233 /* ------------------------------------------------------------------------ */\r
234 /* LEDS                                                                     */\r
235 /* ------------------------------------------------------------------------ */\r
236 /*! LED #0 pin definition (GREEN). D4 */\r
237 #define PIN_USER_LED1   {PIO_PB13, PIOB, ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}\r
238 /*! LED #1 pin definition (AMBER). D3 */\r
239 #define PIN_USER_LED2   {PIO_PB12, PIOB, ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}\r
240 /*! LED #1 pin definition (BLUE).  D2 */\r
241 #define PIN_USER_LED3   {PIO_PA12, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}\r
242 /*! LED #2 pin definition (RED).   D5 */\r
243 #define PIN_POWER_LED   {PIO_PA13, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}\r
244 \r
245 #define LED_GREEN     0\r
246 #define LED_AMBER     1\r
247 #define LED_BLUE      2\r
248 #define LED_RED       3\r
249 \r
250 /*! List of all LEDs definitions. */\r
251 #define PINS_LEDS   PIN_USER_LED1, PIN_USER_LED2, PIN_USER_LED3, PIN_POWER_LED\r
252 \r
253 /*! LED #0 pin definition (BLUE). */\r
254 #define LED_0_NAME      "blue LED D2"\r
255 #define LED0_GPIO       (PIO_PA12_IDX)\r
256 #define LED0_FLAGS      (PIO_TYPE_PIO_OUTPUT_1 | PIO_DEFAULT)\r
257 \r
258 #define PIN_LED_0       {1 << 12, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}\r
259 #define PIN_LED_0_MASK  (1 << 12)\r
260 #define PIN_LED_0_PIO   PIOA\r
261 #define PIN_LED_0_ID    ID_PIOA\r
262 #define PIN_LED_0_TYPE  PIO_OUTPUT_0\r
263 #define PIN_LED_0_ATTR  PIO_DEFAULT\r
264 \r
265 /*! LED #1 pin definition (GREEN). */\r
266 #define LED_1_NAME      "green LED D4"\r
267 #define LED1_GPIO       (PIO_PB13_IDX)\r
268 #define LED1_FLAGS      (PIO_TYPE_PIO_OUTPUT_1 | PIO_DEFAULT)\r
269 \r
270 #define PIN_LED_1       {1 << 13, PIOB, ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}\r
271 #define PIN_LED_1_MASK  (1 << 13)\r
272 #define PIN_LED_1_PIO   PIOB\r
273 #define PIN_LED_1_ID    ID_PIOB\r
274 #define PIN_LED_1_TYPE  PIO_OUTPUT_1\r
275 #define PIN_LED_1_ATTR  PIO_DEFAULT\r
276 \r
277 /*! LED #2 pin detection (AMBER). */\r
278 #define LED2_GPIO       (PIO_PB12_IDX)\r
279 #define LED2_FLAGS      (PIO_TYPE_PIO_OUTPUT_1 | PIO_DEFAULT)\r
280 \r
281 /*! LED #3 pin detection (power) */\r
282 #define LED3_GPIO       (PIO_PA13_IDX)\r
283 #define LED3_FLAGS      (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)\r
284 \r
285 /**\r
286  * \file\r
287  * Push buttons\r
288  * - \ref PIN_PB_LEFT_CLICK\r
289  * - \ref PIN_PB_RIGHT_CLICK\r
290  * - \ref PINS_PUSHBUTTONS\r
291  * - \ref PUSHBUTTON_BP1\r
292  * - \ref PUSHBUTTON_BP2\r
293  *\r
294  */\r
295 \r
296 /* ------------------------------------------------------------------------ */\r
297 /* PUSHBUTTONS                                                              */\r
298 /* ------------------------------------------------------------------------ */\r
299 \r
300 /** Push button LEFT CLICK definition.\r
301  *  Attributes = pull-up + debounce + interrupt on falling edge. */\r
302 #define PIN_PB_LEFT_CLICK    {PIO_PE7, PIOE, ID_PIOE, PIO_INPUT,\\r
303         PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}\r
304 \r
305 /** Push button RIGHT CLICK definition.\r
306  *  Attributes = pull-up + debounce + interrupt on falling edge. */\r
307 #define PIN_PB_RIGHT_CLICK    {PIO_PB23, PIOB, ID_PIOB, PIO_INPUT,\\r
308         PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}\r
309 \r
310 /*! List of all push button definitions. */\r
311 #define PINS_PUSHBUTTONS    PIN_PB_LEFT_CLICK, PIN_PB_RIGHT_CLICK\r
312 \r
313 /*! Push button #1 index. */\r
314 #define PUSHBUTTON_BP1   0\r
315 /*! Push button #2 index. */\r
316 #define PUSHBUTTON_BP2   1\r
317 \r
318 /*! Push button LEFT CLICK index. */\r
319 #define PUSHBUTTON_LEFT     0\r
320 /*! Push button RIGHT CLICK index. */\r
321 #define PUSHBUTTON_RIGHT    1\r
322 \r
323 /** Push button #0 definition.\r
324  *  Attributes = pull-up + debounce + interrupt on rising edge. */\r
325 #define PUSHBUTTON_1_NAME    "LEFT CLICK"\r
326 #define GPIO_PUSH_BUTTON_1           (PIO_PE7_IDX)\r
327 #define GPIO_PUSH_BUTTON_1_FLAGS\\r
328         (PIO_INPUT | PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_RISE_EDGE)\r
329 \r
330 #define PIN_PUSHBUTTON_1    {PIO_PE7, PIOE, ID_PIOE, PIO_INPUT,\\r
331         PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}\r
332 #define PIN_PUSHBUTTON_1_MASK PIO_PE7\r
333 #define PIN_PUSHBUTTON_1_PIO PIOE\r
334 #define PIN_PUSHBUTTON_1_ID ID_PIOE\r
335 #define PIN_PUSHBUTTON_1_TYPE PIO_INPUT\r
336 #define PIN_PUSHBUTTON_1_ATTR (PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_RISE_EDGE)\r
337 \r
338 /** Push button #1 definition.\r
339  *  Attributes = pull-up + debounce + interrupt on falling edge. */\r
340 #define PUSHBUTTON_2_NAME    "RIGHT CLICK"\r
341 #define GPIO_PUSH_BUTTON_2           (PIO_PB23_IDX)\r
342 #define GPIO_PUSH_BUTTON_2_FLAGS\\r
343         (PIO_INPUT | PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE)\r
344 \r
345 #define PIN_PUSHBUTTON_2    {PIO_PB23, PIOB, ID_PIOB, PIO_INPUT,\\r
346         PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE}\r
347 #define PIN_PUSHBUTTON_2_MASK PIO_PB23\r
348 #define PIN_PUSHBUTTON_2_PIO PIOB\r
349 #define PIN_PUSHBUTTON_2_ID ID_PIOB\r
350 #define PIN_PUSHBUTTON_2_TYPE PIO_INPUT\r
351 #define PIN_PUSHBUTTON_2_ATTR (PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_FALL_EDGE)\r
352 \r
353 #define PIN_TC0_TIOA0           (PIO_PB25_IDX)\r
354 #define PIN_TC0_TIOA0_FLAGS     (PIO_PERIPH_B | PIO_DEFAULT)\r
355 \r
356 #define PIN_TC0_TIOA1           (PIO_PA2_IDX)\r
357 #define PIN_TC0_TIOA1_FLAGS     (PIO_PERIPH_A | PIO_DEFAULT)\r
358 \r
359 #define PIN_TC0_TIOA1_PIO     PIOA\r
360 #define PIN_TC0_TIOA1_MASK    PIO_PA2\r
361 #define PIN_TC0_TIOA1_ID      ID_PIOA\r
362 #define PIN_TC0_TIOA1_TYPE    PIO_PERIPH_A\r
363 #define PIN_TC0_TIOA1_ATTR    PIO_DEFAULT\r
364 \r
365 #define PIN_TC0_TIOA2         (PIO_PA5_IDX)\r
366 #define PIN_TC0_TIOA2_FLAGS   (PIO_INPUT | PIO_DEFAULT)\r
367 \r
368 #define PIN_TC0_TIOA2_PIO     PIOA\r
369 #define PIN_TC0_TIOA2_MASK    PIO_PA5\r
370 #define PIN_TC0_TIOA2_ID      ID_PIOA\r
371 #define PIN_TC0_TIOA2_TYPE    PIO_INPUT\r
372 #define PIN_TC0_TIOA2_ATTR    PIO_DEFAULT\r
373 \r
374 /**\r
375  * \file\r
376  * PWMC\r
377  * - \ref PIN_PWMC_PWMH0\r
378  * - \ref PIN_PWMC_PWML0\r
379  * - \ref PIN_PWMC_PWMH1\r
380  * - \ref PIN_PWMC_PWML1\r
381  * - \ref PIN_PWMC_PWMH2\r
382  * - \ref PIN_PWMC_PWML2\r
383  * - \ref PIN_PWMC_PWMH3\r
384  * - \ref PIN_PWMC_PWML3\r
385  * - \ref PIN_PWM_LED0\r
386  * - \ref PIN_PWM_LED1\r
387  * - \ref PIN_PWM_LED2\r
388  * - \ref CHANNEL_PWM_LED0\r
389  * - \ref CHANNEL_PWM_LED1\r
390  * - \ref CHANNEL_PWM_LED2\r
391  *\r
392  */\r
393 \r
394 /* ------------------------------------------------------------------------ */\r
395 /* PWM                                                                      */\r
396 /* ------------------------------------------------------------------------ */\r
397 /*! PWMC PWM0 pin definition: Output High. */\r
398 #define PIN_PWMC_PWMH0\\r
399         {PIO_PB12B_PWMH0, PIOB, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT}\r
400 #define PIN_PWMC_PWMH0_TRIG   PIO_PB12_IDX\r
401 #define PIN_PWMC_PWMH0_TRIG_FLAG   PIO_PERIPH_B | PIO_DEFAULT\r
402 /*! PWMC PWM0 pin definition: Output Low. */\r
403 #define PIN_PWMC_PWML0\\r
404         {PIO_PA21B_PWML0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}\r
405 /*! PWMC PWM1 pin definition: Output High. */\r
406 #define PIN_PWMC_PWMH1\\r
407         {PIO_PB13B_PWMH1, PIOB, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT}\r
408 /*! PWMC PWM1 pin definition: Output Low. */\r
409 #define PIN_PWMC_PWML1\\r
410         {PIO_PB17B_PWML1, PIOB, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT}\r
411 /*! PWMC PWM2 pin definition: Output High. */\r
412 #define PIN_PWMC_PWMH2\\r
413         {PIO_PA13B_PWMH2, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}\r
414 /*! PWMC PWM2 pin definition: Output Low. */\r
415 #define PIN_PWMC_PWML2\\r
416         {PIO_PA20B_PWML2, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}\r
417 /*! PWMC PWM3 pin definition: Output High. */\r
418 #define PIN_PWMC_PWMH3\\r
419         {PIO_PA9B_PWMH3, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}\r
420 /*! PWMC PWM3 pin definition: Output Low. */\r
421 #define PIN_PWMC_PWML3\\r
422         {PIO_PC8B_PWML3, PIOC, ID_PIOC, PIO_PERIPH_B, PIO_DEFAULT}\r
423 /*! PWM pins definition for LED0 */\r
424 #define PIN_PWM_LED0 PIN_PWMC_PWMH0, PIN_PWMC_PWML0\r
425 /*! PWM pins definition for LED1 */\r
426 #define PIN_PWM_LED1 PIN_PWMC_PWMH1, PIN_PWMC_PWML1\r
427 /*! PWM pins definition for LED2 */\r
428 #define PIN_PWM_LED2 PIN_PWMC_PWMH2, PIN_PWMC_PWML2\r
429 /*! PWM channel for LED0 */\r
430 #define CHANNEL_PWM_LED0 0\r
431 /*! PWM channel for LED1 */\r
432 #define CHANNEL_PWM_LED1 1\r
433 /*! PWM channel for LED2 */\r
434 #define CHANNEL_PWM_LED2 2\r
435 \r
436 /*! PWM LED0 pin definitions. */\r
437 #define PIN_PWM_LED0_GPIO    PIO_PB13_IDX\r
438 #define PIN_PWM_LED0_FLAGS   (PIO_PERIPH_B | PIO_DEFAULT)\r
439 #define PIN_PWM_LED0_CHANNEL PWM_CHANNEL_1\r
440 \r
441 /*! PWM LED1 pin definitions. */\r
442 #define PIN_PWM_LED1_GPIO    PIO_PB12_IDX\r
443 #define PIN_PWM_LED1_FLAGS   (PIO_PERIPH_B | PIO_DEFAULT)\r
444 #define PIN_PWM_LED1_CHANNEL PWM_CHANNEL_0\r
445 \r
446 /*! PWM LED2 pin definitions. */\r
447 #define PIN_PWM_LED2_GPIO    PIO_PA12_IDX\r
448 #define PIN_PWM_LED2_FLAGS   (PIO_PERIPH_B | PIO_DEFAULT)\r
449 \r
450 /**\r
451  * \file\r
452  * SPI\r
453  * - \ref PIN_SPI_MISO\r
454  * - \ref PIN_SPI_MOSI\r
455  * - \ref PIN_SPI_SPCK\r
456  * - \ref PINS_SPI\r
457  * - \ref PIN_SPI_NPCS0\r
458  * - \ref PIN_SPI1_MISO\r
459  * - \ref PIN_SPI1_MOSI\r
460  * - \ref PIN_SPI1_SPCK\r
461  * - \ref PINS_SPI1\r
462  * - \ref PIN_SPI1_NPCS0\r
463  *\r
464  */\r
465 \r
466 /* ------------------------------------------------------------------------ */\r
467 /* SPI                                                                      */\r
468 /* ------------------------------------------------------------------------ */\r
469 /*! SPI MISO pin definition. */\r
470 #define PIN_SPI0_MISO\\r
471         {PIO_PA25A_SPI0_MISO, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
472 /*! SPI MOSI pin definition. */\r
473 #define PIN_SPI0_MOSI\\r
474         {PIO_PA26A_SPI0_MOSI, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
475 /*! SPI SPCK pin definition. */\r
476 #define PIN_SPI0_SPCK\\r
477         {PIO_PA27A_SPI0_SPCK, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
478 /*! SPI chip select pin definition. */\r
479 #define PIN_SPI0_NPCS0\\r
480         {PIO_PA28A_SPI0_NPCS0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
481 /*! List of SPI pin definitions (MISO, MOSI & SPCK). */\r
482 #define PINS_SPI0        PIN_SPI0_MISO, PIN_SPI0_MOSI, PIN_SPI0_SPCK\r
483 \r
484 /*! SPI0 MISO pin definition. */\r
485 #define SPI0_MISO_GPIO        (PIO_PA25_IDX)\r
486 #define SPI0_MISO_FLAGS       (PIO_PERIPH_A | PIO_DEFAULT)\r
487 /*! SPI0 MOSI pin definition. */\r
488 #define SPI0_MOSI_GPIO        (PIO_PA26_IDX)\r
489 #define SPI0_MOSI_FLAGS       (PIO_PERIPH_A | PIO_DEFAULT)\r
490 /*! SPI0 SPCK pin definition. */\r
491 #define SPI0_SPCK_GPIO        (PIO_PA27_IDX)\r
492 #define SPI0_SPCK_FLAGS       (PIO_PERIPH_A | PIO_DEFAULT)\r
493 \r
494 /*! SPI0 chip select 0 pin definition. (Only one configuration is possible) */\r
495 #define SPI0_NPCS0_GPIO            (PIO_PA28_IDX)\r
496 #define SPI0_NPCS0_FLAGS           (PIO_PERIPH_A | PIO_DEFAULT)\r
497 /*! SPI0 chip select 1 pin definition. (multiple configurations are possible) */\r
498 #define SPI0_NPCS1_PA29_GPIO       (PIO_PA29_IDX)\r
499 #define SPI0_NPCS1_PA29_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
500 #define SPI0_NPCS1_PB20_GPIO       (PIO_PB20_IDX)\r
501 #define SPI0_NPCS1_PB20_FLAGS      (PIO_PERIPH_B | PIO_DEFAULT)\r
502 /*! SPI0 chip select 2 pin definition. (multiple configurations are possible) */\r
503 #define SPI0_NPCS2_PA30_GPIO       (PIO_PA30_IDX)\r
504 #define SPI0_NPCS2_PA30_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
505 #define SPI0_NPCS2_PB21_GPIO       (PIO_PB21_IDX)\r
506 #define SPI0_NPCS2_PB21_FLAGS      (PIO_PERIPH_B | PIO_DEFAULT)\r
507 /*! SPI0 chip select 3 pin definition. (multiple configurations are possible) */\r
508 #define SPI0_NPCS3_PA31_GPIO       (PIO_PA31_IDX)\r
509 #define SPI0_NPCS3_PA31_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
510 #define SPI0_NPCS3_PB23_GPIO       (PIO_PB23_IDX)\r
511 #define SPI0_NPCS3_PB23_FLAGS      (PIO_PERIPH_B | PIO_DEFAULT)\r
512 \r
513 /*! SPI1 MISO pin definition. */\r
514 #define PIN_SPI1_MISO\\r
515         {PIO_PE28A_SPI1_MISO, PIOE, ID_PIOE, PIO_PERIPH_A, PIO_DEFAULT}\r
516 /*! SPI1 MOSI pin definition. */\r
517 #define PIN_SPI1_MOSI\\r
518         {PIO_PE29A_SPI1_MOSI, PIOE, ID_PIOE, PIO_PERIPH_A, PIO_DEFAULT}\r
519 /*! SPI1 SPCK pin definition. */\r
520 #define PIN_SPI1_SPCK\\r
521         {PIO_PE30A_SPI1_SPCK, PIOE, ID_PIOE, PIO_PERIPH_A, PIO_DEFAULT}\r
522 /*! SPI1 chip select pin definition. */\r
523 #define PIN_SPI1_NPCS0\\r
524         {PIO_PE31A_SPI1_NPCS0, PIOE, ID_PIOE, PIO_PERIPH_A, PIO_DEFAULT}\r
525 /*! List of SPI1 pin definitions (MISO, MOSI & SPCK). */\r
526 #define PINS_SPI1        PIN_SPI1_MISO, PIN_SPI1_MOSI, PIN_SPI1_SPCK\r
527 \r
528 /*! SPI1 MISO pin definition. */\r
529 #define SPI1_MISO_GPIO             (PIO_PE28_IDX)\r
530 #define SPI1_MISO_FLAGS            (PIO_PERIPH_A | PIO_DEFAULT)\r
531 /*! SPI1 MOSI pin definition. */\r
532 #define SPI1_MOSI_GPIO             (PIO_PE29_IDX)\r
533 #define SPI1_MOSI_FLAGS            (PIO_PERIPH_A | PIO_DEFAULT)\r
534 /*! SPI1 SPCK pin definition. */\r
535 #define SPI1_SPCK_GPIO             (PIO_PE30_IDX)\r
536 #define SPI1_SPCK_FLAGS            (PIO_PERIPH_A | PIO_DEFAULT)\r
537 /*! SPI1 chip select 0 pin definition. (Only one configuration is possible) */\r
538 #define SPI1_NPCS0_GPIO            (PIO_PE31_IDX)\r
539 #define SPI1_NPCS0_FLAGS           (PIO_PERIPH_A | PIO_DEFAULT)\r
540 /*! SPI1 chip select 1 pin definition. (Only one configuration is possible) */\r
541 #define SPI1_NPCS1_GPIO            (PIO_PF0_IDX)\r
542 #define SPI1_NPCS1_FLAGS           (PIO_PERIPH_A | PIO_DEFAULT)\r
543 /*! SPI1 chip select 2 pin definition. (Only one configuration is possible) */\r
544 #define SPI1_NPCS2_GPIO            (PIO_PF1_IDX)\r
545 #define SPI1_NPCS2_FLAGS           (PIO_PERIPH_A | PIO_DEFAULT)\r
546 /*! SPI1 chip select 3 pin definition. (Only one configuration is possible) */\r
547 #define SPI1_NPCS3_GPIO            (PIO_PF2_IDX)\r
548 #define SPI1_NPCS3_FLAGS           (PIO_PERIPH_A | PIO_DEFAULT)\r
549 \r
550 /**\r
551  * \file\r
552  * SSC\r
553  * - \ref PIN_SSC_TD\r
554  * - \ref PIN_SSC_TK\r
555  * - \ref PIN_SSC_TF\r
556  * - \ref PINS_SSC_CODEC\r
557  *\r
558  */\r
559 \r
560 /* ------------------------------------------------------------------------ */\r
561 /* SSC                                                                      */\r
562 /* ------------------------------------------------------------------------ */\r
563 /*! SSC pin Transmitter Data (TD) */\r
564 #define PIN_SSC_TD      {PIO_PA16B_TD, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}\r
565 /*! SSC pin Transmitter Clock (TK) */\r
566 #define PIN_SSC_TK      {PIO_PA14B_TK, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}\r
567 /*! SSC pin Transmitter FrameSync (TF) */\r
568 #define PIN_SSC_TF      {PIO_PA15B_TF, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}\r
569 \r
570 /*! SSC pin Receiver Data (RD) */\r
571 #define PIN_SSC_RD      {PIO_PB18A_RD, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
572 /*! SSC pin Receiver Clock (RK) */\r
573 #define PIN_SSC_RK      {PIO_PB19A_RK, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
574 /*! SSC pin Receiver FrameSync (RF) */\r
575 #define PIN_SSC_RF      {PIO_PB17A_RF, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
576 \r
577 /*! SSC pins definition for codec. */\r
578 #define PINS_SSC_CODEC  PIN_SSC_TD, PIN_SSC_TK, PIN_SSC_TF,\\r
579         PIN_SSC_RD, PIN_SSC_RK, PIN_SSC_RF\r
580 \r
581 /**\r
582  * \file\r
583  * PCK0\r
584  * - \ref PIN_PCK0\r
585  *\r
586  */\r
587 \r
588 /* ------------------------------------------------------------------------ */\r
589 /* PCK                                                                      */\r
590 /* ------------------------------------------------------------------------ */\r
591 /*! PCK0 */\r
592 #define PIN_PCK0        (PIO_PB22_IDX)\r
593 #define PIN_PCK0_FLAGS  (PIO_PERIPH_B | PIO_DEFAULT)\r
594 \r
595 #define PIN_PCK_0_MASK  PIO_PB22\r
596 #define PIN_PCK_0_PIO   PIOB\r
597 #define PIN_PCK_0_ID    ID_PIOB\r
598 #define PIN_PCK_0_TYPE  PIO_PERIPH_B\r
599 #define PIN_PCK_0_ATTR  PIO_DEFAULT\r
600 \r
601 /**\r
602  * \file\r
603  * HSMCI\r
604  * - \ref PINS_HSMCI\r
605  *\r
606  */\r
607 \r
608 /* ------------------------------------------------------------------------ */\r
609 /* HSMCI                                                                      */\r
610 /* ------------------------------------------------------------------------ */\r
611 /*! HSMCI pins definition. */\r
612 #define PINS_HSMCI\\r
613         { PIO_PA20A_MCCDA | PIO_PA19A_MCCK | PIO_PA21A_MCDA0 | PIO_PA22A_MCDA1\\r
614         | PIO_PA23A_MCDA2 | PIO_PA24A_MCDA3,\\r
615         PIOA, ID_PIOA, PIO_PERIPH_A, PIO_PULLUP },\\r
616         { PIO_PD0B_MCDA4 | PIO_PD1B_MCDA5 | PIO_PD2B_MCDA6 | PIO_PD3B_MCDA7,\\r
617         PIOD, ID_PIOD, PIO_PERIPH_B, PIO_PULLUP},\\r
618         { PIO_PE20B_MCCDB | PIO_PE22B_MCDB0 | PIO_PE24B_MCDB1 | PIO_PE26B_MCDB2\\r
619         | PIO_PE27B_MCDB3,\\r
620         PIOE, ID_PIOE, PIO_PERIPH_B, PIO_PULLUP }\r
621 /*! HSMCI pin Card Detect. */\r
622 #define PIN_HSMCI_CD {PIO_PE6, PIOE, ID_PIOE, PIO_INPUT, PIO_PULLUP}\r
623 \r
624 /**\r
625  * \file\r
626  * UART\r
627  * - \ref PINS_UART\r
628  *\r
629  */\r
630 \r
631 /* ------------------------------------------------------------------------ */\r
632 /* UART                                                                     */\r
633 /* ------------------------------------------------------------------------ */\r
634 /*! UART pins (UTXD0 and URXD0) definitions, PA8,9. */\r
635 #define PINS_UART        (PIO_PA8A_URXD | PIO_PA9A_UTXD)\r
636 #define PINS_UART_FLAGS  (PIO_PERIPH_A | PIO_DEFAULT)\r
637 \r
638 #define PINS_UART_MASK (PIO_PA8A_URXD | PIO_PA9A_UTXD)\r
639 #define PINS_UART_PIO  PIOA\r
640 #define PINS_UART_ID   ID_PIOA\r
641 #define PINS_UART_TYPE PIO_PERIPH_A\r
642 #define PINS_UART_ATTR PIO_DEFAULT\r
643 \r
644 /**\r
645  * \file\r
646  * USART0\r
647  * - \ref PIN_USART0_RXD\r
648  * - \ref PIN_USART0_TXD\r
649  * - \ref PIN_USART0_CTS\r
650  * - \ref PIN_USART0_RTS\r
651  * - \ref PIN_USART0_SCK\r
652  *\r
653  * - \ref PIN_USART0_EN\r
654  */\r
655 \r
656 /* ------------------------------------------------------------------------ */\r
657 /* USART0                                                                   */\r
658 /* ------------------------------------------------------------------------ */\r
659 /*! USART0 pin RX */\r
660 #define PIN_USART0_RXD\\r
661         {PIO_PA10A_RXD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
662 #define PIN_USART0_RXD_IDX        (PIO_PA10_IDX)\r
663 #define PIN_USART0_RXD_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
664 /*! USART0 pin TX */\r
665 #define PIN_USART0_TXD\\r
666         {PIO_PA11A_TXD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
667 #define PIN_USART0_TXD_IDX        (PIO_PA11_IDX)\r
668 #define PIN_USART0_TXD_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
669 /*! USART0 pin CTS */\r
670 #define PIN_USART0_CTS\\r
671         {PIO_PB26A_CTS0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
672 #define PIN_USART0_CTS_IDX        (PIO_PB26_IDX)\r
673 #define PIN_USART0_CTS_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
674 /*! USART0 pin RTS */\r
675 #define PIN_USART0_RTS\\r
676         {PIO_PB25A_RTS0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
677 #define PIN_USART0_RTS_IDX        (PIO_PB25_IDX)\r
678 #define PIN_USART0_RTS_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
679 /*! USART0 pin SCK */\r
680 #define PIN_USART0_SCK\\r
681         {PIO_PA17B_SCK0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}\r
682 #define PIN_USART0_SCK_IDX        (PIO_PA17_IDX)\r
683 #define PIN_USART0_SCK_FLAGS      (PIO_PERIPH_B | PIO_DEFAULT)\r
684 \r
685 /*! USART0 pin ENABLE */\r
686 #define PIN_USART0_EN\\r
687         {PIO_PE14, PIOE, ID_PIOE, PIO_OUTPUT_0, PIO_DEFAULT}\r
688 #define PIN_USART0_EN_IDX         (PIO_PE14_IDX)\r
689 #define PIN_USART0_EN_FLAGS       (PIO_OUTPUT_0 | PIO_DEFAULT)\r
690 \r
691 /**\r
692  * \file\r
693  * USART1\r
694  * - \ref PIN_USART1_RXD\r
695  * - \ref PIN_USART1_TXD\r
696  * - \ref PIN_USART1_CTS\r
697  * - \ref PIN_USART1_RTS\r
698  * - \ref PIN_USART1_SCK\r
699  *\r
700  */\r
701 \r
702 /* ------------------------------------------------------------------------ */\r
703 /* USART1                                                                   */\r
704 /* ------------------------------------------------------------------------ */\r
705 /*! USART1 pin RX */\r
706 #define PIN_USART1_RXD\\r
707         {PIO_PA12A_RXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
708 #define PIN_USART1_RXD_IDX        (PIO_PA12_IDX)\r
709 #define PIN_USART1_RXD_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
710 /*! USART1 pin TX */\r
711 #define PIN_USART1_TXD\\r
712         {PIO_PA13A_TXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
713 #define PIN_USART1_TXD_IDX        (PIO_PA13_IDX)\r
714 #define PIN_USART1_TXD_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
715 /*! USART1 pin CTS */\r
716 #define PIN_USART1_CTS\\r
717         {PIO_PA15A_CTS1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
718 #define PIN_USART1_CTS_IDX        (PIO_PA15_IDX)\r
719 #define PIN_USART1_CTS_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
720 /*! USART1 pin RTS */\r
721 #define PIN_USART1_RTS\\r
722         {PIO_PA14A_RTS1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
723 #define PIN_USART1_RTS_IDX        (PIO_PA14_IDX)\r
724 #define PIN_USART1_RTS_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
725 /*! USART1 pin SCK */\r
726 #define PIN_USART1_SCK\\r
727         {PIO_PA16A_SCK1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
728 #define PIN_USART1_SCK_IDX        (PIO_PA16_IDX)\r
729 #define PIN_USART1_SCK_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
730 \r
731 /**\r
732  * \file\r
733  * USART3\r
734  * - \ref PIN_USART3_RXD\r
735  * - \ref PIN_USART3_TXD\r
736  * - \ref PIN_USART3_CTS\r
737  * - \ref PIN_USART3_RTS\r
738  * - \ref PIN_USART3_SCK\r
739  *\r
740  */\r
741 \r
742 /* ------------------------------------------------------------------------ */\r
743 /* USART3                                                                   */\r
744 /* ------------------------------------------------------------------------ */\r
745 /*! USART1 pin RX */\r
746 #define PIN_USART3_RXD\\r
747         {PIO_PD5B_RXD3, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}\r
748 #define PIN_USART3_RXD_IDX        (PIO_PD5_IDX)\r
749 #define PIN_USART3_RXD_FLAGS      (PIO_PERIPH_B | PIO_DEFAULT)\r
750 /*! USART1 pin TX */\r
751 #define PIN_USART3_TXD\\r
752         {PIO_PD4B_TXD3, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}\r
753 #define PIN_USART3_TXD_IDX        (PIO_PD4_IDX)\r
754 #define PIN_USART3_TXD_FLAGS      (PIO_PERIPH_B | PIO_DEFAULT)\r
755 /*! USART1 pin CTS */\r
756 #define PIN_USART3_CTS\\r
757         {PIO_PF4A_CTS3, PIOF, ID_PIOF, PIO_PERIPH_A, PIO_DEFAULT}\r
758 #define PIN_USART3_CTS_IDX        (PIO_PF4_IDX)\r
759 #define PIN_USART3_CTS_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
760 /*! USART1 pin RTS */\r
761 #define PIN_USART3_RTS\\r
762         {PIO_PF5A_RTS3, PIOF, ID_PIOF, PIO_PERIPH_A, PIO_DEFAULT}\r
763 #define PIN_USART3_RTS_IDX        (PIO_PF5_IDX)\r
764 #define PIN_USART3_RTS_FLAGS      (PIO_PERIPH_A | PIO_DEFAULT)\r
765 /*! USART1 pin SCK */\r
766 #define PIN_USART3_SCK\\r
767         {PIO_PE16B_SCK3, PIOE, ID_PIOE, PIO_PERIPH_B, PIO_DEFAULT}\r
768 #define PIN_USART3_SCK_IDX        (PIO_PE16_IDX)\r
769 #define PIN_USART3_SCK_FLAGS      (PIO_PERIPH_B | PIO_DEFAULT)\r
770 \r
771 /**\r
772  * \file\r
773  * USB\r
774  * - \ref PIN_USBOTG_VBOF\r
775  * - \ref PIN_USB_FAULT\r
776  *\r
777  */\r
778 \r
779 /* ------------------------------------------------------------------------ */\r
780 /* USB                                                                      */\r
781 /* ------------------------------------------------------------------------ */\r
782 /*! USB OTG VBus On/Off: Bus Power Control Port. */\r
783 #define PIN_UOTGHS_VBOF  { PIO_PB10, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_PULLUP }\r
784 /*! USB OTG Identification: Mini Connector Identification Port. */\r
785 #define PIN_UOTGHS_ID    { PIO_PB11, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_PULLUP }\r
786 /*! USB Fault monitoring pin definition. */\r
787 #define PIN_UOTGHS_FAULT { PIO_PE5, PIOE, ID_PIOE, PIO_INPUT, PIO_PULLUP }\r
788 \r
789 /*! Multiplexed pin used for USB ID pin: */\r
790 #define USB_ID_GPIO                 (PIO_PB11_IDX)\r
791 #define USB_ID_FLAGS                (PIO_PERIPH_A | PIO_PULLUP)\r
792 /*! Multiplexed pin used for USB_VBOF: */\r
793 #define USB_VBOF_GPIO               (PIO_PB10_IDX)\r
794 #define USB_VBOF_FLAGS              (PIO_PERIPH_A | PIO_DEFAULT)\r
795 /*! Active level of the USB_VBOF output pin. */\r
796 #define USB_VBOF_ACTIVE_LEVEL       LOW\r
797 /*! USB overcurrent detection pin. */\r
798 #define USB_OVERCURRENT_DETECT_PIN     PIO_PE5_IDX\r
799 #define USB_OVERCURRENT_DETECT_GPIO    (PIO_PE5_IDX)\r
800 #define USB_OVERCURRENT_DETECT_FLAGS   (PIO_INPUT | PIO_PULLUP)\r
801 \r
802 /* ------------------------------------------------------------------------ */\r
803 \r
804 /**\r
805  * \page sam3x_ek_usb "SAM3X-EK - USB device"\r
806  *\r
807  * \section Definitions\r
808  * - \ref BOARD_USB_BMATTRIBUTES\r
809  * - \ref CHIP_USB_UDP\r
810  * - \ref CHIP_USB_PULLUP_INTERNAL\r
811  * - \ref CHIP_USB_NUMENDPOINTS\r
812  * - \ref CHIP_USB_ENDPOINTS_MAXPACKETSIZE\r
813  * - \ref CHIP_USB_ENDPOINTS_BANKS\r
814  */\r
815 \r
816 /*! USB attributes configuration descriptor (bus or self powered, remote wakeup) */\r
817 #define BOARD_USB_BMATTRIBUTES\\r
818         USBConfigurationDescriptor_SELFPOWERED_RWAKEUP\r
819 \r
820 /*! Indicates chip has an internal pull-up. */\r
821 #define CHIP_USB_PULLUP_INTERNAL\r
822 \r
823 /*! Number of USB endpoints */\r
824 #define CHIP_USB_NUMENDPOINTS 10\r
825 \r
826 /*! Endpoints max packet size */\r
827 #define CHIP_USB_ENDPOINTS_MAXPACKETSIZE(i)\\r
828         ((i == 0) ? 64 : 1024)\r
829 \r
830 /*! Endpoints Number of Bank */\r
831 #define CHIP_USB_ENDPOINTS_BANKS(i)\\r
832         ((i == 0) ? 1 :\\r
833         ((i == 1) ? 3 :\\r
834         ((i == 2) ? 3 : 2)))\r
835 \r
836 /**\r
837  * \file\r
838  * CAN\r
839  * \ref PIN_CAN0_TRANSCEIVER_RXEN\r
840  * \ref PIN_CAN0_TRANSCEIVER_RS\r
841  * \ref PIN_CAN0_TXD\r
842  * \ref PIN_CAN0_RXD\r
843  * \ref PINS_CAN0\r
844  *\r
845  * \ref PIN_CAN1_TRANSCEIVER_RXEN\r
846  * \ref PIN_CAN1_TRANSCEIVER_RS\r
847  * \ref PIN_CAN1_TXD\r
848  * \ref PIN_CAN1_RXD\r
849  * \ref PINS_CAN1\r
850  */\r
851 \r
852 /* ------------------------------------------------------------------------ */\r
853 /* CAN                                                                      */\r
854 /* ------------------------------------------------------------------------ */\r
855 \r
856 /*! CAN0 RXEN: Select input for high speed mode or ultra low current sleep mode */\r
857 #define PIN_CAN0_TRANSCEIVER_RXEN\\r
858         { PIO_PB21, PIOB, ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT }\r
859 \r
860 /*! CAN0 RS: Select input for high speed mode or low-current standby mode */\r
861 #define PIN_CAN0_TRANSCEIVER_RS\\r
862         { PIO_PB20, PIOB, ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT }\r
863 \r
864 /*! CAN0 TXD: Transmit data input */\r
865 #define PIN_CAN0_TXD\\r
866         { PIO_PA0A_CANTX0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT }\r
867 \r
868 /*! CAN0 RXD: Receive data output */\r
869 #define PIN_CAN0_RXD\\r
870         { PIO_PA1A_CANRX0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT }\r
871 \r
872 /*! List of all CAN0 definitions. */\r
873 #define PINS_CAN0    PIN_CAN0_TXD, PIN_CAN0_RXD\r
874 \r
875 /** CAN0 transceiver PIN RS. */\r
876 #define PIN_CAN0_TR_RS_IDX        PIO_PB20_IDX\r
877 #define PIN_CAN0_TR_RS_FLAGS      (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)\r
878 \r
879 /** CAN0 transceiver PIN EN. */\r
880 #define PIN_CAN0_TR_EN_IDX        PIO_PB21_IDX\r
881 #define PIN_CAN0_TR_EN_FLAGS      (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)\r
882 \r
883 /** CAN0 PIN RX. */\r
884 #define PIN_CAN0_RX_IDX           (PIO_PA1_IDX)\r
885 #define PIN_CAN0_RX_FLAGS         (PIO_PERIPH_A | PIO_DEFAULT)\r
886 \r
887 /** CAN0 PIN TX. */\r
888 #define PIN_CAN0_TX_IDX           (PIO_PA0_IDX)\r
889 #define PIN_CAN0_TX_FLAGS         (PIO_PERIPH_A | PIO_DEFAULT)\r
890 \r
891 /*! CAN1 RXEN: Select input for high speed mode or ultra low current sleep mode */\r
892 #define PIN_CAN1_TRANSCEIVER_RXEN\\r
893         { PIO_PE16, PIOE, ID_PIOE, PIO_OUTPUT_1, PIO_DEFAULT }\r
894 \r
895 /*! CAN1 RS: Select input for high speed mode or low-current standby mode */\r
896 #define PIN_CAN1_TRANSCEIVER_RS\\r
897         { PIO_PE15, PIOE, ID_PIOE, PIO_OUTPUT_0, PIO_DEFAULT }\r
898 \r
899 /*! CAN1 TXD: Transmit data input */\r
900 #define PIN_CAN1_TXD\\r
901         { PIO_PB14A_CANTX1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT }\r
902 \r
903 /*! CAN1 RXD: Receive data output */\r
904 #define PIN_CAN1_RXD\\r
905         { PIO_PB15A_CANRX1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT }\r
906 \r
907 /*! List of all CAN1 definitions. */\r
908 #define PINS_CAN1    PIN_CAN1_TXD, PIN_CAN1_RXD\r
909 \r
910 /** CAN1 transceiver PIN RS. */\r
911 #define PIN_CAN1_TR_RS_IDX        PIO_PE15_IDX\r
912 #define PIN_CAN1_TR_RS_FLAGS      (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)\r
913 \r
914 /** CAN1 transceiver PIN EN. */\r
915 #define PIN_CAN1_TR_EN_IDX        PIO_PE16_IDX\r
916 #define PIN_CAN1_TR_EN_FLAGS      (PIO_TYPE_PIO_OUTPUT_0 | PIO_DEFAULT)\r
917 \r
918 /** CAN1 PIN RX. */\r
919 #define PIN_CAN1_RX_IDX           (PIO_PB15_IDX)\r
920 #define PIN_CAN1_RX_FLAGS         (PIO_PERIPH_A | PIO_DEFAULT)\r
921 \r
922 /** CAN1 PIN TX. */\r
923 #define PIN_CAN1_TX_IDX           (PIO_PB14_IDX)\r
924 #define PIN_CAN1_TX_FLAGS         (PIO_PERIPH_A | PIO_DEFAULT)\r
925 \r
926 /**\r
927  * \file\r
928  * QTouch\r
929  * PIO definitions for Slider\r
930  * \ref SLIDER_IOMASK_SNS\r
931  * \ref SLIDER_IOMASK_SNSK\r
932  * \ref PINS_SLIDER_SNS\r
933  * \ref PINS_SLIDER_SNSK\r
934  *\r
935  * PIO definitions for keys\r
936  * \ref KEY_IOMASK_SNS\r
937  * \ref KEY_IOMASK_SNSK\r
938  * \ref PINS_KEY_SNS\r
939  * \ref PINS_KEY_SNSK\r
940  *\r
941  * PIOS for QTouch\r
942  * \ref PINS_QTOUCH\r
943  *\r
944  */\r
945 \r
946 /* ------------------------------------------------------------------------ */\r
947 /* QTOUCH                                                                   */\r
948 /* ------------------------------------------------------------------------ */\r
949 /*! PIO definitions for Slider */\r
950 #define SLIDER_IOMASK_SNS   (uint32_t)(PIO_PF0 | PIO_PF2 | PIO_PF4)\r
951 #define SLIDER_IOMASK_SNSK  (uint32_t)(PIO_PF1 | PIO_PF3 | PIO_PF5)\r
952 #define PINS_SLIDER_SNS\\r
953         {SLIDER_IOMASK_SNS, PIOF, ID_PIOF, PIO_INPUT, PIO_DEFAULT}\r
954 #define PINS_SLIDER_SNSK\\r
955         {SLIDER_IOMASK_SNSK, PIOF, ID_PIOF, PIO_INPUT, PIO_DEFAULT}\r
956 \r
957 /*! PIO definitions for keys */\r
958 #define KEY_IOMASK_SNS\\r
959         (uint32_t)(PIO_PE21 | PIO_PE27 | PIO_PE25 | PIO_PE19 | PIO_PE23)\r
960 #define KEY_IOMASK_SNSK\\r
961         (uint32_t)(PIO_PE20 | PIO_PE26 | PIO_PE24 | PIO_PE18 | PIO_PE22)\r
962 #define PINS_KEY_SNS\\r
963         {KEY_IOMASK_SNS, PIOE, ID_PIOE, PIO_INPUT, PIO_DEFAULT}\r
964 #define PINS_KEY_SNSK\\r
965         {KEY_IOMASK_SNSK, PIOE, ID_PIOE, PIO_INPUT, PIO_DEFAULT}\r
966 \r
967 /*! PIOS for QTouch */\r
968 #define PINS_QTOUCH     PINS_SLIDER_SNS, PINS_SLIDER_SNSK,\\r
969         PINS_KEY_SNS, PINS_KEY_SNSK\r
970 \r
971 /**\r
972  * \file\r
973  * TWI\r
974  * - \ref PIN_TWI_TWD0\r
975  * - \ref PIN_TWI_TWCK0\r
976  * - \ref PINS_TWI0\r
977  * - \ref PIN_TWI_TWD1\r
978  * - \ref PIN_TWI_TWCK1\r
979  * - \ref PINS_TWI1\r
980  *\r
981  */\r
982 \r
983 /* ------------------------------------------------------------------------ */\r
984 /* TWI                                                                      */\r
985 /* ------------------------------------------------------------------------ */\r
986 /*! TWI0 data pin */\r
987 #define PIN_TWI_TWD0\\r
988         {PIO_PA17A_TWD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
989 /*! TWI0 clock pin */\r
990 #define PIN_TWI_TWCK0\\r
991         {PIO_PA18A_TWCK0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}\r
992 /*! TWI0 pins */\r
993 #define PINS_TWI0      PIN_TWI_TWD0, PIN_TWI_TWCK0\r
994 \r
995 /*! TWI0 pins definition */\r
996 #define TWI0_DATA_GPIO   PIO_PA17_IDX\r
997 #define TWI0_DATA_FLAGS  (PIO_PERIPH_A | PIO_DEFAULT)\r
998 #define TWI0_CLK_GPIO    PIO_PA18_IDX\r
999 #define TWI0_CLK_FLAGS   (PIO_PERIPH_A | PIO_DEFAULT)\r
1000 \r
1001 /*! TWI1 data pin */\r
1002 #define PIN_TWI_TWD1\\r
1003         {PIO_PB12A_TWD1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1004 /*! TWI1 clock pin */\r
1005 #define PIN_TWI_TWCK1\\r
1006         {PIO_PB13A_TWCK1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1007 /*! TWI1 pins */\r
1008 #define PINS_TWI1      PIN_TWI_TWD1, PIN_TWI_TWCK1\r
1009 \r
1010 /*! TWI1 pins definition */\r
1011 #define TWI1_DATA_GPIO   PIO_PB12_IDX\r
1012 #define TWI1_DATA_FLAGS  (PIO_PERIPH_A | PIO_DEFAULT)\r
1013 #define TWI1_CLK_GPIO    PIO_PB13_IDX\r
1014 #define TWI1_CLK_FLAGS   (PIO_PERIPH_A | PIO_DEFAULT)\r
1015 \r
1016 /* ------------------------------------------------------------------------ */\r
1017 \r
1018 /**\r
1019  * \page sam3x_ek_extcomp "SAM3X-EK - External components"\r
1020  * This page lists the definitions related to external on-board components\r
1021  * located in the board.h file for the SAM3X-EK.\r
1022  *\r
1023  */\r
1024 \r
1025 /**\r
1026  * \file\r
1027  * LCD\r
1028  *\r
1029  * - \ref BOARD_LCD_PINS\r
1030  * - \ref BOARD_BACKLIGHT_PIN\r
1031  * - \ref BOARD_LCD_BASE\r
1032  * - \ref BOARD_LCD_RS\r
1033  *\r
1034  */\r
1035 \r
1036 /*! LCD Base Address */\r
1037 #define BOARD_LCD_BASE              0x62000000\r
1038 /*! LCD pins definition. */\r
1039 #define BOARD_LCD_PINS              PIN_EBI_DATA_BUS, PIN_EBI_NRD,\\r
1040         PIN_EBI_NWE, PIN_EBI_NCS2, PIN_EBI_LCD_RS\r
1041 /*! Board chip select */\r
1042 #define BOARD_LCD_NCS 2\r
1043 /*! Board LCD SMC setup timings */\r
1044 #define BOARD_TIMING_NS(ns)\\r
1045         (((uint32_t)((ns * (BOARD_MCK / 1000000)) / 1000)) + 1)\r
1046 \r
1047 #define BOARD_LCD_SETUP\\r
1048         SMC_SETUP_NWE_SETUP(BOARD_TIMING_NS(10)) |\\r
1049         SMC_SETUP_NCS_WR_SETUP(BOARD_TIMING_NS(10)) |\\r
1050         SMC_SETUP_NRD_SETUP(BOARD_TIMING_NS(90)) |\\r
1051         SMC_SETUP_NCS_RD_SETUP(BOARD_TIMING_NS(90))\r
1052 /*! Board LCD SMC pulse timings */\r
1053 #define BOARD_LCD_PULSE\\r
1054         SMC_PULSE_NWE_PULSE(BOARD_TIMING_NS(35)) |\\r
1055         SMC_PULSE_NCS_WR_PULSE(BOARD_TIMING_NS(35)) |\\r
1056         SMC_PULSE_NRD_PULSE(BOARD_TIMING_NS(355)) |\\r
1057         SMC_PULSE_NCS_RD_PULSE(BOARD_TIMING_NS(355))\r
1058 /*! Board LCD SMC cycle timings */\r
1059 #define BOARD_LCD_CYCLE\\r
1060         SMC_CYCLE_NWE_CYCLE(BOARD_TIMING_NS(100)) |\\r
1061         SMC_CYCLE_NRD_CYCLE(BOARD_TIMING_NS(460))\r
1062 /*! Board LCD SMC mode */\r
1063 #define BOARD_LCD_MODE\\r
1064         SMC_MODE_WRITE_MODE |\\r
1065         SMC_MODE_READ_MODE |\\r
1066         SMC_MODE_DBW_BIT_16\r
1067 \r
1068 /*! Define HX8347A register select signal. */\r
1069 #define BOARD_LCD_RS                   (1 << 1)\r
1070 \r
1071 /*! Backlight pin definition. */\r
1072 #define BOARD_BACKLIGHT                PIO_PB27_IDX\r
1073 #define BOARD_BACKLIGHT_FLAG           PIO_OUTPUT_0 | PIO_DEFAULT\r
1074 \r
1075 /** Definition of MMA7341L x,y,z axis channel number */\r
1076 #define MMA7341L_ADC_CHANNEL_X  2\r
1077 #define MMA7341L_ADC_CHANNEL_Y  6\r
1078 #define MMA7341L_ADC_CHANNEL_Z  7\r
1079 \r
1080 /** MMA7341L mode set pin definition. */\r
1081 #define PIN_MMA7341L_MODE                PIO_PC13_IDX\r
1082 #define PIN_MMA7341L_MODE_FLAG       PIO_OUTPUT_1 | PIO_DEFAULT\r
1083 \r
1084 /** MMA7341L X,Y,Z axis pin definition. */\r
1085 #define PIN_MMA7341L_X_AXIS                PIO_PB3_IDX\r
1086 #define PIN_MMA7341L_X_AXIS_FLAG       PIO_INPUT | PIO_DEFAULT\r
1087 #define PIN_MMA7341L_Y_AXIS                PIO_PC17_IDX\r
1088 #define PIN_MMA7341L_Y_AXIS_FLAG       PIO_INPUT | PIO_DEFAULT\r
1089 #define PIN_MMA7341L_Z_AXIS                PIO_PC18_IDX\r
1090 #define PIN_MMA7341L_Z_AXIS_FLAG       PIO_INPUT | PIO_DEFAULT\r
1091 \r
1092 /**\r
1093  * \file\r
1094  * TouchScreen\r
1095  *\r
1096  * - \ref PIN_TSC_IRQ\r
1097  * - \ref PIN_TSC_BUSY\r
1098  * - \ref BOARD_TSC_SPI_BASE\r
1099  * - \ref BOARD_TSC_SPI_ID\r
1100  * - \ref BOARD_TSC_SPI_PINS\r
1101  * - \ref BOARD_TSC_NPCS\r
1102  * - \ref BOARD_TSC_NPCS_PIN\r
1103  *\r
1104  */\r
1105 \r
1106 /* ------------------------------------------------------------------------ */\r
1107 /* Touchscreen                                                              */\r
1108 /* ------------------------------------------------------------------------ */\r
1109 /*! Touchscreen controller IRQ pin definition. */\r
1110 #define PIN_TSC_IRQ  {PIO_PA31, PIOA, ID_PIOA, PIO_INPUT, PIO_PULLUP}\r
1111 /*! Touchscreen controller Busy pin definition. */\r
1112 #define PIN_TSC_BUSY {PIO_PA30, PIOA, ID_PIOA, PIO_INPUT, PIO_PULLUP}\r
1113 \r
1114 /*! Base address of SPI peripheral connected to the touchscreen controller. */\r
1115 #define BOARD_TSC_SPI_BASE         SPI0\r
1116 /*! Identifier of SPI peripheral connected to the touchscreen controller. */\r
1117 #define BOARD_TSC_SPI_ID           ID_SPI0\r
1118 /*! Pins of the SPI peripheral connected to the touchscreen controller. */\r
1119 #define BOARD_TSC_SPI_PINS         PINS_SPI0\r
1120 /*! Chip select connected to the touchscreen controller. */\r
1121 #define BOARD_TSC_NPCS             0\r
1122 /*! Chip select pin connected to the touchscreen controller. */\r
1123 /* We use PIO mode for chip select to meet ADS7843's timing specification */\r
1124 #define BOARD_TSC_NPCS_PIN\\r
1125         {PIO_PA28A_SPI0_NPCS0, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_PULLUP}\r
1126 \r
1127 /**\r
1128  * \file\r
1129  * EMAC\r
1130  *\r
1131  * - BOARD_EMAC_EREFCK\r
1132  * - BOARD_EMAC_ETXEN\r
1133  * - BOARD_EMAC_ETX0\r
1134  * - BOARD_EMAC_ETX1\r
1135  * - BOARD_EMAC_ECRSDV\r
1136  * - BOARD_EMAC_ERX0\r
1137  * - BOARD_EMAC_ERX1\r
1138  * - BOARD_EMAC_ERXER\r
1139  * - BOARD_EMAC_EMDC\r
1140  * - BOARD_EMAC_EMDIO\r
1141  *\r
1142  * - BOARD_EMAC_PINS: One single define for all MACB pins\r
1143  * - BOARD_EMAC_PHY_ADDR: Phy MAC address\r
1144  * - BOARD_EMAC_MODE_RMII: Enable RMII connection with the PHY\r
1145  */\r
1146 \r
1147 /*! EMAC pin EREFCK */\r
1148 #define BOARD_EMAC_EREFCK  {PIO_PB0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1149 /*! EMAC pin ETXEN */\r
1150 #define BOARD_EMAC_ETXEN\\r
1151         {PIO_PB1A_ETXEN, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1152 /*! EMAC pin ETX0 */\r
1153 #define BOARD_EMAC_ETX0\\r
1154         {PIO_PB2A_ETX0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1155 /*! EMAC pin ETX1 */\r
1156 #define BOARD_EMAC_ETX1\\r
1157         {PIO_PB3A_ETX1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1158 /*! EMAC pin ECRSDV */\r
1159 #define BOARD_EMAC_ECRSDV\\r
1160         {PIO_PB4A_ECRSDV_ERXDV, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1161 /*! EMAC pin ERX0 */\r
1162 #define BOARD_EMAC_ERX0\\r
1163         {PIO_PB5A_ERX0, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1164 /*! EMAC pin ERX1 */\r
1165 #define BOARD_EMAC_ERX1\\r
1166         {PIO_PB6A_ERX1, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1167 /*! EMAC pin ERXER */\r
1168 #define BOARD_EMAC_ERXER\\r
1169         {PIO_PB7A_ERXER, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1170 /*! EMAC pin EMDC */\r
1171 #define BOARD_EMAC_EMDC\\r
1172         {PIO_PB8A_EMDC, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1173 /*! EMAC pin EMDIO */\r
1174 #define BOARD_EMAC_EMDIO\\r
1175         {PIO_PB9A_EMDIO, PIOB, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT}\r
1176 \r
1177 /*! EMAC pins */\r
1178 #define BOARD_EMAC_PINS\\r
1179         BOARD_EMAC_EREFCK,\\r
1180         BOARD_EMAC_ETX0,\\r
1181         BOARD_EMAC_ETX1,\\r
1182         BOARD_EMAC_ETXEN,\\r
1183         BOARD_EMAC_ECRSDV,\\r
1184         BOARD_EMAC_ERX0,\\r
1185         BOARD_EMAC_ERX1,\\r
1186         BOARD_EMAC_ERXER,\\r
1187         BOARD_EMAC_EMDC,\\r
1188         BOARD_EMAC_EMDIO\r
1189 \r
1190 #define PIN_EEMAC_EREFCK      PIO_PB0_IDX\r
1191 #define PIN_EMAC_ETXEN        PIO_PB1_IDX\r
1192 #define PIN_EMAC_ETX0         PIO_PB2_IDX\r
1193 #define PIN_EMAC_ETX1         PIO_PB3_IDX\r
1194 #define PIN_EMAC_ECRSDV       PIO_PB4_IDX\r
1195 #define PIN_EMAC_ERX0         PIO_PB5_IDX\r
1196 #define PIN_EMAC_ERX1         PIO_PB6_IDX\r
1197 #define PIN_EMAC_ERXER        PIO_PB7_IDX\r
1198 #define PIN_EMAC_EMDC         PIO_PB8_IDX\r
1199 #define PIN_EMAC_EMDIO        PIO_PB9_IDX\r
1200 #define PIN_EMAC_FLAGS        PIO_PERIPH_A | PIO_DEFAULT\r
1201 \r
1202 /** EMAC PHY address */\r
1203 #define BOARD_EMAC_PHY_ADDR  0\r
1204 /*! EMAC RMII mode */\r
1205 #define BOARD_EMAC_MODE_RMII 1\r
1206 \r
1207 /**\r
1208  * \file\r
1209  * SD Card\r
1210  * - \ref BOARD_SD_PINS\r
1211  * - \ref BOARD_SD_PIN_CD\r
1212  *\r
1213  */\r
1214 \r
1215 /*! HSMCI pins that shall be configured to access the SD card. */\r
1216 #define BOARD_SD_PINS               PINS_HSMCI\r
1217 /*! HSMCI Card Detect pin. */\r
1218 #define BOARD_SD_PIN_CD             PIN_HSMCI_CD\r
1219 /*! Total number of HSMCI interface */\r
1220 #define BOARD_NUM_HSMCI               1\r
1221 \r
1222 /**\r
1223  * \file\r
1224  * SmartCard\r
1225  * - \ref SMARTCARD_CONNECT_PIN\r
1226  * - \ref PIN_ISO7816_RSTMC\r
1227  * - \ref PINS_ISO7816\r
1228  *\r
1229  */\r
1230 \r
1231 /* ------------------------------------------------------------------------ */\r
1232 /* SMARTCARD                                                                */\r
1233 /* ------------------------------------------------------------------------ */\r
1234 /* Smartcard detection pin */\r
1235 /*#define SMARTCARD_CONNECT_PIN {1 << 13, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT} */\r
1236 \r
1237 /*/ PIN used for reset the smartcard */\r
1238 #define PIN_ISO7816_RSTMC  {1 << 11, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}\r
1239 /*/ Pins used for connect the smartcard */\r
1240 #define PINS_ISO7816        PIN_USART1_TXD, PIN_USART1_SCK, PIN_ISO7816_RSTMC\r
1241 \r
1242 /* ------------------------------------------------------------------------ */\r
1243 \r
1244 /**\r
1245  * \page sam3x_ek_mem "SAM3X-EK - Memories"\r
1246  * This page lists definitions related to internal & external on-board memories.\r
1247  *\r
1248  *\r
1249  */\r
1250 \r
1251 /**\r
1252  * \file\r
1253  * NandFlash\r
1254  * - \ref PIN_EBI_NANDOE\r
1255  * - \ref PIN_EBI_NANDWE\r
1256  * - \ref PIN_EBI_NANDCLE\r
1257  * - \ref PIN_EBI_NANDALE\r
1258  * - \ref PIN_EBI_NANDIO\r
1259  * - \ref BOARD_NF_CE_PIN\r
1260  * - \ref BOARD_NF_RB_PIN\r
1261  * - \ref PINS_NANDFLASH\r
1262  *\r
1263  */\r
1264 \r
1265 /* ------------------------------------------------------------------------ */\r
1266 /* NAND FLASH                                                               */\r
1267 /* ------------------------------------------------------------------------ */\r
1268 /** NandFlash pins definition: OE. */\r
1269 #define PIN_EBI_NANDOE    (PIO_PC19_IDX)\r
1270 #define PIN_EBI_NANDOE_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1271 \r
1272 /** NandFlash pins definition: WE. */\r
1273 #define PIN_EBI_NANDWE    (PIO_PC20_IDX)\r
1274 #define PIN_EBI_NANDWE_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1275 \r
1276 /** NandFlash pins definition: CLE. */\r
1277 #define PIN_EBI_NANDCLE    (PIO_PD9_IDX)\r
1278 #define PIN_EBI_NANDCLE_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1279 \r
1280 /** NandFlash pins definition: ALE. */\r
1281 #define PIN_EBI_NANDALE    (PIO_PD8_IDX)\r
1282 #define PIN_EBI_NANDALE_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1283 \r
1284 /** NandFlash pins definition: DATA. */\r
1285 #define PIN_EBI_NANDIO_0    (PIO_PC2_IDX)\r
1286 #define PIN_EBI_NANDIO_0_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1287 \r
1288 #define PIN_EBI_NANDIO_1    (PIO_PC3_IDX)\r
1289 #define PIN_EBI_NANDIO_1_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1290 \r
1291 #define PIN_EBI_NANDIO_2    (PIO_PC4_IDX)\r
1292 #define PIN_EBI_NANDIO_2_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1293 \r
1294 #define PIN_EBI_NANDIO_3    (PIO_PC5_IDX)\r
1295 #define PIN_EBI_NANDIO_3_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1296 \r
1297 #define PIN_EBI_NANDIO_4    (PIO_PC6_IDX)\r
1298 #define PIN_EBI_NANDIO_4_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1299 \r
1300 #define PIN_EBI_NANDIO_5    (PIO_PC7_IDX)\r
1301 #define PIN_EBI_NANDIO_5_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1302 \r
1303 #define PIN_EBI_NANDIO_6    (PIO_PC8_IDX)\r
1304 #define PIN_EBI_NANDIO_6_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1305 \r
1306 #define PIN_EBI_NANDIO_7    (PIO_PC9_IDX)\r
1307 #define PIN_EBI_NANDIO_7_FLAGS    (PIO_PERIPH_A | PIO_PULLUP)\r
1308 \r
1309 /** Nandflash chip enable pin definition. */\r
1310 #define PIN_NF_CE_IDX    (PIO_PA6_IDX)\r
1311 #define PIN_NF_CE_FLAGS    (PIO_PERIPH_B | PIO_PULLUP)\r
1312 \r
1313 /** Nandflash ready/busy pin definition. */\r
1314 #define PIN_NF_RB_IDX    (PIO_PA2_IDX)\r
1315 #define PIN_NF_RB_FLAGS    (PIO_PERIPH_B | PIO_PULLUP)\r
1316 \r
1317 /* Chip select number for nand */\r
1318 #define BOARD_NAND_CS      0\r
1319 \r
1320 /*\r
1321  * \addtopage sam3x_ek_mem\r
1322  * \section NandFlash\r
1323  * - \ref BOARD_NF_COMMAND_ADDR\r
1324  * - \ref BOARD_NF_ADDRESS_ADDR\r
1325  * - \ref BOARD_NF_DATA_ADDR\r
1326  *\r
1327  */\r
1328 \r
1329 /* ------------------------------------------------------------------------ */\r
1330 /* NAND FLASH                                                               */\r
1331 /* ------------------------------------------------------------------------ */\r
1332 /*! Address for transferring command bytes to the nandflash. */\r
1333 #define BOARD_NF_COMMAND_ADDR   0x60400000\r
1334 /*! Address for transferring address bytes to the nandflash. */\r
1335 #define BOARD_NF_ADDRESS_ADDR   0x60200000\r
1336 /*! Address for transferring data bytes to the nandflash. */\r
1337 #define BOARD_NF_DATA_ADDR      0x60000000\r
1338 /* Bus width for NAND */\r
1339 #define CONF_NF_BUSWIDTH    8\r
1340 /* SMC NFC using five address cycle */\r
1341 #define CONF_NF_NEED_FIVE_ADDRESS_CYCLES  1\r
1342 /* Access timing for NAND */\r
1343 #define CONF_NF_SETUP_TIMING (SMC_SETUP_NWE_SETUP(0) \\r
1344                 | SMC_SETUP_NCS_WR_SETUP(0) \\r
1345                 | SMC_SETUP_NRD_SETUP(0) \\r
1346                 | SMC_SETUP_NCS_RD_SETUP(0))\r
1347 #define CONF_NF_PULSE_TIMING (SMC_PULSE_NWE_PULSE(2) \\r
1348                 | SMC_PULSE_NCS_WR_PULSE(3) \\r
1349                 | SMC_PULSE_NRD_PULSE(2) \\r
1350                 | SMC_PULSE_NCS_RD_PULSE(3))\r
1351 #define CONF_NF_CYCLE_TIMING (SMC_CYCLE_NWE_CYCLE(3) \\r
1352                 | SMC_CYCLE_NRD_CYCLE(3))\r
1353 #define CONF_NF_TIMING (SMC_TIMINGS_TCLR(1) \\r
1354                 | SMC_TIMINGS_TADL(6) \\r
1355                 | SMC_TIMINGS_TAR(4) \\r
1356                 | SMC_TIMINGS_TRR(2) \\r
1357                 | SMC_TIMINGS_TWB(9) \\r
1358                 | SMC_TIMINGS_RBNSEL(7) \\r
1359                 | (SMC_TIMINGS_NFSEL))\r
1360 /* Support DMA */\r
1361 #define CONF_NF_USE_DMA\r
1362 #ifdef CONF_NF_USE_DMA\r
1363 /* DMA channel used for NF */\r
1364 #define CONF_NF_DMA_CHANNEL    0\r
1365 #endif\r
1366 \r
1367 /**\r
1368  * \file\r
1369  * \section SDRAM\r
1370  * - \ref BOARD_SDRAM_SIZE\r
1371  * - \ref PIN_SDRAM\r
1372  * - \ref BOARD_SDRAM_BUSWIDTH\r
1373  *\r
1374  */\r
1375 \r
1376 /* ------------------------------------------------------------------------ */\r
1377 /* SDRAM                                                                    */\r
1378 /* ------------------------------------------------------------------------ */\r
1379 /*!  Board SDRAM size for MT48LC16M16A2 */\r
1380 #define BOARD_SDRAM_SIZE        (32 * 1024 * 1024)  /* 32 MB */\r
1381 \r
1382 /** Address for transferring command bytes to the SDRAM. */\r
1383 #define BOARD_SDRAM_ADDR     0x70000000\r
1384 \r
1385 /**  List of all SDRAM pins definitions */\r
1386 #define PIO_SDRAM_SDCKE PIO_PD13\r
1387 #define PIO_SDRAM_SDCS PIO_PD12\r
1388 #define PIO_SDRAM_RAS PIO_PD15\r
1389 #define PIO_SDRAM_CAS PIO_PD16\r
1390 #define PIO_SDRAM_BA0 PIO_PD6\r
1391 #define PIO_SDRAM_BA1 PIO_PD7\r
1392 #define PIO_SDRAM_SDWE PIO_PD14\r
1393 #define PIO_SDRAM_NBS0 PIO_PC21\r
1394 #define PIO_SDRAM_NBS1 PIO_PD10\r
1395 #define PIO_SDRAM_DATA (0xffff << 2)    //PIO_PC2--PIO_PC17\r
1396 #define PIO_SDRAM_SDA0_A7 (0xff << 23)    //PIO_PC23--PIO_PC30\r
1397 #define PIO_SDRAM_SDA8 PIO_PD22\r
1398 #define PIO_SDRAM_SDA9 PIO_PD23\r
1399 #define PIO_SDRAM_SDA11 PIO_PD25\r
1400 #define PIO_SDRAM_SDA12 PIO_PD4\r
1401 #define PIO_SDRAM_SDA10 PIO_PD11\r
1402 \r
1403 #define PIN_SDRAM_SDCKE PIO_PD13_IDX\r
1404 #define PIN_SDRAM_SDCS PIO_PD12_IDX\r
1405 #define PIN_SDRAM_RAS PIO_PD15_IDX\r
1406 #define PIN_SDRAM_CAS PIO_PD16_IDX\r
1407 #define PIN_SDRAM_BA0 PIO_PD6_IDX\r
1408 #define PIN_SDRAM_BA1 PIO_PD7_IDX\r
1409 #define PIN_SDRAM_SDWE PIO_PD14_IDX\r
1410 #define PIN_SDRAM_NBS0 PIO_PC21_IDX\r
1411 #define PIN_SDRAM_NBS1 PIO_PD10_IDX\r
1412 #define PIN_SDRAM_DATA0 PIO_PC2_IDX\r
1413 #define PIN_SDRAM_DATA1 PIO_PC3_IDX\r
1414 #define PIN_SDRAM_DATA2 PIO_PC4_IDX\r
1415 #define PIN_SDRAM_DATA3 PIO_PC5_IDX\r
1416 #define PIN_SDRAM_DATA4 PIO_PC6_IDX\r
1417 #define PIN_SDRAM_DATA5 PIO_PC7_IDX\r
1418 #define PIN_SDRAM_DATA6 PIO_PC8_IDX\r
1419 #define PIN_SDRAM_DATA7 PIO_PC9_IDX\r
1420 #define PIN_SDRAM_DATA8 PIO_PC10_IDX\r
1421 #define PIN_SDRAM_DATA9 PIO_PC11_IDX\r
1422 #define PIN_SDRAM_DATA10 PIO_PC12_IDX\r
1423 #define PIN_SDRAM_DATA11 PIO_PC13_IDX\r
1424 #define PIN_SDRAM_DATA12 PIO_PC14_IDX\r
1425 #define PIN_SDRAM_DATA13 PIO_PC15_IDX\r
1426 #define PIN_SDRAM_DATA14 PIO_PC16_IDX\r
1427 #define PIN_SDRAM_DATA15 PIO_PC17_IDX\r
1428 #define PIN_SDRAM_SDA1 PIO_PC23_IDX\r
1429 #define PIN_SDRAM_SDA2 PIO_PC24_IDX\r
1430 #define PIN_SDRAM_SDA3 PIO_PC25_IDX\r
1431 #define PIN_SDRAM_SDA4 PIO_PC26_IDX\r
1432 #define PIN_SDRAM_SDA5 PIO_PC27_IDX\r
1433 #define PIN_SDRAM_SDA6 PIO_PC28_IDX\r
1434 #define PIN_SDRAM_SDA7 PIO_PC29_IDX\r
1435 #define PIN_SDRAM_SDA0 PIO_PC30_IDX\r
1436 #define PIN_SDRAM_SDA8 PIO_PD22_IDX\r
1437 #define PIN_SDRAM_SDA9 PIO_PD23_IDX\r
1438 #define PIN_SDRAM_SDA11 PIO_PD25_IDX\r
1439 #define PIN_SDRAM_SDA12 PIO_PD4_IDX\r
1440 #define PIN_SDRAM_SDA10 PIO_PD11_IDX\r
1441 \r
1442 #define PIN_SDRAM_FLAGS        PIO_PERIPH_A | PIO_PULLUP\r
1443 \r
1444 #define PIN_SDRAM_EN PIO_PD18_IDX\r
1445 #define PIN_SDRAM_EN_FLAGS  PIO_OUTPUT_1 | PIO_DEFAULT\r
1446 \r
1447 /**  List of all SDRAM pins definitions */\r
1448 #define PINS_SDRAM_PIOC              { PIO_SDRAM_DATA | PIO_SDRAM_NBS0 | PIO_SDRAM_SDA0_A7, \\r
1449                                       PIOC, ID_PIOC, PIO_PERIPH_A, PIO_PULLUP }\r
1450 \r
1451 #define PINS_SDRAM_PIOD\\r
1452         { PIO_SDRAM_SDCKE | PIO_SDRAM_SDCS |\\r
1453         PIO_SDRAM_RAS | PIO_SDRAM_CAS |\\r
1454         PIO_SDRAM_BA0 | PIO_SDRAM_BA1 |\\r
1455         PIO_SDRAM_SDWE | PIO_SDRAM_NBS1 |\\r
1456         PIO_SDRAM_SDA10 |\\r
1457         PIO_SDRAM_SDA8 | PIO_SDRAM_SDA9 |\\r
1458         PIO_SDRAM_SDA11 | PIO_SDRAM_SDA12,\\r
1459         PIOD, ID_PIOD, PIO_PERIPH_A, PIO_PULLUP }\r
1460 \r
1461 /* PIO18 is used as SDRAM Enable on EK-REVB board */\r
1462 #define PINS_SDRAM_EN\\r
1463         { (1 << 18), PIOD, ID_PIOD, PIO_OUTPUT_1, PIO_DEFAULT }\r
1464 \r
1465 #define PINS_SDRAM        PINS_SDRAM_PIOC, PINS_SDRAM_PIOD, PINS_SDRAM_EN\r
1466 \r
1467 /*!  SDRAM bus width */\r
1468 #define BOARD_SDRAM_BUSWIDTH    16\r
1469 \r
1470 /* SDRAMC clock speed */\r
1471 #define SDRAMC_CLK (BOARD_MCK)\r
1472 \r
1473 /**\r
1474  * \file\r
1475  * \section NorFlash\r
1476  * - \ref BOARD_NORFLASH_ADDR\r
1477  *\r
1478  */\r
1479 \r
1480 /* ------------------------------------------------------------------------ */\r
1481 /* NOR FLASH                                                                */\r
1482 /* ------------------------------------------------------------------------ */\r
1483 /*! Address for transferring command bytes to the norflash. */\r
1484 #define BOARD_NORFLASH_ADDR     0x60000000\r
1485 \r
1486 /* ------------------------------------------------------------------------ */\r
1487 \r
1488 /**\r
1489  * \page sam3x_ek_chipdef "SAM3X-EK - Individual chip definition"\r
1490  * This page lists the definitions related to different chip's definition\r
1491  * located in the board.h file for the SAM3X-EK.\r
1492  *\r
1493  * \section USART\r
1494  * - \ref BOARD_PIN_USART_RXD\r
1495  * - \ref BOARD_PIN_USART_TXD\r
1496  * - \ref BOARD_PIN_USART_CTS\r
1497  * - \ref BOARD_PIN_USART_RTS\r
1498  * - \ref BOARD_PIN_USART_EN\r
1499  * - \ref BOARD_USART_BASE\r
1500  * - \ref BOARD_ID_USART\r
1501  */\r
1502 \r
1503 /*! Rtc */\r
1504 #define BOARD_RTC_ID                ID_RTC\r
1505 \r
1506 /* AT24CXX device address */\r
1507 #define BOARD_AT24C_ADDRESS                 0x50\r
1508 /** Define MCP980X TWI instance. */\r
1509 #define BOARD_AT24C_TWI_INSTANCE    (TWI0)\r
1510 \r
1511 /*! TWI ID for EEPROM application to use */\r
1512 #define BOARD_ID_TWI_EEPROM         ID_TWI0\r
1513 /*! TWI Base for TWI EEPROM application to use */\r
1514 #define BOARD_BASE_TWI_EEPROM       TWI0\r
1515 /*! TWI pins for EEPROM application to use */\r
1516 #define BOARD_PINS_TWI_EEPROM       PINS_TWI0\r
1517 \r
1518 /*! USART RX pin for application */\r
1519 #define BOARD_PIN_USART_RXD        PIN_USART0_RXD\r
1520 /*! USART TX pin for application */\r
1521 #define BOARD_PIN_USART_TXD        PIN_USART0_TXD\r
1522 /*! USART CTS pin for application */\r
1523 #define BOARD_PIN_USART_CTS        PIN_USART0_CTS\r
1524 /*! USART RTS pin for application */\r
1525 #define BOARD_PIN_USART_RTS        PIN_USART0_RTS\r
1526 /*! USART ENABLE pin for application */\r
1527 #define BOARD_PIN_USART_EN         PIN_USART0_EN\r
1528 /*! USART Base for application */\r
1529 #define BOARD_USART_BASE           USART0\r
1530 /*! USART ID for application */\r
1531 #define BOARD_ID_USART             ID_USART0\r
1532 /*! USART1 Base for application */\r
1533 #define BOARD_USART1_BASE          USART1\r
1534 /*! USART1 ID for application */\r
1535 #define BOARD_ID_USART1            ID_USART1\r
1536 /*! USART3 Base for application */\r
1537 #define BOARD_USART3_BASE          USART3\r
1538 /*! USART3 ID for application */\r
1539 #define BOARD_ID_USART3            ID_USART3\r
1540 \r
1541 #define CONSOLE_UART               UART\r
1542 #define CONSOLE_UART_ID            ID_UART\r
1543 \r
1544 /* RE pin. */\r
1545 #define PIN_RE_IDX                 PIN_USART0_CTS_IDX\r
1546 #define PIN_RE_FLAGS               (PIO_OUTPUT_0 | PIO_DEFAULT)\r
1547 \r
1548 /* IRDA SD pin. */\r
1549 #define PIN_IRDA_SD_IDX            PIN_USART0_CTS_IDX\r
1550 #define PIN_IRDA_SD_FLAGS          (PIO_OUTPUT_1 | PIO_DEFAULT)\r
1551 \r
1552 /* TXD pin configuration. */\r
1553 #define PIN_USART_TXD_IDX          PIN_USART0_TXD_IDX\r
1554 #define PIN_USART_TXD_FLAGS        (PIO_PERIPH_A | PIO_DEFAULT)\r
1555 #define PIN_USART_TXD_IO_FLAGS     (PIO_OUTPUT_0 | PIO_DEFAULT)\r
1556 \r
1557 /* ISO7816 example relate PIN definition. */\r
1558 #define ISO7816_USART_ID           ID_USART0\r
1559 #define ISO7816_USART              USART0\r
1560 #define PIN_ISO7816_RST_IDX        PIO_PA15_IDX\r
1561 #define PIN_ISO7816_RST_FLAG       (PIO_OUTPUT_0 | PIO_DEFAULT)\r
1562 \r
1563 #endif  /* _SAM3X_EK_H_ */\r