]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M4F_ATSAM4E_Atmel_Studio/src/ASF/sam/boards/sam4e_ek/init.c
Update copyright date ready for tagging V10.1.0.
[freertos] / FreeRTOS / Demo / CORTEX_M4F_ATSAM4E_Atmel_Studio / src / ASF / sam / boards / sam4e_ek / init.c
1 /**\r
2  * \file\r
3  *\r
4  * \brief SAM4E-EK board init.\r
5  *\r
6  * Copyright (c) 2012 - 2013 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 #include "compiler.h"\r
45 #include "board.h"\r
46 #include "conf_board.h"\r
47 #include "ioport.h"\r
48 \r
49 /**\r
50  * \brief Set peripheral mode for IOPORT pins.\r
51  * It will configure port mode and disable pin mode (but enable peripheral).\r
52  * \param port IOPORT port to configure\r
53  * \param masks IOPORT pin masks to configure\r
54  * \param mode Mode masks to configure for the specified pin (\ref ioport_modes)\r
55  */\r
56 #define ioport_set_port_peripheral_mode(port, masks, mode) \\r
57         do {\\r
58                 ioport_set_port_mode(port, masks, mode);\\r
59                 ioport_disable_port(port, masks);\\r
60         } while (0)\r
61 \r
62 /**\r
63  * \brief Set peripheral mode for one single IOPORT pin.\r
64  * It will configure port mode and disable pin mode (but enable peripheral).\r
65  * \param pin IOPORT pin to configure\r
66  * \param mode Mode masks to configure for the specified pin (\ref ioport_modes)\r
67  */\r
68 #define ioport_set_pin_peripheral_mode(pin, mode) \\r
69         do {\\r
70                 ioport_set_pin_mode(pin, mode);\\r
71                 ioport_disable_pin(pin);\\r
72         } while (0)\r
73 \r
74 /**\r
75  * \brief Set input mode for one single IOPORT pin.\r
76  * It will configure port mode and disable pin mode (but enable peripheral).\r
77  * \param pin IOPORT pin to configure\r
78  * \param mode Mode masks to configure for the specified pin (\ref ioport_modes)\r
79  * \param sense Sense for interrupt detection (\ref ioport_sense)\r
80  */\r
81 #define ioport_set_pin_input_mode(pin, mode, sense) \\r
82         do {\\r
83                 ioport_set_pin_dir(pin, IOPORT_DIR_INPUT);\\r
84                 ioport_set_pin_mode(pin, mode);\\r
85                 ioport_set_pin_sense_mode(pin, sense);\\r
86         } while (0)\r
87 \r
88 void board_init(void)\r
89 {\r
90 #ifndef CONF_BOARD_KEEP_WATCHDOG_AT_INIT\r
91         /* Disable the watchdog */\r
92         WDT->WDT_MR = WDT_MR_WDDIS;\r
93 #endif\r
94 \r
95         /* Initialize IOPORTs */\r
96         ioport_init();\r
97 \r
98         /* Configure the pins connected to LEDs as output and set their\r
99          * default initial state to high (LEDs off).\r
100          */\r
101         ioport_set_pin_dir(LED0_GPIO, IOPORT_DIR_OUTPUT);\r
102         ioport_set_pin_level(LED0_GPIO, LED0_INACTIVE_LEVEL);\r
103         ioport_set_pin_dir(LED1_GPIO, IOPORT_DIR_OUTPUT);\r
104         ioport_set_pin_level(LED1_GPIO, LED0_INACTIVE_LEVEL);\r
105         ioport_set_pin_dir(LED2_GPIO, IOPORT_DIR_OUTPUT);\r
106         ioport_set_pin_level(LED2_GPIO, LED0_INACTIVE_LEVEL);\r
107 \r
108         /* Configure Push Button pins */\r
109         ioport_set_pin_input_mode(GPIO_PUSH_BUTTON_1, GPIO_PUSH_BUTTON_1_FLAGS,\r
110                         GPIO_PUSH_BUTTON_1_SENSE);\r
111         ioport_set_pin_input_mode(GPIO_PUSH_BUTTON_2, GPIO_PUSH_BUTTON_2_FLAGS,\r
112                         GPIO_PUSH_BUTTON_2_SENSE);\r
113         ioport_set_pin_input_mode(GPIO_PUSH_BUTTON_3, GPIO_PUSH_BUTTON_3_FLAGS,\r
114                         GPIO_PUSH_BUTTON_3_SENSE);\r
115         ioport_set_pin_input_mode(GPIO_PUSH_BUTTON_4, GPIO_PUSH_BUTTON_4_FLAGS,\r
116                         GPIO_PUSH_BUTTON_4_SENSE);\r
117 \r
118 #ifdef CONF_BOARD_UART_CONSOLE\r
119         /* Configure UART pins */\r
120         ioport_set_port_peripheral_mode(PINS_UART0_PORT, PINS_UART0,\r
121                         PINS_UART0_MASK);\r
122 #endif\r
123 \r
124 #ifdef CONF_BOARD_PWM_LED0\r
125         /* Configure PWM LED0 pin */\r
126         ioport_set_pin_peripheral_mode(PIN_PWM_LED0_GPIO, PIN_PWM_LED0_FLAGS);\r
127 #endif\r
128 \r
129 #ifdef CONF_BOARD_PWM_LED1\r
130         /* Configure PWM LED1 pin */\r
131         ioport_set_pin_peripheral_mode(PIN_PWM_LED1_GPIO, PIN_PWM_LED1_FLAGS);\r
132 #endif\r
133 \r
134 #ifdef CONF_BOARD_PWM_LED2\r
135         /* Configure PWM LED2 pin */\r
136         ioport_set_pin_peripheral_mode(PIN_PWM_LED2_GPIO, PIN_PWM_LED2_FLAGS);\r
137 #endif\r
138 \r
139 #ifdef CONF_BOARD_PWM_LED3\r
140         /* Configure PWM LED3 pin */\r
141         ioport_set_pin_peripheral_mode(PIN_PWM_LED3_GPIO, PIN_PWM_LED3_FLAGS);\r
142 #endif\r
143 \r
144 #ifdef CONF_BOARD_USART_RXD\r
145         /* Configure USART RXD pin */\r
146         ioport_set_pin_peripheral_mode(PIN_USART1_RXD_IDX,\r
147                         PIN_USART1_RXD_FLAGS);\r
148 #endif\r
149 \r
150 #ifdef CONF_BOARD_USART_TXD\r
151         /* Configure USART TXD pin */\r
152         ioport_set_pin_peripheral_mode(PIN_USART1_TXD_IDX,\r
153                         PIN_USART1_TXD_FLAGS);\r
154 #endif\r
155 \r
156 #ifdef CONF_BOARD_USART_CTS\r
157         /* Configure USART CTS pin */\r
158         ioport_set_pin_peripheral_mode(PIN_USART1_CTS_IDX,\r
159                         PIN_USART1_CTS_FLAGS);\r
160 #endif\r
161 \r
162 #ifdef CONF_BOARD_USART_RTS\r
163         /* Configure USART RTS pin */\r
164         ioport_set_pin_peripheral_mode(PIN_USART1_RTS_IDX,\r
165                         PIN_USART1_RTS_FLAGS);\r
166 #endif\r
167 \r
168 #ifdef CONF_BOARD_USART_SCK\r
169         /* Configure USART synchronous communication SCK pin */\r
170         ioport_set_pin_peripheral_mode(PIN_USART1_SCK_IDX,\r
171                         PIN_USART1_SCK_FLAGS);\r
172 #endif\r
173 \r
174 #ifdef CONF_BOARD_ADM3312_EN\r
175         /* Configure ADM3312 enable pin */\r
176         ioport_set_pin_dir(PIN_USART1_EN_IDX, IOPORT_DIR_OUTPUT);\r
177 #ifdef CONF_BOARD_ADM3312_EN_DISABLE_AT_INIT\r
178         ioport_set_pin_level(PIN_USART1_EN_IDX, PIN_USART1_EN_INACTIVE_LEVEL);\r
179 #else\r
180         ioport_set_pin_level(PIN_USART1_EN_IDX, PIN_USART1_EN_ACTIVE_LEVEL);\r
181 #endif\r
182 #endif\r
183 \r
184 #ifdef CONF_BOARD_ADS7843\r
185         /* Configure Touchscreen SPI pins */\r
186         ioport_set_pin_dir(BOARD_ADS7843_IRQ_GPIO, IOPORT_DIR_INPUT);\r
187         ioport_set_pin_mode(BOARD_ADS7843_IRQ_GPIO, BOARD_ADS7843_IRQ_FLAGS);\r
188         ioport_set_pin_dir(BOARD_ADS7843_BUSY_GPIO, IOPORT_DIR_INPUT);\r
189         ioport_set_pin_mode(BOARD_ADS7843_BUSY_GPIO, BOARD_ADS7843_BUSY_FLAGS);\r
190         ioport_set_pin_peripheral_mode(SPI_MISO_GPIO, SPI_MISO_FLAGS);\r
191         ioport_set_pin_peripheral_mode(SPI_MOSI_GPIO, SPI_MOSI_FLAGS);\r
192         ioport_set_pin_peripheral_mode(SPI_SPCK_GPIO, SPI_SPCK_FLAGS);\r
193         ioport_set_pin_peripheral_mode(SPI_NPCS0_GPIO, SPI_NPCS0_FLAGS);\r
194 #endif\r
195 \r
196 #ifdef CONF_BOARD_CAN0\r
197         /* Configure the CAN0 TX and RX pins. */\r
198         ioport_set_pin_peripheral_mode(PIN_CAN0_RX_IDX, PIN_CAN0_RX_FLAGS);\r
199         ioport_set_pin_peripheral_mode(PIN_CAN0_TX_IDX, PIN_CAN0_TX_FLAGS);\r
200         /* Configure the transiver0 RS & EN pins. */\r
201         ioport_set_pin_dir(PIN_CAN0_TR_RS_IDX, IOPORT_DIR_OUTPUT);\r
202         ioport_set_pin_dir(PIN_CAN0_TR_EN_IDX, IOPORT_DIR_OUTPUT);\r
203 #endif\r
204 \r
205 #ifdef CONF_BOARD_CAN1\r
206         /* Configure the CAN1 TX and RX pin. */\r
207         ioport_set_pin_peripheral_mode(PIN_CAN1_RX_IDX, PIN_CAN1_RX_FLAGS);\r
208         ioport_set_pin_peripheral_mode(PIN_CAN1_TX_IDX, PIN_CAN1_TX_FLAGS);\r
209         /* Configure the transiver1 RS & EN pins. */\r
210         ioport_set_pin_dir(PIN_CAN1_TR_RS_IDX, IOPORT_DIR_OUTPUT);\r
211         ioport_set_pin_dir(PIN_CAN1_TR_EN_IDX, IOPORT_DIR_OUTPUT);\r
212 #endif\r
213 \r
214 #if defined(CONF_BOARD_USB_PORT)\r
215 #  if defined(CONF_BOARD_USB_VBUS_DETECT)\r
216         gpio_configure_pin(USB_VBUS_PIN, USB_VBUS_FLAGS);\r
217 #  endif\r
218 #endif\r
219 \r
220 #ifdef CONF_BOARD_ILI93XX\r
221         /* Configure LCD EBI pins */\r
222         ioport_set_pin_peripheral_mode(PIN_EBI_DATA_BUS_D0,PIN_EBI_DATA_BUS_FLAGS);\r
223         ioport_set_pin_peripheral_mode(PIN_EBI_DATA_BUS_D1,PIN_EBI_DATA_BUS_FLAGS);\r
224         ioport_set_pin_peripheral_mode(PIN_EBI_DATA_BUS_D2,PIN_EBI_DATA_BUS_FLAGS);\r
225         ioport_set_pin_peripheral_mode(PIN_EBI_DATA_BUS_D3,PIN_EBI_DATA_BUS_FLAGS);\r
226         ioport_set_pin_peripheral_mode(PIN_EBI_DATA_BUS_D4,PIN_EBI_DATA_BUS_FLAGS);\r
227         ioport_set_pin_peripheral_mode(PIN_EBI_DATA_BUS_D5,PIN_EBI_DATA_BUS_FLAGS);\r
228         ioport_set_pin_peripheral_mode(PIN_EBI_DATA_BUS_D6,PIN_EBI_DATA_BUS_FLAGS);\r
229         ioport_set_pin_peripheral_mode(PIN_EBI_DATA_BUS_D7,PIN_EBI_DATA_BUS_FLAGS);\r
230         \r
231         ioport_set_pin_peripheral_mode(PIN_EBI_NRD,PIN_EBI_NRD_FLAGS);\r
232         ioport_set_pin_peripheral_mode(PIN_EBI_NWE,PIN_EBI_NWE_FLAGS);\r
233         ioport_set_pin_peripheral_mode(PIN_EBI_NCS1,PIN_EBI_NCS1_FLAGS);\r
234         ioport_set_pin_peripheral_mode(PIN_EBI_LCD_RS,PIN_EBI_LCD_RS_FLAGS);\r
235 #endif\r
236 \r
237 #ifdef CONF_BOARD_AAT3155\r
238         /* Configure Backlight control pin */\r
239         ioport_set_pin_dir(BOARD_AAT31XX_SET_GPIO, IOPORT_DIR_OUTPUT);\r
240 #endif\r
241 \r
242 #ifdef CONF_BOARD_SPI\r
243         ioport_set_pin_peripheral_mode(SPI_MISO_GPIO, SPI_MISO_FLAGS);\r
244         ioport_set_pin_peripheral_mode(SPI_MOSI_GPIO, SPI_MOSI_FLAGS);\r
245         ioport_set_pin_peripheral_mode(SPI_SPCK_GPIO, SPI_SPCK_FLAGS);\r
246 \r
247 #ifdef CONF_BOARD_SPI_NPCS0\r
248         ioport_set_pin_peripheral_mode(SPI_NPCS0_GPIO, SPI_NPCS0_FLAGS);\r
249 #endif\r
250 \r
251 #ifdef CONF_BOARD_SPI_NPCS3\r
252 #if defined(CONF_BOARD_SPI_NPCS3_GPIO) && defined(CONF_BOARD_SPI_NPCS3_FLAGS)\r
253         ioport_set_pin_peripheral_mode(CONF_BOARD_SPI_NPCS3_GPIO,\r
254                         CONF_BOARD_SPI_NPCS3_FLAGS);\r
255 #else\r
256         ioport_set_pin_peripheral_mode(SPI_NPCS3_PA5_GPIO, SPI_NPCS3_PA5_FLAGS);\r
257 #endif\r
258 #endif\r
259 #endif\r
260 \r
261 #if (defined(CONF_BOARD_TWI0) || defined(CONF_BOARD_QTOUCH))\r
262         ioport_set_pin_peripheral_mode(TWI0_DATA_GPIO, TWI0_DATA_FLAGS);\r
263         ioport_set_pin_peripheral_mode(TWI0_CLK_GPIO, TWI0_CLK_FLAGS);\r
264 #endif\r
265 \r
266 #if defined (CONF_BOARD_SD_MMC_HSMCI)\r
267         /* Configure HSMCI pins */\r
268         ioport_set_pin_peripheral_mode(PIN_HSMCI_MCCDA_GPIO, PIN_HSMCI_MCCDA_FLAGS);\r
269         ioport_set_pin_peripheral_mode(PIN_HSMCI_MCCK_GPIO, PIN_HSMCI_MCCK_FLAGS);\r
270         ioport_set_pin_peripheral_mode(PIN_HSMCI_MCDA0_GPIO, PIN_HSMCI_MCDA0_FLAGS);\r
271         ioport_set_pin_peripheral_mode(PIN_HSMCI_MCDA1_GPIO, PIN_HSMCI_MCDA1_FLAGS);\r
272         ioport_set_pin_peripheral_mode(PIN_HSMCI_MCDA2_GPIO, PIN_HSMCI_MCDA2_FLAGS);\r
273         ioport_set_pin_peripheral_mode(PIN_HSMCI_MCDA3_GPIO, PIN_HSMCI_MCDA3_FLAGS);\r
274 \r
275         /* Configure SD/MMC card detect pin */\r
276         ioport_set_pin_peripheral_mode(SD_MMC_0_CD_GPIO, SD_MMC_0_CD_FLAGS);\r
277 #endif\r
278 \r
279 #ifdef CONF_BOARD_TWI1\r
280         ioport_set_pin_peripheral_mode(TWI1_DATA_GPIO, TWI1_DATA_FLAGS);\r
281         ioport_set_pin_peripheral_mode(TWI1_CLK_GPIO, TWI1_CLK_FLAGS);\r
282 #endif\r
283 \r
284 #ifdef CONF_BOARD_KSZ8051MNL\r
285         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_RXC_IDX,\r
286                         PIN_KSZ8051MNL_RXC_FLAGS);\r
287         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_TXC_IDX,\r
288                         PIN_KSZ8051MNL_TXC_FLAGS);\r
289         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_TXEN_IDX,\r
290                         PIN_KSZ8051MNL_TXEN_FLAGS);\r
291         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_TXD3_IDX,\r
292                         PIN_KSZ8051MNL_TXD3_FLAGS);\r
293         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_TXD2_IDX,\r
294                         PIN_KSZ8051MNL_TXD2_FLAGS);\r
295         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_TXD1_IDX,\r
296                         PIN_KSZ8051MNL_TXD1_FLAGS);\r
297         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_TXD0_IDX,\r
298                         PIN_KSZ8051MNL_TXD0_FLAGS);\r
299         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_RXD3_IDX,\r
300                         PIN_KSZ8051MNL_RXD3_FLAGS);\r
301         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_RXD2_IDX,\r
302                         PIN_KSZ8051MNL_RXD2_FLAGS);\r
303         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_RXD1_IDX,\r
304                         PIN_KSZ8051MNL_RXD1_FLAGS);\r
305         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_RXD0_IDX,\r
306                         PIN_KSZ8051MNL_RXD0_FLAGS);\r
307         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_RXER_IDX,\r
308                         PIN_KSZ8051MNL_RXER_FLAGS);\r
309         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_RXDV_IDX,\r
310                         PIN_KSZ8051MNL_RXDV_FLAGS);\r
311         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_CRS_IDX,\r
312                         PIN_KSZ8051MNL_CRS_FLAGS);\r
313         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_COL_IDX,\r
314                         PIN_KSZ8051MNL_COL_FLAGS);\r
315         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_MDC_IDX,\r
316                         PIN_KSZ8051MNL_MDC_FLAGS);\r
317         ioport_set_pin_peripheral_mode(PIN_KSZ8051MNL_MDIO_IDX,\r
318                         PIN_KSZ8051MNL_MDIO_FLAGS);\r
319         ioport_set_pin_dir(PIN_KSZ8051MNL_INTRP_IDX, IOPORT_DIR_INPUT);\r
320 #endif\r
321 \r
322 #ifdef CONF_BOARD_TFDU4300_SD\r
323         /* Configure IrDA transceiver shutdown pin */\r
324         ioport_set_pin_dir(PIN_IRDA_SD_IDX, IOPORT_DIR_OUTPUT);\r
325         ioport_set_pin_level(PIN_IRDA_SD_IDX, IOPORT_PIN_LEVEL_HIGH);\r
326 #endif\r
327 \r
328 #ifdef CONF_BOARD_ADM3485_RE\r
329         /* Configure RS485 transceiver RE pin */\r
330         ioport_set_pin_dir(PIN_RE_IDX, IOPORT_DIR_OUTPUT);\r
331         ioport_set_pin_level(PIN_RE_IDX, IOPORT_PIN_LEVEL_LOW);\r
332 #endif\r
333 \r
334 #ifdef CONF_BOARD_ISO7816_RST\r
335         /* Configure ISO7816 card reset pin */\r
336         ioport_set_pin_dir(PIN_ISO7816_RST_IDX, IOPORT_DIR_OUTPUT);\r
337         ioport_set_pin_level(PIN_ISO7816_RST_IDX, IOPORT_PIN_LEVEL_LOW);\r
338 #endif\r
339 \r
340 #ifdef CONF_BOARD_ISO7816\r
341         /* Configure ISO7816 interface TXD & SCK pin */\r
342         ioport_set_pin_peripheral_mode(PIN_USART1_TXD_IDX, PIN_USART1_TXD_FLAGS);\r
343         ioport_set_pin_peripheral_mode(PIN_USART1_SCK_IDX, PIN_USART1_SCK_FLAGS);\r
344 #endif\r
345 \r
346 #ifdef CONF_BOARD_NAND\r
347         ioport_set_pin_peripheral_mode(PIN_EBI_NANDOE,   PIN_EBI_NANDOE_FLAGS);\r
348         ioport_set_pin_peripheral_mode(PIN_EBI_NANDWE,   PIN_EBI_NANDWE_FLAGS);\r
349         ioport_set_pin_peripheral_mode(PIN_EBI_NANDCLE,  PIN_EBI_NANDCLE_FLAGS);\r
350         ioport_set_pin_peripheral_mode(PIN_EBI_NANDALE,  PIN_EBI_NANDALE_FLAGS);\r
351         ioport_set_pin_peripheral_mode(PIN_EBI_NANDIO_0, PIN_EBI_NANDIO_0_FLAGS);\r
352         ioport_set_pin_peripheral_mode(PIN_EBI_NANDIO_1, PIN_EBI_NANDIO_1_FLAGS);\r
353         ioport_set_pin_peripheral_mode(PIN_EBI_NANDIO_2, PIN_EBI_NANDIO_2_FLAGS);\r
354         ioport_set_pin_peripheral_mode(PIN_EBI_NANDIO_3, PIN_EBI_NANDIO_3_FLAGS);\r
355         ioport_set_pin_peripheral_mode(PIN_EBI_NANDIO_4, PIN_EBI_NANDIO_4_FLAGS);\r
356         ioport_set_pin_peripheral_mode(PIN_EBI_NANDIO_5, PIN_EBI_NANDIO_5_FLAGS);\r
357         ioport_set_pin_peripheral_mode(PIN_EBI_NANDIO_6, PIN_EBI_NANDIO_6_FLAGS);\r
358         ioport_set_pin_peripheral_mode(PIN_EBI_NANDIO_7, PIN_EBI_NANDIO_7_FLAGS);\r
359     ioport_set_pin_dir(PIN_NF_CE_IDX, IOPORT_DIR_OUTPUT);\r
360     ioport_set_pin_dir(PIN_NF_RB_IDX, IOPORT_DIR_INPUT);\r
361         ioport_set_pin_mode(PIN_NF_RB_IDX, IOPORT_MODE_PULLUP);\r
362 #endif\r
363 \r
364 \r
365 #ifdef CONF_BOARD_QTOUCH\r
366         /* Configure CHANGE pin for QTouch device */\r
367         ioport_set_pin_input_mode(BOARD_QT_CHANGE_PIN_IDX, BOARD_QT_CHANGE_PIN_FLAGS,\r
368                         BOARD_QT_CHANGE_PIN_SENSE);\r
369 #endif\r
370 }\r