Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
board.h
Go to the documentation of this file.
1 /*
2  ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 */
16 
17 #pragma once
18 
19 /*
20  * Board identifier.
21  */
22 #define BOARD_PX4FMU
23 #define BOARD_NAME "Pixhawk PX4 FMU v 4.0"
24 
25 /*
26  * Board oscillators-related settings.
27  */
28 #if !defined(STM32_LSECLK)
29 #define STM32_LSECLK 0
30 #endif
31 
32 #if !defined(STM32_HSECLK)
33 #define STM32_HSECLK 24000000U
34 #endif
35 
36 /*
37  * Board voltages.
38  * Required for performance limits calculation.
39  */
40 #define STM32_VDD 300U
41 
42 /*
43  * MCU type as defined in the ST header.
44  */
45 #define STM32F427xx
46 
47 /*
48  * IO pins assignments.
49  */
50 #define USART4_TX 0U
51 #define USART4_RX 1U
52 #define VOLT_SENS 2U
53 #define CURRENT_SENS 3U
54 #define VDD_5V_SENS 4U
55 #define MPU9250_SCK 5U
56 #define MPU9250_MISO 6U
57 #define MPU9250_MOSI 7U
58 #define _8266_RTS 8U
59 #define USB_VBUS 9U
60 #define FRSKY_INV 10U
61 #define OTG_FS_DM 11U
62 #define OTG_FS_DP 12U
63 #define SWDIO 13U
64 #define SWCLK 14U
65 #define ALARM 15U
66 
67 #define _RC_INPUT 0U
68 #define LED_GREEN 1U
69 #define BOOT1 2U
70 #define LED_BLUE 3U
71 #define _8266_GPIO2 4U
72 #define VDD_BRICK_VALID 5U
73 #define USART1_TX 6U
74 #define USART1_RX 7U
75 #define I2C1_SCL 8U
76 #define I2C1_SDA 9U
77 #define FRAM_SCK 10U
78 #define LED_RED 11U
79 #define CAN2_RX 12U
80 #define CAN2_TX 13U
81 #define FRAM_MISO 14U
82 #define FRAM_MOSI 15U
83 
84 #define VBUS_VALID 0U
85 #define RSSI_IN 1U
86 #define MPU9250_CS 2U
87 #define LED_SAFETY 3U
88 #define SAFETY_SW_IN 4U
89 #define VDD_3V3_EN 5U
90 #define RC_OUTPUT 6U
91 #define RC_INPUT 7U
92 #define SDMMC1_D0 8U
93 #define SDMMC1_D1 9U
94 #define SDMMC1_D2 10U
95 #define SDMMC1_D3 11U
96 #define SDMMC1_CK 12U
97 #define SBUS_INV 13U
98 #define _20608_DRDY 14U
99 #define _20608_CS 15U
100 
101 #define CAN1_RX 0U
102 #define CAN1_TX 1U
103 #define SDMMC1_CMD 2U
104 #define USART2_CTS 3U
105 #define USART2_RTS 4U
106 #define USART2_TX 5U
107 #define USART2_RX 6U
108 #define BARO_CS 7U
109 #define USART3_TX 8U
110 #define USART3_RX 9U
111 #define FRAM_CS 10U
112 #define USART3_CTS 11U
113 #define USART3_RTS 12U
114 #define SERVO5 13U
115 #define SERVO6 14U
116 #define MPU9250_DRDY 15U
117 
118 #define UART8_RX 0U
119 #define UART8_TX 1U
120 #define _8266_GPIO0 2U
121 #define VDD_3V3_SENS_EN 3U
122 #define SPEKTRUM_POWER 4U
123 #define _8266_PD 5U
124 #define _8266_RST 6U
125 #define UART7_RX 7U
126 #define UART7_TX 8U
127 #define SERVO4 9U
128 #define _8266_CTS 10U
129 #define SERVO3 11U
130 #define HMC5983_DRDY 12U
131 #define SERVO2 13U
132 #define SERVO1 14U
133 #define HMC_5983 15U
134 
135 #define PF00 0U
136 #define PF01 1U
137 #define PF02 2U
138 #define PF03 3U
139 #define PF04 4U
140 #define PF05 5U
141 #define PF06 6U
142 #define PF07 7U
143 #define PF08 8U
144 #define PF09 9U
145 #define PF10 10U
146 #define PF11 11U
147 #define PF12 12U
148 #define PF13 13U
149 #define PF14 14U
150 #define PF15 15U
151 
152 #define PG00 0U
153 #define PG01 1U
154 #define PG02 2U
155 #define PG03 3U
156 #define PG04 4U
157 #define PG05 5U
158 #define PG06 6U
159 #define PG07 7U
160 #define PG08 8U
161 #define PG09 9U
162 #define PG10 10U
163 #define PG11 11U
164 #define PG12 12U
165 #define PG13 13U
166 #define PG14 14U
167 #define PG15 15U
168 
169 #define OSC_IN 0U
170 #define OSC_OUT 1U
171 #define PH02 2U
172 #define PH03 3U
173 #define PH04 4U
174 #define PH05 5U
175 #define PH06 6U
176 #define PH07 7U
177 #define PH08 8U
178 #define PH09 9U
179 #define PH10 10U
180 #define PH11 11U
181 #define PH12 12U
182 #define PH13 13U
183 #define PH14 14U
184 #define PH15 15U
185 
186 #define PI00 0U
187 #define PI01 1U
188 #define PI02 2U
189 #define PI03 3U
190 #define PI04 4U
191 #define PI05 5U
192 #define PI06 6U
193 #define PI07 7U
194 #define PI08 8U
195 #define PI09 9U
196 #define PI10 10U
197 #define PI11 11U
198 #define PI12 12U
199 #define PI13 13U
200 #define PI14 14U
201 #define PI15 15U
202 
203 #define PJ00 0U
204 #define PJ01 1U
205 #define PJ02 2U
206 #define PJ03 3U
207 #define PJ04 4U
208 #define PJ05 5U
209 #define PJ06 6U
210 #define PJ07 7U
211 #define PJ08 8U
212 #define PJ09 9U
213 #define PJ10 10U
214 #define PJ11 11U
215 #define PJ12 12U
216 #define PJ13 13U
217 #define PJ14 14U
218 #define PJ15 15U
219 
220 #define PK00 0U
221 #define PK01 1U
222 #define PK02 2U
223 #define PK03 3U
224 #define PK04 4U
225 #define PK05 5U
226 #define PK06 6U
227 #define PK07 7U
228 #define PK08 8U
229 #define PK09 9U
230 #define PK10 10U
231 #define PK11 11U
232 #define PK12 12U
233 #define PK13 13U
234 #define PK14 14U
235 #define PK15 15U
236 
237 /*
238  * IO lines assignments.
239  */
240 #define LINE_USART4_TX PAL_LINE(GPIOA, 0U)
241 #define LINE_USART4_RX PAL_LINE(GPIOA, 1U)
242 #define LINE_VOLT_SENS PAL_LINE(GPIOA, 2U)
243 #define LINE_CURRENT_SENS PAL_LINE(GPIOA, 3U)
244 #define LINE_VDD_5V_SENS PAL_LINE(GPIOA, 4U)
245 #define LINE_MPU9250_SCK PAL_LINE(GPIOA, 5U)
246 #define LINE_MPU9250_MISO PAL_LINE(GPIOA, 6U)
247 #define LINE_MPU9250_MOSI PAL_LINE(GPIOA, 7U)
248 #define LINE__8266_RTS PAL_LINE(GPIOA, 8U)
249 #define LINE_USB_VBUS PAL_LINE(GPIOA, 9U)
250 #define LINE_FRSKY_INV PAL_LINE(GPIOA, 10U)
251 #define LINE_OTG_FS_DM PAL_LINE(GPIOA, 11U)
252 #define LINE_OTG_FS_DP PAL_LINE(GPIOA, 12U)
253 #define LINE_SWDIO PAL_LINE(GPIOA, 13U)
254 #define LINE_SWCLK PAL_LINE(GPIOA, 14U)
255 #define LINE_ALARM PAL_LINE(GPIOA, 15U)
256 
257 #define LINE__RC_INPUT PAL_LINE(GPIOB, 0U)
258 #define LINE_LED_GREEN PAL_LINE(GPIOB, 1U)
259 #define LINE_BOOT1 PAL_LINE(GPIOB, 2U)
260 #define LINE_LED_BLUE PAL_LINE(GPIOB, 3U)
261 #define LINE__8266_GPIO2 PAL_LINE(GPIOB, 4U)
262 #define LINE_VDD_BRICK_VALID PAL_LINE(GPIOB, 5U)
263 #define LINE_USART1_TX PAL_LINE(GPIOB, 6U)
264 #define LINE_USART1_RX PAL_LINE(GPIOB, 7U)
265 #define LINE_I2C1_SCL PAL_LINE(GPIOB, 8U)
266 #define LINE_I2C1_SDA PAL_LINE(GPIOB, 9U)
267 #define LINE_FRAM_SCK PAL_LINE(GPIOB, 10U)
268 #define LINE_LED_RED PAL_LINE(GPIOB, 11U)
269 #define LINE_CAN2_RX PAL_LINE(GPIOB, 12U)
270 #define LINE_CAN2_TX PAL_LINE(GPIOB, 13U)
271 #define LINE_FRAM_MISO PAL_LINE(GPIOB, 14U)
272 #define LINE_FRAM_MOSI PAL_LINE(GPIOB, 15U)
273 
274 #define LINE_VBUS_VALID PAL_LINE(GPIOC, 0U)
275 #define LINE_RSSI_IN PAL_LINE(GPIOC, 1U)
276 #define LINE_MPU9250_CS PAL_LINE(GPIOC, 2U)
277 #define LINE_LED_SAFETY PAL_LINE(GPIOC, 3U)
278 #define LINE_SAFETY_SW_IN PAL_LINE(GPIOC, 4U)
279 #define LINE_VDD_3V3_EN PAL_LINE(GPIOC, 5U)
280 #define LINE_RC_OUTPUT PAL_LINE(GPIOC, 6U)
281 #define LINE_RC_INPUT PAL_LINE(GPIOC, 7U)
282 #define LINE_SDMMC1_D0 PAL_LINE(GPIOC, 8U)
283 #define LINE_SDMMC1_D1 PAL_LINE(GPIOC, 9U)
284 #define LINE_SDMMC1_D2 PAL_LINE(GPIOC, 10U)
285 #define LINE_SDMMC1_D3 PAL_LINE(GPIOC, 11U)
286 #define LINE_SDMMC1_CK PAL_LINE(GPIOC, 12U)
287 #define LINE_SBUS_INV PAL_LINE(GPIOC, 13U)
288 #define LINE__20608_DRDY PAL_LINE(GPIOC, 14U)
289 #define LINE__20608_CS PAL_LINE(GPIOC, 15U)
290 
291 #define LINE_CAN1_RX PAL_LINE(GPIOD, 0U)
292 #define LINE_CAN1_TX PAL_LINE(GPIOD, 1U)
293 #define LINE_SDMMC1_CMD PAL_LINE(GPIOD, 2U)
294 #define LINE_USART2_CTS PAL_LINE(GPIOD, 3U)
295 #define LINE_USART2_RTS PAL_LINE(GPIOD, 4U)
296 #define LINE_USART2_TX PAL_LINE(GPIOD, 5U)
297 #define LINE_USART2_RX PAL_LINE(GPIOD, 6U)
298 #define LINE_BARO_CS PAL_LINE(GPIOD, 7U)
299 #define LINE_USART3_TX PAL_LINE(GPIOD, 8U)
300 #define LINE_USART3_RX PAL_LINE(GPIOD, 9U)
301 #define LINE_FRAM_CS PAL_LINE(GPIOD, 10U)
302 #define LINE_USART3_CTS PAL_LINE(GPIOD, 11U)
303 #define LINE_USART3_RTS PAL_LINE(GPIOD, 12U)
304 #define LINE_SERVO5 PAL_LINE(GPIOD, 13U)
305 #define LINE_SERVO6 PAL_LINE(GPIOD, 14U)
306 #define LINE_MPU9250_DRDY PAL_LINE(GPIOD, 15U)
307 
308 #define LINE_UART8_RX PAL_LINE(GPIOE, 0U)
309 #define LINE_UART8_TX PAL_LINE(GPIOE, 1U)
310 #define LINE__8266_GPIO0 PAL_LINE(GPIOE, 2U)
311 #define LINE_VDD_3V3_SENS_EN PAL_LINE(GPIOE, 3U)
312 #define LINE_SPEKTRUM_POWER PAL_LINE(GPIOE, 4U)
313 #define LINE__8266_PD PAL_LINE(GPIOE, 5U)
314 #define LINE__8266_RST PAL_LINE(GPIOE, 6U)
315 #define LINE_UART7_RX PAL_LINE(GPIOE, 7U)
316 #define LINE_UART7_TX PAL_LINE(GPIOE, 8U)
317 #define LINE_SERVO4 PAL_LINE(GPIOE, 9U)
318 #define LINE__8266_CTS PAL_LINE(GPIOE, 10U)
319 #define LINE_SERVO3 PAL_LINE(GPIOE, 11U)
320 #define LINE_HMC5983_DRDY PAL_LINE(GPIOE, 12U)
321 #define LINE_SERVO2 PAL_LINE(GPIOE, 13U)
322 #define LINE_SERVO1 PAL_LINE(GPIOE, 14U)
323 #define LINE_HMC_5983 PAL_LINE(GPIOE, 15U)
324 
325 #define LINE_OSC_IN PAL_LINE(GPIOH, 0U)
326 #define LINE_OSC_OUT PAL_LINE(GPIOH, 1U)
327 
328 
329 /*
330  * I/O ports initial setup, this configuration is established soon after reset
331  * in the initialization code.
332  * Please refer to the STM32 Reference Manual for details.
333  */
334 #define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
335 #define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
336 #define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
337 #define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
338 #define PIN_ODR_LEVEL_LOW(n) (0U << (n))
339 #define PIN_ODR_LEVEL_HIGH(n) (1U << (n))
340 #define PIN_OTYPE_PUSHPULL(n) (0U << (n))
341 #define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
342 #define PIN_OSPEED_SPEED_VERYLOW(n) (0U << ((n) * 2U))
343 #define PIN_OSPEED_SPEED_LOW(n) (1U << ((n) * 2U))
344 #define PIN_OSPEED_SPEED_MEDIUM(n) (2U << ((n) * 2U))
345 #define PIN_OSPEED_SPEED_HIGH(n) (3U << ((n) * 2U))
346 #define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
347 #define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
348 #define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
349 #define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
350 
351 #define VAL_GPIOA_MODER (PIN_MODE_ALTERNATE(USART4_TX) | \
352  PIN_MODE_ALTERNATE(USART4_RX) | \
353  PIN_MODE_ANALOG(VOLT_SENS) | \
354  PIN_MODE_ANALOG(CURRENT_SENS) | \
355  PIN_MODE_ANALOG(VDD_5V_SENS) | \
356  PIN_MODE_ALTERNATE(MPU9250_SCK) | \
357  PIN_MODE_ALTERNATE(MPU9250_MISO) | \
358  PIN_MODE_ALTERNATE(MPU9250_MOSI) | \
359  PIN_MODE_INPUT(_8266_RTS) | \
360  PIN_MODE_INPUT(USB_VBUS) | \
361  PIN_MODE_OUTPUT(FRSKY_INV) | \
362  PIN_MODE_ALTERNATE(OTG_FS_DM) | \
363  PIN_MODE_ALTERNATE(OTG_FS_DP) | \
364  PIN_MODE_ALTERNATE(SWDIO) | \
365  PIN_MODE_ALTERNATE(SWCLK) | \
366  PIN_MODE_OUTPUT(ALARM))
367 
368 #define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(USART4_TX) | \
369  PIN_OTYPE_PUSHPULL(USART4_RX) | \
370  PIN_OTYPE_PUSHPULL(VOLT_SENS) | \
371  PIN_OTYPE_PUSHPULL(CURRENT_SENS) | \
372  PIN_OTYPE_PUSHPULL(VDD_5V_SENS) | \
373  PIN_OTYPE_PUSHPULL(MPU9250_SCK) | \
374  PIN_OTYPE_PUSHPULL(MPU9250_MISO) | \
375  PIN_OTYPE_PUSHPULL(MPU9250_MOSI) | \
376  PIN_OTYPE_OPENDRAIN(_8266_RTS) | \
377  PIN_OTYPE_OPENDRAIN(USB_VBUS) | \
378  PIN_OTYPE_PUSHPULL(FRSKY_INV) | \
379  PIN_OTYPE_PUSHPULL(OTG_FS_DM) | \
380  PIN_OTYPE_PUSHPULL(OTG_FS_DP) | \
381  PIN_OTYPE_PUSHPULL(SWDIO) | \
382  PIN_OTYPE_PUSHPULL(SWCLK) | \
383  PIN_OTYPE_PUSHPULL(ALARM))
384 
385 #define VAL_GPIOA_OSPEEDR (PIN_OSPEED_SPEED_HIGH(USART4_TX) | \
386  PIN_OSPEED_SPEED_HIGH(USART4_RX) | \
387  PIN_OSPEED_SPEED_VERYLOW(VOLT_SENS) | \
388  PIN_OSPEED_SPEED_VERYLOW(CURRENT_SENS) | \
389  PIN_OSPEED_SPEED_VERYLOW(VDD_5V_SENS) | \
390  PIN_OSPEED_SPEED_HIGH(MPU9250_SCK) | \
391  PIN_OSPEED_SPEED_HIGH(MPU9250_MISO) | \
392  PIN_OSPEED_SPEED_HIGH(MPU9250_MOSI) | \
393  PIN_OSPEED_SPEED_VERYLOW(_8266_RTS) | \
394  PIN_OSPEED_SPEED_VERYLOW(USB_VBUS) | \
395  PIN_OSPEED_SPEED_VERYLOW(FRSKY_INV) | \
396  PIN_OSPEED_SPEED_HIGH(OTG_FS_DM) | \
397  PIN_OSPEED_SPEED_HIGH(OTG_FS_DP) | \
398  PIN_OSPEED_SPEED_HIGH(SWDIO) | \
399  PIN_OSPEED_SPEED_HIGH(SWCLK) | \
400  PIN_OSPEED_SPEED_VERYLOW(ALARM))
401 
402 #define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(USART4_TX) | \
403  PIN_PUPDR_FLOATING(USART4_RX) | \
404  PIN_PUPDR_FLOATING(VOLT_SENS) | \
405  PIN_PUPDR_FLOATING(CURRENT_SENS) | \
406  PIN_PUPDR_FLOATING(VDD_5V_SENS) | \
407  PIN_PUPDR_FLOATING(MPU9250_SCK) | \
408  PIN_PUPDR_FLOATING(MPU9250_MISO) | \
409  PIN_PUPDR_FLOATING(MPU9250_MOSI) | \
410  PIN_PUPDR_PULLDOWN(_8266_RTS) | \
411  PIN_PUPDR_PULLDOWN(USB_VBUS) | \
412  PIN_PUPDR_FLOATING(FRSKY_INV) | \
413  PIN_PUPDR_FLOATING(OTG_FS_DM) | \
414  PIN_PUPDR_FLOATING(OTG_FS_DP) | \
415  PIN_PUPDR_FLOATING(SWDIO) | \
416  PIN_PUPDR_FLOATING(SWCLK) | \
417  PIN_PUPDR_FLOATING(ALARM))
418 
419 #define VAL_GPIOA_ODR (PIN_ODR_LEVEL_HIGH(USART4_TX) | \
420  PIN_ODR_LEVEL_HIGH(USART4_RX) | \
421  PIN_ODR_LEVEL_LOW(VOLT_SENS) | \
422  PIN_ODR_LEVEL_LOW(CURRENT_SENS) | \
423  PIN_ODR_LEVEL_LOW(VDD_5V_SENS) | \
424  PIN_ODR_LEVEL_HIGH(MPU9250_SCK) | \
425  PIN_ODR_LEVEL_HIGH(MPU9250_MISO) | \
426  PIN_ODR_LEVEL_HIGH(MPU9250_MOSI) | \
427  PIN_ODR_LEVEL_HIGH(_8266_RTS) | \
428  PIN_ODR_LEVEL_LOW(USB_VBUS) | \
429  PIN_ODR_LEVEL_HIGH(FRSKY_INV) | \
430  PIN_ODR_LEVEL_HIGH(OTG_FS_DM) | \
431  PIN_ODR_LEVEL_HIGH(OTG_FS_DP) | \
432  PIN_ODR_LEVEL_HIGH(SWDIO) | \
433  PIN_ODR_LEVEL_HIGH(SWCLK) | \
434  PIN_ODR_LEVEL_HIGH(ALARM))
435 
436 #define VAL_GPIOA_AFRL (PIN_AFIO_AF(USART4_TX, 8) | \
437  PIN_AFIO_AF(USART4_RX, 8) | \
438  PIN_AFIO_AF(VOLT_SENS, 0) | \
439  PIN_AFIO_AF(CURRENT_SENS, 0) | \
440  PIN_AFIO_AF(VDD_5V_SENS, 0) | \
441  PIN_AFIO_AF(MPU9250_SCK, 5) | \
442  PIN_AFIO_AF(MPU9250_MISO, 5) | \
443  PIN_AFIO_AF(MPU9250_MOSI, 5))
444 
445 #define VAL_GPIOA_AFRH (PIN_AFIO_AF(_8266_RTS, 0) | \
446  PIN_AFIO_AF(USB_VBUS, 0) | \
447  PIN_AFIO_AF(FRSKY_INV, 0) | \
448  PIN_AFIO_AF(OTG_FS_DM, 10) | \
449  PIN_AFIO_AF(OTG_FS_DP, 10) | \
450  PIN_AFIO_AF(SWDIO, 0) | \
451  PIN_AFIO_AF(SWCLK, 0) | \
452  PIN_AFIO_AF(ALARM, 0))
453 
454 #define VAL_GPIOB_MODER (PIN_MODE_INPUT(_RC_INPUT) | \
455  PIN_MODE_OUTPUT(LED_GREEN) | \
456  PIN_MODE_INPUT(BOOT1) | \
457  PIN_MODE_OUTPUT(LED_BLUE) | \
458  PIN_MODE_INPUT(_8266_GPIO2) | \
459  PIN_MODE_INPUT(VDD_BRICK_VALID) | \
460  PIN_MODE_ALTERNATE(USART1_TX) | \
461  PIN_MODE_ALTERNATE(USART1_RX) | \
462  PIN_MODE_ALTERNATE(I2C1_SCL) | \
463  PIN_MODE_ALTERNATE(I2C1_SDA) | \
464  PIN_MODE_ALTERNATE(FRAM_SCK) | \
465  PIN_MODE_OUTPUT(LED_RED) | \
466  PIN_MODE_ALTERNATE(CAN2_RX) | \
467  PIN_MODE_ALTERNATE(CAN2_TX) | \
468  PIN_MODE_ALTERNATE(FRAM_MISO) | \
469  PIN_MODE_ALTERNATE(FRAM_MOSI))
470 
471 #define VAL_GPIOB_OTYPER (PIN_OTYPE_OPENDRAIN(_RC_INPUT) | \
472  PIN_OTYPE_PUSHPULL(LED_GREEN) | \
473  PIN_OTYPE_OPENDRAIN(BOOT1) | \
474  PIN_OTYPE_PUSHPULL(LED_BLUE) | \
475  PIN_OTYPE_OPENDRAIN(_8266_GPIO2) | \
476  PIN_OTYPE_OPENDRAIN(VDD_BRICK_VALID) | \
477  PIN_OTYPE_PUSHPULL(USART1_TX) | \
478  PIN_OTYPE_PUSHPULL(USART1_RX) | \
479  PIN_OTYPE_OPENDRAIN(I2C1_SCL) | \
480  PIN_OTYPE_OPENDRAIN(I2C1_SDA) | \
481  PIN_OTYPE_PUSHPULL(FRAM_SCK) | \
482  PIN_OTYPE_PUSHPULL(LED_RED) | \
483  PIN_OTYPE_PUSHPULL(CAN2_RX) | \
484  PIN_OTYPE_PUSHPULL(CAN2_TX) | \
485  PIN_OTYPE_PUSHPULL(FRAM_MISO) | \
486  PIN_OTYPE_PUSHPULL(FRAM_MOSI))
487 
488 #define VAL_GPIOB_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(_RC_INPUT) | \
489  PIN_OSPEED_SPEED_VERYLOW(LED_GREEN) | \
490  PIN_OSPEED_SPEED_VERYLOW(BOOT1) | \
491  PIN_OSPEED_SPEED_VERYLOW(LED_BLUE) | \
492  PIN_OSPEED_SPEED_VERYLOW(_8266_GPIO2) | \
493  PIN_OSPEED_SPEED_VERYLOW(VDD_BRICK_VALID) | \
494  PIN_OSPEED_SPEED_HIGH(USART1_TX) | \
495  PIN_OSPEED_SPEED_HIGH(USART1_RX) | \
496  PIN_OSPEED_SPEED_HIGH(I2C1_SCL) | \
497  PIN_OSPEED_SPEED_HIGH(I2C1_SDA) | \
498  PIN_OSPEED_SPEED_HIGH(FRAM_SCK) | \
499  PIN_OSPEED_SPEED_VERYLOW(LED_RED) | \
500  PIN_OSPEED_SPEED_HIGH(CAN2_RX) | \
501  PIN_OSPEED_SPEED_HIGH(CAN2_TX) | \
502  PIN_OSPEED_SPEED_HIGH(FRAM_MISO) | \
503  PIN_OSPEED_SPEED_HIGH(FRAM_MOSI))
504 
505 #define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLDOWN(_RC_INPUT) | \
506  PIN_PUPDR_FLOATING(LED_GREEN) | \
507  PIN_PUPDR_PULLDOWN(BOOT1) | \
508  PIN_PUPDR_FLOATING(LED_BLUE) | \
509  PIN_PUPDR_PULLDOWN(_8266_GPIO2) | \
510  PIN_PUPDR_PULLDOWN(VDD_BRICK_VALID) | \
511  PIN_PUPDR_FLOATING(USART1_TX) | \
512  PIN_PUPDR_FLOATING(USART1_RX) | \
513  PIN_PUPDR_PULLUP(I2C1_SCL) | \
514  PIN_PUPDR_PULLUP(I2C1_SDA) | \
515  PIN_PUPDR_FLOATING(FRAM_SCK) | \
516  PIN_PUPDR_FLOATING(LED_RED) | \
517  PIN_PUPDR_FLOATING(CAN2_RX) | \
518  PIN_PUPDR_FLOATING(CAN2_TX) | \
519  PIN_PUPDR_FLOATING(FRAM_MISO) | \
520  PIN_PUPDR_FLOATING(FRAM_MOSI))
521 
522 #define VAL_GPIOB_ODR (PIN_ODR_LEVEL_HIGH(_RC_INPUT) | \
523  PIN_ODR_LEVEL_LOW(LED_GREEN) | \
524  PIN_ODR_LEVEL_HIGH(BOOT1) | \
525  PIN_ODR_LEVEL_LOW(LED_BLUE) | \
526  PIN_ODR_LEVEL_HIGH(_8266_GPIO2) | \
527  PIN_ODR_LEVEL_HIGH(VDD_BRICK_VALID) | \
528  PIN_ODR_LEVEL_HIGH(USART1_TX) | \
529  PIN_ODR_LEVEL_HIGH(USART1_RX) | \
530  PIN_ODR_LEVEL_HIGH(I2C1_SCL) | \
531  PIN_ODR_LEVEL_HIGH(I2C1_SDA) | \
532  PIN_ODR_LEVEL_HIGH(FRAM_SCK) | \
533  PIN_ODR_LEVEL_LOW(LED_RED) | \
534  PIN_ODR_LEVEL_HIGH(CAN2_RX) | \
535  PIN_ODR_LEVEL_HIGH(CAN2_TX) | \
536  PIN_ODR_LEVEL_HIGH(FRAM_MISO) | \
537  PIN_ODR_LEVEL_HIGH(FRAM_MOSI))
538 
539 #define VAL_GPIOB_AFRL (PIN_AFIO_AF(_RC_INPUT, 0) | \
540  PIN_AFIO_AF(LED_GREEN, 0) | \
541  PIN_AFIO_AF(BOOT1, 0) | \
542  PIN_AFIO_AF(LED_BLUE, 0) | \
543  PIN_AFIO_AF(_8266_GPIO2, 0) | \
544  PIN_AFIO_AF(VDD_BRICK_VALID, 0) | \
545  PIN_AFIO_AF(USART1_TX, 7) | \
546  PIN_AFIO_AF(USART1_RX, 7))
547 
548 #define VAL_GPIOB_AFRH (PIN_AFIO_AF(I2C1_SCL, 4) | \
549  PIN_AFIO_AF(I2C1_SDA, 4) | \
550  PIN_AFIO_AF(FRAM_SCK, 5) | \
551  PIN_AFIO_AF(LED_RED, 0) | \
552  PIN_AFIO_AF(CAN2_RX, 9) | \
553  PIN_AFIO_AF(CAN2_TX, 9) | \
554  PIN_AFIO_AF(FRAM_MISO, 5) | \
555  PIN_AFIO_AF(FRAM_MOSI, 5))
556 
557 #define VAL_GPIOC_MODER (PIN_MODE_INPUT(VBUS_VALID) | \
558  PIN_MODE_INPUT(RSSI_IN) | \
559  PIN_MODE_OUTPUT(MPU9250_CS) | \
560  PIN_MODE_OUTPUT(LED_SAFETY) | \
561  PIN_MODE_INPUT(SAFETY_SW_IN) | \
562  PIN_MODE_OUTPUT(VDD_3V3_EN) | \
563  PIN_MODE_INPUT(RC_OUTPUT) | \
564  PIN_MODE_ALTERNATE(RC_INPUT) | \
565  PIN_MODE_ALTERNATE(SDMMC1_D0) | \
566  PIN_MODE_ALTERNATE(SDMMC1_D1) | \
567  PIN_MODE_ALTERNATE(SDMMC1_D2) | \
568  PIN_MODE_ALTERNATE(SDMMC1_D3) | \
569  PIN_MODE_ALTERNATE(SDMMC1_CK) | \
570  PIN_MODE_OUTPUT(SBUS_INV) | \
571  PIN_MODE_INPUT(_20608_DRDY) | \
572  PIN_MODE_OUTPUT(_20608_CS))
573 
574 #define VAL_GPIOC_OTYPER (PIN_OTYPE_OPENDRAIN(VBUS_VALID) | \
575  PIN_OTYPE_OPENDRAIN(RSSI_IN) | \
576  PIN_OTYPE_PUSHPULL(MPU9250_CS) | \
577  PIN_OTYPE_PUSHPULL(LED_SAFETY) | \
578  PIN_OTYPE_OPENDRAIN(SAFETY_SW_IN) | \
579  PIN_OTYPE_PUSHPULL(VDD_3V3_EN) | \
580  PIN_OTYPE_OPENDRAIN(RC_OUTPUT) | \
581  PIN_OTYPE_PUSHPULL(RC_INPUT) | \
582  PIN_OTYPE_PUSHPULL(SDMMC1_D0) | \
583  PIN_OTYPE_PUSHPULL(SDMMC1_D1) | \
584  PIN_OTYPE_PUSHPULL(SDMMC1_D2) | \
585  PIN_OTYPE_PUSHPULL(SDMMC1_D3) | \
586  PIN_OTYPE_PUSHPULL(SDMMC1_CK) | \
587  PIN_OTYPE_PUSHPULL(SBUS_INV) | \
588  PIN_OTYPE_OPENDRAIN(_20608_DRDY) | \
589  PIN_OTYPE_PUSHPULL(_20608_CS))
590 
591 #define VAL_GPIOC_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(VBUS_VALID) | \
592  PIN_OSPEED_SPEED_VERYLOW(RSSI_IN) | \
593  PIN_OSPEED_SPEED_HIGH(MPU9250_CS) | \
594  PIN_OSPEED_SPEED_VERYLOW(LED_SAFETY) | \
595  PIN_OSPEED_SPEED_VERYLOW(SAFETY_SW_IN) | \
596  PIN_OSPEED_SPEED_VERYLOW(VDD_3V3_EN) | \
597  PIN_OSPEED_SPEED_VERYLOW(RC_OUTPUT) | \
598  PIN_OSPEED_SPEED_HIGH(RC_INPUT) | \
599  PIN_OSPEED_SPEED_HIGH(SDMMC1_D0) | \
600  PIN_OSPEED_SPEED_HIGH(SDMMC1_D1) | \
601  PIN_OSPEED_SPEED_HIGH(SDMMC1_D2) | \
602  PIN_OSPEED_SPEED_HIGH(SDMMC1_D3) | \
603  PIN_OSPEED_SPEED_HIGH(SDMMC1_CK) | \
604  PIN_OSPEED_SPEED_VERYLOW(SBUS_INV) | \
605  PIN_OSPEED_SPEED_VERYLOW(_20608_DRDY) | \
606  PIN_OSPEED_SPEED_HIGH(_20608_CS))
607 
608 #define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLDOWN(VBUS_VALID) | \
609  PIN_PUPDR_PULLDOWN(RSSI_IN) | \
610  PIN_PUPDR_FLOATING(MPU9250_CS) | \
611  PIN_PUPDR_FLOATING(LED_SAFETY) | \
612  PIN_PUPDR_FLOATING(SAFETY_SW_IN) | \
613  PIN_PUPDR_FLOATING(VDD_3V3_EN) | \
614  PIN_PUPDR_PULLDOWN(RC_OUTPUT) | \
615  PIN_PUPDR_FLOATING(RC_INPUT) | \
616  PIN_PUPDR_PULLUP(SDMMC1_D0) | \
617  PIN_PUPDR_PULLUP(SDMMC1_D1) | \
618  PIN_PUPDR_PULLUP(SDMMC1_D2) | \
619  PIN_PUPDR_PULLUP(SDMMC1_D3) | \
620  PIN_PUPDR_PULLUP(SDMMC1_CK) | \
621  PIN_PUPDR_FLOATING(SBUS_INV) | \
622  PIN_PUPDR_PULLDOWN(_20608_DRDY) | \
623  PIN_PUPDR_FLOATING(_20608_CS))
624 
625 #define VAL_GPIOC_ODR (PIN_ODR_LEVEL_HIGH(VBUS_VALID) | \
626  PIN_ODR_LEVEL_HIGH(RSSI_IN) | \
627  PIN_ODR_LEVEL_HIGH(MPU9250_CS) | \
628  PIN_ODR_LEVEL_LOW(LED_SAFETY) | \
629  PIN_ODR_LEVEL_LOW(SAFETY_SW_IN) | \
630  PIN_ODR_LEVEL_HIGH(VDD_3V3_EN) | \
631  PIN_ODR_LEVEL_HIGH(RC_OUTPUT) | \
632  PIN_ODR_LEVEL_HIGH(RC_INPUT) | \
633  PIN_ODR_LEVEL_HIGH(SDMMC1_D0) | \
634  PIN_ODR_LEVEL_HIGH(SDMMC1_D1) | \
635  PIN_ODR_LEVEL_HIGH(SDMMC1_D2) | \
636  PIN_ODR_LEVEL_HIGH(SDMMC1_D3) | \
637  PIN_ODR_LEVEL_HIGH(SDMMC1_CK) | \
638  PIN_ODR_LEVEL_HIGH(SBUS_INV) | \
639  PIN_ODR_LEVEL_HIGH(_20608_DRDY) | \
640  PIN_ODR_LEVEL_HIGH(_20608_CS))
641 
642 #define VAL_GPIOC_AFRL (PIN_AFIO_AF(VBUS_VALID, 0) | \
643  PIN_AFIO_AF(RSSI_IN, 0) | \
644  PIN_AFIO_AF(MPU9250_CS, 0) | \
645  PIN_AFIO_AF(LED_SAFETY, 0) | \
646  PIN_AFIO_AF(SAFETY_SW_IN, 0) | \
647  PIN_AFIO_AF(VDD_3V3_EN, 0) | \
648  PIN_AFIO_AF(RC_OUTPUT, 0) | \
649  PIN_AFIO_AF(RC_INPUT, 8))
650 
651 #define VAL_GPIOC_AFRH (PIN_AFIO_AF(SDMMC1_D0, 12) | \
652  PIN_AFIO_AF(SDMMC1_D1, 12) | \
653  PIN_AFIO_AF(SDMMC1_D2, 12) | \
654  PIN_AFIO_AF(SDMMC1_D3, 12) | \
655  PIN_AFIO_AF(SDMMC1_CK, 12) | \
656  PIN_AFIO_AF(SBUS_INV, 0) | \
657  PIN_AFIO_AF(_20608_DRDY, 0) | \
658  PIN_AFIO_AF(_20608_CS, 0))
659 
660 #define VAL_GPIOD_MODER (PIN_MODE_ALTERNATE(CAN1_RX) | \
661  PIN_MODE_ALTERNATE(CAN1_TX) | \
662  PIN_MODE_ALTERNATE(SDMMC1_CMD) | \
663  PIN_MODE_INPUT(USART2_CTS) | \
664  PIN_MODE_INPUT(USART2_RTS) | \
665  PIN_MODE_ALTERNATE(USART2_TX) | \
666  PIN_MODE_ALTERNATE(USART2_RX) | \
667  PIN_MODE_OUTPUT(BARO_CS) | \
668  PIN_MODE_ALTERNATE(USART3_TX) | \
669  PIN_MODE_ALTERNATE(USART3_RX) | \
670  PIN_MODE_OUTPUT(FRAM_CS) | \
671  PIN_MODE_INPUT(USART3_CTS) | \
672  PIN_MODE_INPUT(USART3_RTS) | \
673  PIN_MODE_ALTERNATE(SERVO5) | \
674  PIN_MODE_ALTERNATE(SERVO6) | \
675  PIN_MODE_INPUT(MPU9250_DRDY))
676 
677 #define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(CAN1_RX) | \
678  PIN_OTYPE_PUSHPULL(CAN1_TX) | \
679  PIN_OTYPE_PUSHPULL(SDMMC1_CMD) | \
680  PIN_OTYPE_OPENDRAIN(USART2_CTS) | \
681  PIN_OTYPE_OPENDRAIN(USART2_RTS) | \
682  PIN_OTYPE_PUSHPULL(USART2_TX) | \
683  PIN_OTYPE_PUSHPULL(USART2_RX) | \
684  PIN_OTYPE_PUSHPULL(BARO_CS) | \
685  PIN_OTYPE_PUSHPULL(USART3_TX) | \
686  PIN_OTYPE_PUSHPULL(USART3_RX) | \
687  PIN_OTYPE_PUSHPULL(FRAM_CS) | \
688  PIN_OTYPE_OPENDRAIN(USART3_CTS) | \
689  PIN_OTYPE_OPENDRAIN(USART3_RTS) | \
690  PIN_OTYPE_PUSHPULL(SERVO5) | \
691  PIN_OTYPE_PUSHPULL(SERVO6) | \
692  PIN_OTYPE_OPENDRAIN(MPU9250_DRDY))
693 
694 #define VAL_GPIOD_OSPEEDR (PIN_OSPEED_SPEED_HIGH(CAN1_RX) | \
695  PIN_OSPEED_SPEED_HIGH(CAN1_TX) | \
696  PIN_OSPEED_SPEED_HIGH(SDMMC1_CMD) | \
697  PIN_OSPEED_SPEED_VERYLOW(USART2_CTS) | \
698  PIN_OSPEED_SPEED_VERYLOW(USART2_RTS) | \
699  PIN_OSPEED_SPEED_HIGH(USART2_TX) | \
700  PIN_OSPEED_SPEED_HIGH(USART2_RX) | \
701  PIN_OSPEED_SPEED_HIGH(BARO_CS) | \
702  PIN_OSPEED_SPEED_HIGH(USART3_TX) | \
703  PIN_OSPEED_SPEED_HIGH(USART3_RX) | \
704  PIN_OSPEED_SPEED_HIGH(FRAM_CS) | \
705  PIN_OSPEED_SPEED_VERYLOW(USART3_CTS) | \
706  PIN_OSPEED_SPEED_VERYLOW(USART3_RTS) | \
707  PIN_OSPEED_SPEED_HIGH(SERVO5) | \
708  PIN_OSPEED_SPEED_HIGH(SERVO6) | \
709  PIN_OSPEED_SPEED_VERYLOW(MPU9250_DRDY))
710 
711 #define VAL_GPIOD_PUPDR (PIN_PUPDR_FLOATING(CAN1_RX) | \
712  PIN_PUPDR_FLOATING(CAN1_TX) | \
713  PIN_PUPDR_PULLUP(SDMMC1_CMD) | \
714  PIN_PUPDR_PULLDOWN(USART2_CTS) | \
715  PIN_PUPDR_PULLDOWN(USART2_RTS) | \
716  PIN_PUPDR_FLOATING(USART2_TX) | \
717  PIN_PUPDR_FLOATING(USART2_RX) | \
718  PIN_PUPDR_FLOATING(BARO_CS) | \
719  PIN_PUPDR_FLOATING(USART3_TX) | \
720  PIN_PUPDR_FLOATING(USART3_RX) | \
721  PIN_PUPDR_FLOATING(FRAM_CS) | \
722  PIN_PUPDR_PULLDOWN(USART3_CTS) | \
723  PIN_PUPDR_PULLDOWN(USART3_RTS) | \
724  PIN_PUPDR_FLOATING(SERVO5) | \
725  PIN_PUPDR_FLOATING(SERVO6) | \
726  PIN_PUPDR_FLOATING(MPU9250_DRDY))
727 
728 #define VAL_GPIOD_ODR (PIN_ODR_LEVEL_HIGH(CAN1_RX) | \
729  PIN_ODR_LEVEL_HIGH(CAN1_TX) | \
730  PIN_ODR_LEVEL_HIGH(SDMMC1_CMD) | \
731  PIN_ODR_LEVEL_HIGH(USART2_CTS) | \
732  PIN_ODR_LEVEL_HIGH(USART2_RTS) | \
733  PIN_ODR_LEVEL_HIGH(USART2_TX) | \
734  PIN_ODR_LEVEL_HIGH(USART2_RX) | \
735  PIN_ODR_LEVEL_HIGH(BARO_CS) | \
736  PIN_ODR_LEVEL_HIGH(USART3_TX) | \
737  PIN_ODR_LEVEL_HIGH(USART3_RX) | \
738  PIN_ODR_LEVEL_HIGH(FRAM_CS) | \
739  PIN_ODR_LEVEL_HIGH(USART3_CTS) | \
740  PIN_ODR_LEVEL_HIGH(USART3_RTS) | \
741  PIN_ODR_LEVEL_LOW(SERVO5) | \
742  PIN_ODR_LEVEL_LOW(SERVO6) | \
743  PIN_ODR_LEVEL_LOW(MPU9250_DRDY))
744 
745 #define VAL_GPIOD_AFRL (PIN_AFIO_AF(CAN1_RX, 9) | \
746  PIN_AFIO_AF(CAN1_TX, 9) | \
747  PIN_AFIO_AF(SDMMC1_CMD, 12) | \
748  PIN_AFIO_AF(USART2_CTS, 0) | \
749  PIN_AFIO_AF(USART2_RTS, 0) | \
750  PIN_AFIO_AF(USART2_TX, 7) | \
751  PIN_AFIO_AF(USART2_RX, 7) | \
752  PIN_AFIO_AF(BARO_CS, 0))
753 
754 #define VAL_GPIOD_AFRH (PIN_AFIO_AF(USART3_TX, 7) | \
755  PIN_AFIO_AF(USART3_RX, 7) | \
756  PIN_AFIO_AF(FRAM_CS, 0) | \
757  PIN_AFIO_AF(USART3_CTS, 0) | \
758  PIN_AFIO_AF(USART3_RTS, 0) | \
759  PIN_AFIO_AF(SERVO5, 2) | \
760  PIN_AFIO_AF(SERVO6, 2) | \
761  PIN_AFIO_AF(MPU9250_DRDY, 0))
762 
763 #define VAL_GPIOE_MODER (PIN_MODE_ALTERNATE(UART8_RX) | \
764  PIN_MODE_ALTERNATE(UART8_TX) | \
765  PIN_MODE_INPUT(_8266_GPIO0) | \
766  PIN_MODE_OUTPUT(VDD_3V3_SENS_EN) | \
767  PIN_MODE_OUTPUT(SPEKTRUM_POWER) | \
768  PIN_MODE_INPUT(_8266_PD) | \
769  PIN_MODE_INPUT(_8266_RST) | \
770  PIN_MODE_ALTERNATE(UART7_RX) | \
771  PIN_MODE_ALTERNATE(UART7_TX) | \
772  PIN_MODE_ALTERNATE(SERVO4) | \
773  PIN_MODE_INPUT(_8266_CTS) | \
774  PIN_MODE_ALTERNATE(SERVO3) | \
775  PIN_MODE_INPUT(HMC5983_DRDY) | \
776  PIN_MODE_ALTERNATE(SERVO2) | \
777  PIN_MODE_ALTERNATE(SERVO1) | \
778  PIN_MODE_OUTPUT(HMC_5983))
779 
780 #define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(UART8_RX) | \
781  PIN_OTYPE_PUSHPULL(UART8_TX) | \
782  PIN_OTYPE_OPENDRAIN(_8266_GPIO0) | \
783  PIN_OTYPE_PUSHPULL(VDD_3V3_SENS_EN) | \
784  PIN_OTYPE_PUSHPULL(SPEKTRUM_POWER) | \
785  PIN_OTYPE_OPENDRAIN(_8266_PD) | \
786  PIN_OTYPE_OPENDRAIN(_8266_RST) | \
787  PIN_OTYPE_PUSHPULL(UART7_RX) | \
788  PIN_OTYPE_PUSHPULL(UART7_TX) | \
789  PIN_OTYPE_PUSHPULL(SERVO4) | \
790  PIN_OTYPE_OPENDRAIN(_8266_CTS) | \
791  PIN_OTYPE_PUSHPULL(SERVO3) | \
792  PIN_OTYPE_OPENDRAIN(HMC5983_DRDY) | \
793  PIN_OTYPE_PUSHPULL(SERVO2) | \
794  PIN_OTYPE_PUSHPULL(SERVO1) | \
795  PIN_OTYPE_PUSHPULL(HMC_5983))
796 
797 #define VAL_GPIOE_OSPEEDR (PIN_OSPEED_SPEED_HIGH(UART8_RX) | \
798  PIN_OSPEED_SPEED_HIGH(UART8_TX) | \
799  PIN_OSPEED_SPEED_VERYLOW(_8266_GPIO0) | \
800  PIN_OSPEED_SPEED_VERYLOW(VDD_3V3_SENS_EN) | \
801  PIN_OSPEED_SPEED_VERYLOW(SPEKTRUM_POWER) | \
802  PIN_OSPEED_SPEED_VERYLOW(_8266_PD) | \
803  PIN_OSPEED_SPEED_VERYLOW(_8266_RST) | \
804  PIN_OSPEED_SPEED_HIGH(UART7_RX) | \
805  PIN_OSPEED_SPEED_HIGH(UART7_TX) | \
806  PIN_OSPEED_SPEED_HIGH(SERVO4) | \
807  PIN_OSPEED_SPEED_VERYLOW(_8266_CTS) | \
808  PIN_OSPEED_SPEED_HIGH(SERVO3) | \
809  PIN_OSPEED_SPEED_VERYLOW(HMC5983_DRDY) | \
810  PIN_OSPEED_SPEED_HIGH(SERVO2) | \
811  PIN_OSPEED_SPEED_HIGH(SERVO1) | \
812  PIN_OSPEED_SPEED_HIGH(HMC_5983))
813 
814 #define VAL_GPIOE_PUPDR (PIN_PUPDR_FLOATING(UART8_RX) | \
815  PIN_PUPDR_FLOATING(UART8_TX) | \
816  PIN_PUPDR_PULLDOWN(_8266_GPIO0) | \
817  PIN_PUPDR_FLOATING(VDD_3V3_SENS_EN) | \
818  PIN_PUPDR_FLOATING(SPEKTRUM_POWER) | \
819  PIN_PUPDR_PULLDOWN(_8266_PD) | \
820  PIN_PUPDR_PULLDOWN(_8266_RST) | \
821  PIN_PUPDR_FLOATING(UART7_RX) | \
822  PIN_PUPDR_FLOATING(UART7_TX) | \
823  PIN_PUPDR_FLOATING(SERVO4) | \
824  PIN_PUPDR_PULLDOWN(_8266_CTS) | \
825  PIN_PUPDR_FLOATING(SERVO3) | \
826  PIN_PUPDR_FLOATING(HMC5983_DRDY) | \
827  PIN_PUPDR_FLOATING(SERVO2) | \
828  PIN_PUPDR_FLOATING(SERVO1) | \
829  PIN_PUPDR_FLOATING(HMC_5983))
830 
831 #define VAL_GPIOE_ODR (PIN_ODR_LEVEL_HIGH(UART8_RX) | \
832  PIN_ODR_LEVEL_HIGH(UART8_TX) | \
833  PIN_ODR_LEVEL_HIGH(_8266_GPIO0) | \
834  PIN_ODR_LEVEL_HIGH(VDD_3V3_SENS_EN) | \
835  PIN_ODR_LEVEL_HIGH(SPEKTRUM_POWER) | \
836  PIN_ODR_LEVEL_HIGH(_8266_PD) | \
837  PIN_ODR_LEVEL_HIGH(_8266_RST) | \
838  PIN_ODR_LEVEL_HIGH(UART7_RX) | \
839  PIN_ODR_LEVEL_HIGH(UART7_TX) | \
840  PIN_ODR_LEVEL_LOW(SERVO4) | \
841  PIN_ODR_LEVEL_HIGH(_8266_CTS) | \
842  PIN_ODR_LEVEL_LOW(SERVO3) | \
843  PIN_ODR_LEVEL_LOW(HMC5983_DRDY) | \
844  PIN_ODR_LEVEL_LOW(SERVO2) | \
845  PIN_ODR_LEVEL_LOW(SERVO1) | \
846  PIN_ODR_LEVEL_HIGH(HMC_5983))
847 
848 #define VAL_GPIOE_AFRL (PIN_AFIO_AF(UART8_RX, 8) | \
849  PIN_AFIO_AF(UART8_TX, 8) | \
850  PIN_AFIO_AF(_8266_GPIO0, 0) | \
851  PIN_AFIO_AF(VDD_3V3_SENS_EN, 0) | \
852  PIN_AFIO_AF(SPEKTRUM_POWER, 0) | \
853  PIN_AFIO_AF(_8266_PD, 0) | \
854  PIN_AFIO_AF(_8266_RST, 0) | \
855  PIN_AFIO_AF(UART7_RX, 8))
856 
857 #define VAL_GPIOE_AFRH (PIN_AFIO_AF(UART7_TX, 8) | \
858  PIN_AFIO_AF(SERVO4, 1) | \
859  PIN_AFIO_AF(_8266_CTS, 0) | \
860  PIN_AFIO_AF(SERVO3, 1) | \
861  PIN_AFIO_AF(HMC5983_DRDY, 0) | \
862  PIN_AFIO_AF(SERVO2, 1) | \
863  PIN_AFIO_AF(SERVO1, 1) | \
864  PIN_AFIO_AF(HMC_5983, 0))
865 
866 #define VAL_GPIOF_MODER (PIN_MODE_INPUT(PF00) | \
867  PIN_MODE_INPUT(PF01) | \
868  PIN_MODE_INPUT(PF02) | \
869  PIN_MODE_INPUT(PF03) | \
870  PIN_MODE_INPUT(PF04) | \
871  PIN_MODE_INPUT(PF05) | \
872  PIN_MODE_INPUT(PF06) | \
873  PIN_MODE_INPUT(PF07) | \
874  PIN_MODE_INPUT(PF08) | \
875  PIN_MODE_INPUT(PF09) | \
876  PIN_MODE_INPUT(PF10) | \
877  PIN_MODE_INPUT(PF11) | \
878  PIN_MODE_INPUT(PF12) | \
879  PIN_MODE_INPUT(PF13) | \
880  PIN_MODE_INPUT(PF14) | \
881  PIN_MODE_INPUT(PF15))
882 
883 #define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(PF00) | \
884  PIN_OTYPE_PUSHPULL(PF01) | \
885  PIN_OTYPE_PUSHPULL(PF02) | \
886  PIN_OTYPE_PUSHPULL(PF03) | \
887  PIN_OTYPE_PUSHPULL(PF04) | \
888  PIN_OTYPE_PUSHPULL(PF05) | \
889  PIN_OTYPE_PUSHPULL(PF06) | \
890  PIN_OTYPE_PUSHPULL(PF07) | \
891  PIN_OTYPE_PUSHPULL(PF08) | \
892  PIN_OTYPE_PUSHPULL(PF09) | \
893  PIN_OTYPE_PUSHPULL(PF10) | \
894  PIN_OTYPE_PUSHPULL(PF11) | \
895  PIN_OTYPE_PUSHPULL(PF12) | \
896  PIN_OTYPE_PUSHPULL(PF13) | \
897  PIN_OTYPE_PUSHPULL(PF14) | \
898  PIN_OTYPE_PUSHPULL(PF15))
899 
900 #define VAL_GPIOF_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PF00) | \
901  PIN_OSPEED_SPEED_VERYLOW(PF01) | \
902  PIN_OSPEED_SPEED_VERYLOW(PF02) | \
903  PIN_OSPEED_SPEED_VERYLOW(PF03) | \
904  PIN_OSPEED_SPEED_VERYLOW(PF04) | \
905  PIN_OSPEED_SPEED_VERYLOW(PF05) | \
906  PIN_OSPEED_SPEED_VERYLOW(PF06) | \
907  PIN_OSPEED_SPEED_VERYLOW(PF07) | \
908  PIN_OSPEED_SPEED_VERYLOW(PF08) | \
909  PIN_OSPEED_SPEED_VERYLOW(PF09) | \
910  PIN_OSPEED_SPEED_VERYLOW(PF10) | \
911  PIN_OSPEED_SPEED_VERYLOW(PF11) | \
912  PIN_OSPEED_SPEED_VERYLOW(PF12) | \
913  PIN_OSPEED_SPEED_VERYLOW(PF13) | \
914  PIN_OSPEED_SPEED_VERYLOW(PF14) | \
915  PIN_OSPEED_SPEED_VERYLOW(PF15))
916 
917 #define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLDOWN(PF00) | \
918  PIN_PUPDR_PULLDOWN(PF01) | \
919  PIN_PUPDR_PULLDOWN(PF02) | \
920  PIN_PUPDR_PULLDOWN(PF03) | \
921  PIN_PUPDR_PULLDOWN(PF04) | \
922  PIN_PUPDR_PULLDOWN(PF05) | \
923  PIN_PUPDR_PULLDOWN(PF06) | \
924  PIN_PUPDR_PULLDOWN(PF07) | \
925  PIN_PUPDR_PULLDOWN(PF08) | \
926  PIN_PUPDR_PULLDOWN(PF09) | \
927  PIN_PUPDR_PULLDOWN(PF10) | \
928  PIN_PUPDR_PULLDOWN(PF11) | \
929  PIN_PUPDR_PULLDOWN(PF12) | \
930  PIN_PUPDR_PULLDOWN(PF13) | \
931  PIN_PUPDR_PULLDOWN(PF14) | \
932  PIN_PUPDR_PULLDOWN(PF15))
933 
934 #define VAL_GPIOF_ODR (PIN_ODR_LEVEL_LOW(PF00) | \
935  PIN_ODR_LEVEL_LOW(PF01) | \
936  PIN_ODR_LEVEL_LOW(PF02) | \
937  PIN_ODR_LEVEL_LOW(PF03) | \
938  PIN_ODR_LEVEL_LOW(PF04) | \
939  PIN_ODR_LEVEL_LOW(PF05) | \
940  PIN_ODR_LEVEL_LOW(PF06) | \
941  PIN_ODR_LEVEL_LOW(PF07) | \
942  PIN_ODR_LEVEL_LOW(PF08) | \
943  PIN_ODR_LEVEL_LOW(PF09) | \
944  PIN_ODR_LEVEL_LOW(PF10) | \
945  PIN_ODR_LEVEL_LOW(PF11) | \
946  PIN_ODR_LEVEL_LOW(PF12) | \
947  PIN_ODR_LEVEL_LOW(PF13) | \
948  PIN_ODR_LEVEL_LOW(PF14) | \
949  PIN_ODR_LEVEL_LOW(PF15))
950 
951 #define VAL_GPIOF_AFRL (PIN_AFIO_AF(PF00, 0) | \
952  PIN_AFIO_AF(PF01, 0) | \
953  PIN_AFIO_AF(PF02, 0) | \
954  PIN_AFIO_AF(PF03, 0) | \
955  PIN_AFIO_AF(PF04, 0) | \
956  PIN_AFIO_AF(PF05, 0) | \
957  PIN_AFIO_AF(PF06, 0) | \
958  PIN_AFIO_AF(PF07, 0))
959 
960 #define VAL_GPIOF_AFRH (PIN_AFIO_AF(PF08, 0) | \
961  PIN_AFIO_AF(PF09, 0) | \
962  PIN_AFIO_AF(PF10, 0) | \
963  PIN_AFIO_AF(PF11, 0) | \
964  PIN_AFIO_AF(PF12, 0) | \
965  PIN_AFIO_AF(PF13, 0) | \
966  PIN_AFIO_AF(PF14, 0) | \
967  PIN_AFIO_AF(PF15, 0))
968 
969 #define VAL_GPIOG_MODER (PIN_MODE_INPUT(PG00) | \
970  PIN_MODE_INPUT(PG01) | \
971  PIN_MODE_INPUT(PG02) | \
972  PIN_MODE_INPUT(PG03) | \
973  PIN_MODE_INPUT(PG04) | \
974  PIN_MODE_INPUT(PG05) | \
975  PIN_MODE_INPUT(PG06) | \
976  PIN_MODE_INPUT(PG07) | \
977  PIN_MODE_INPUT(PG08) | \
978  PIN_MODE_INPUT(PG09) | \
979  PIN_MODE_INPUT(PG10) | \
980  PIN_MODE_INPUT(PG11) | \
981  PIN_MODE_INPUT(PG12) | \
982  PIN_MODE_INPUT(PG13) | \
983  PIN_MODE_INPUT(PG14) | \
984  PIN_MODE_INPUT(PG15))
985 
986 #define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(PG00) | \
987  PIN_OTYPE_PUSHPULL(PG01) | \
988  PIN_OTYPE_PUSHPULL(PG02) | \
989  PIN_OTYPE_PUSHPULL(PG03) | \
990  PIN_OTYPE_PUSHPULL(PG04) | \
991  PIN_OTYPE_PUSHPULL(PG05) | \
992  PIN_OTYPE_PUSHPULL(PG06) | \
993  PIN_OTYPE_PUSHPULL(PG07) | \
994  PIN_OTYPE_PUSHPULL(PG08) | \
995  PIN_OTYPE_PUSHPULL(PG09) | \
996  PIN_OTYPE_PUSHPULL(PG10) | \
997  PIN_OTYPE_PUSHPULL(PG11) | \
998  PIN_OTYPE_PUSHPULL(PG12) | \
999  PIN_OTYPE_PUSHPULL(PG13) | \
1000  PIN_OTYPE_PUSHPULL(PG14) | \
1001  PIN_OTYPE_PUSHPULL(PG15))
1002 
1003 #define VAL_GPIOG_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PG00) | \
1004  PIN_OSPEED_SPEED_VERYLOW(PG01) | \
1005  PIN_OSPEED_SPEED_VERYLOW(PG02) | \
1006  PIN_OSPEED_SPEED_VERYLOW(PG03) | \
1007  PIN_OSPEED_SPEED_VERYLOW(PG04) | \
1008  PIN_OSPEED_SPEED_VERYLOW(PG05) | \
1009  PIN_OSPEED_SPEED_VERYLOW(PG06) | \
1010  PIN_OSPEED_SPEED_VERYLOW(PG07) | \
1011  PIN_OSPEED_SPEED_VERYLOW(PG08) | \
1012  PIN_OSPEED_SPEED_VERYLOW(PG09) | \
1013  PIN_OSPEED_SPEED_VERYLOW(PG10) | \
1014  PIN_OSPEED_SPEED_VERYLOW(PG11) | \
1015  PIN_OSPEED_SPEED_VERYLOW(PG12) | \
1016  PIN_OSPEED_SPEED_VERYLOW(PG13) | \
1017  PIN_OSPEED_SPEED_VERYLOW(PG14) | \
1018  PIN_OSPEED_SPEED_VERYLOW(PG15))
1019 
1020 #define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLDOWN(PG00) | \
1021  PIN_PUPDR_PULLDOWN(PG01) | \
1022  PIN_PUPDR_PULLDOWN(PG02) | \
1023  PIN_PUPDR_PULLDOWN(PG03) | \
1024  PIN_PUPDR_PULLDOWN(PG04) | \
1025  PIN_PUPDR_PULLDOWN(PG05) | \
1026  PIN_PUPDR_PULLDOWN(PG06) | \
1027  PIN_PUPDR_PULLDOWN(PG07) | \
1028  PIN_PUPDR_PULLDOWN(PG08) | \
1029  PIN_PUPDR_PULLDOWN(PG09) | \
1030  PIN_PUPDR_PULLDOWN(PG10) | \
1031  PIN_PUPDR_PULLDOWN(PG11) | \
1032  PIN_PUPDR_PULLDOWN(PG12) | \
1033  PIN_PUPDR_PULLDOWN(PG13) | \
1034  PIN_PUPDR_PULLDOWN(PG14) | \
1035  PIN_PUPDR_PULLDOWN(PG15))
1036 
1037 #define VAL_GPIOG_ODR (PIN_ODR_LEVEL_LOW(PG00) | \
1038  PIN_ODR_LEVEL_LOW(PG01) | \
1039  PIN_ODR_LEVEL_LOW(PG02) | \
1040  PIN_ODR_LEVEL_LOW(PG03) | \
1041  PIN_ODR_LEVEL_LOW(PG04) | \
1042  PIN_ODR_LEVEL_LOW(PG05) | \
1043  PIN_ODR_LEVEL_LOW(PG06) | \
1044  PIN_ODR_LEVEL_LOW(PG07) | \
1045  PIN_ODR_LEVEL_LOW(PG08) | \
1046  PIN_ODR_LEVEL_LOW(PG09) | \
1047  PIN_ODR_LEVEL_LOW(PG10) | \
1048  PIN_ODR_LEVEL_LOW(PG11) | \
1049  PIN_ODR_LEVEL_LOW(PG12) | \
1050  PIN_ODR_LEVEL_LOW(PG13) | \
1051  PIN_ODR_LEVEL_LOW(PG14) | \
1052  PIN_ODR_LEVEL_LOW(PG15))
1053 
1054 #define VAL_GPIOG_AFRL (PIN_AFIO_AF(PG00, 0) | \
1055  PIN_AFIO_AF(PG01, 0) | \
1056  PIN_AFIO_AF(PG02, 0) | \
1057  PIN_AFIO_AF(PG03, 0) | \
1058  PIN_AFIO_AF(PG04, 0) | \
1059  PIN_AFIO_AF(PG05, 0) | \
1060  PIN_AFIO_AF(PG06, 0) | \
1061  PIN_AFIO_AF(PG07, 0))
1062 
1063 #define VAL_GPIOG_AFRH (PIN_AFIO_AF(PG08, 0) | \
1064  PIN_AFIO_AF(PG09, 0) | \
1065  PIN_AFIO_AF(PG10, 0) | \
1066  PIN_AFIO_AF(PG11, 0) | \
1067  PIN_AFIO_AF(PG12, 0) | \
1068  PIN_AFIO_AF(PG13, 0) | \
1069  PIN_AFIO_AF(PG14, 0) | \
1070  PIN_AFIO_AF(PG15, 0))
1071 
1072 #define VAL_GPIOH_MODER (PIN_MODE_ALTERNATE(OSC_IN) | \
1073  PIN_MODE_ALTERNATE(OSC_OUT) | \
1074  PIN_MODE_INPUT(PH02) | \
1075  PIN_MODE_INPUT(PH03) | \
1076  PIN_MODE_INPUT(PH04) | \
1077  PIN_MODE_INPUT(PH05) | \
1078  PIN_MODE_INPUT(PH06) | \
1079  PIN_MODE_INPUT(PH07) | \
1080  PIN_MODE_INPUT(PH08) | \
1081  PIN_MODE_INPUT(PH09) | \
1082  PIN_MODE_INPUT(PH10) | \
1083  PIN_MODE_INPUT(PH11) | \
1084  PIN_MODE_INPUT(PH12) | \
1085  PIN_MODE_INPUT(PH13) | \
1086  PIN_MODE_INPUT(PH14) | \
1087  PIN_MODE_INPUT(PH15))
1088 
1089 #define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(OSC_IN) | \
1090  PIN_OTYPE_PUSHPULL(OSC_OUT) | \
1091  PIN_OTYPE_PUSHPULL(PH02) | \
1092  PIN_OTYPE_PUSHPULL(PH03) | \
1093  PIN_OTYPE_PUSHPULL(PH04) | \
1094  PIN_OTYPE_PUSHPULL(PH05) | \
1095  PIN_OTYPE_PUSHPULL(PH06) | \
1096  PIN_OTYPE_PUSHPULL(PH07) | \
1097  PIN_OTYPE_PUSHPULL(PH08) | \
1098  PIN_OTYPE_PUSHPULL(PH09) | \
1099  PIN_OTYPE_PUSHPULL(PH10) | \
1100  PIN_OTYPE_PUSHPULL(PH11) | \
1101  PIN_OTYPE_PUSHPULL(PH12) | \
1102  PIN_OTYPE_PUSHPULL(PH13) | \
1103  PIN_OTYPE_PUSHPULL(PH14) | \
1104  PIN_OTYPE_PUSHPULL(PH15))
1105 
1106 #define VAL_GPIOH_OSPEEDR (PIN_OSPEED_SPEED_HIGH(OSC_IN) | \
1107  PIN_OSPEED_SPEED_HIGH(OSC_OUT) | \
1108  PIN_OSPEED_SPEED_VERYLOW(PH02) | \
1109  PIN_OSPEED_SPEED_VERYLOW(PH03) | \
1110  PIN_OSPEED_SPEED_VERYLOW(PH04) | \
1111  PIN_OSPEED_SPEED_VERYLOW(PH05) | \
1112  PIN_OSPEED_SPEED_VERYLOW(PH06) | \
1113  PIN_OSPEED_SPEED_VERYLOW(PH07) | \
1114  PIN_OSPEED_SPEED_VERYLOW(PH08) | \
1115  PIN_OSPEED_SPEED_VERYLOW(PH09) | \
1116  PIN_OSPEED_SPEED_VERYLOW(PH10) | \
1117  PIN_OSPEED_SPEED_VERYLOW(PH11) | \
1118  PIN_OSPEED_SPEED_VERYLOW(PH12) | \
1119  PIN_OSPEED_SPEED_VERYLOW(PH13) | \
1120  PIN_OSPEED_SPEED_VERYLOW(PH14) | \
1121  PIN_OSPEED_SPEED_VERYLOW(PH15))
1122 
1123 #define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(OSC_IN) | \
1124  PIN_PUPDR_FLOATING(OSC_OUT) | \
1125  PIN_PUPDR_PULLDOWN(PH02) | \
1126  PIN_PUPDR_PULLDOWN(PH03) | \
1127  PIN_PUPDR_PULLDOWN(PH04) | \
1128  PIN_PUPDR_PULLDOWN(PH05) | \
1129  PIN_PUPDR_PULLDOWN(PH06) | \
1130  PIN_PUPDR_PULLDOWN(PH07) | \
1131  PIN_PUPDR_PULLDOWN(PH08) | \
1132  PIN_PUPDR_PULLDOWN(PH09) | \
1133  PIN_PUPDR_PULLDOWN(PH10) | \
1134  PIN_PUPDR_PULLDOWN(PH11) | \
1135  PIN_PUPDR_PULLDOWN(PH12) | \
1136  PIN_PUPDR_PULLDOWN(PH13) | \
1137  PIN_PUPDR_PULLDOWN(PH14) | \
1138  PIN_PUPDR_PULLDOWN(PH15))
1139 
1140 #define VAL_GPIOH_ODR (PIN_ODR_LEVEL_HIGH(OSC_IN) | \
1141  PIN_ODR_LEVEL_HIGH(OSC_OUT) | \
1142  PIN_ODR_LEVEL_LOW(PH02) | \
1143  PIN_ODR_LEVEL_LOW(PH03) | \
1144  PIN_ODR_LEVEL_LOW(PH04) | \
1145  PIN_ODR_LEVEL_LOW(PH05) | \
1146  PIN_ODR_LEVEL_LOW(PH06) | \
1147  PIN_ODR_LEVEL_LOW(PH07) | \
1148  PIN_ODR_LEVEL_LOW(PH08) | \
1149  PIN_ODR_LEVEL_LOW(PH09) | \
1150  PIN_ODR_LEVEL_LOW(PH10) | \
1151  PIN_ODR_LEVEL_LOW(PH11) | \
1152  PIN_ODR_LEVEL_LOW(PH12) | \
1153  PIN_ODR_LEVEL_LOW(PH13) | \
1154  PIN_ODR_LEVEL_LOW(PH14) | \
1155  PIN_ODR_LEVEL_LOW(PH15))
1156 
1157 #define VAL_GPIOH_AFRL (PIN_AFIO_AF(OSC_IN, 0) | \
1158  PIN_AFIO_AF(OSC_OUT, 0) | \
1159  PIN_AFIO_AF(PH02, 0) | \
1160  PIN_AFIO_AF(PH03, 0) | \
1161  PIN_AFIO_AF(PH04, 0) | \
1162  PIN_AFIO_AF(PH05, 0) | \
1163  PIN_AFIO_AF(PH06, 0) | \
1164  PIN_AFIO_AF(PH07, 0))
1165 
1166 #define VAL_GPIOH_AFRH (PIN_AFIO_AF(PH08, 0) | \
1167  PIN_AFIO_AF(PH09, 0) | \
1168  PIN_AFIO_AF(PH10, 0) | \
1169  PIN_AFIO_AF(PH11, 0) | \
1170  PIN_AFIO_AF(PH12, 0) | \
1171  PIN_AFIO_AF(PH13, 0) | \
1172  PIN_AFIO_AF(PH14, 0) | \
1173  PIN_AFIO_AF(PH15, 0))
1174 
1175 #define VAL_GPIOI_MODER (PIN_MODE_INPUT(PI00) | \
1176  PIN_MODE_INPUT(PI01) | \
1177  PIN_MODE_INPUT(PI02) | \
1178  PIN_MODE_INPUT(PI03) | \
1179  PIN_MODE_INPUT(PI04) | \
1180  PIN_MODE_INPUT(PI05) | \
1181  PIN_MODE_INPUT(PI06) | \
1182  PIN_MODE_INPUT(PI07) | \
1183  PIN_MODE_INPUT(PI08) | \
1184  PIN_MODE_INPUT(PI09) | \
1185  PIN_MODE_INPUT(PI10) | \
1186  PIN_MODE_INPUT(PI11) | \
1187  PIN_MODE_INPUT(PI12) | \
1188  PIN_MODE_INPUT(PI13) | \
1189  PIN_MODE_INPUT(PI14) | \
1190  PIN_MODE_INPUT(PI15))
1191 
1192 #define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(PI00) | \
1193  PIN_OTYPE_PUSHPULL(PI01) | \
1194  PIN_OTYPE_PUSHPULL(PI02) | \
1195  PIN_OTYPE_PUSHPULL(PI03) | \
1196  PIN_OTYPE_PUSHPULL(PI04) | \
1197  PIN_OTYPE_PUSHPULL(PI05) | \
1198  PIN_OTYPE_PUSHPULL(PI06) | \
1199  PIN_OTYPE_PUSHPULL(PI07) | \
1200  PIN_OTYPE_PUSHPULL(PI08) | \
1201  PIN_OTYPE_PUSHPULL(PI09) | \
1202  PIN_OTYPE_PUSHPULL(PI10) | \
1203  PIN_OTYPE_PUSHPULL(PI11) | \
1204  PIN_OTYPE_PUSHPULL(PI12) | \
1205  PIN_OTYPE_PUSHPULL(PI13) | \
1206  PIN_OTYPE_PUSHPULL(PI14) | \
1207  PIN_OTYPE_PUSHPULL(PI15))
1208 
1209 #define VAL_GPIOI_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PI00) | \
1210  PIN_OSPEED_SPEED_VERYLOW(PI01) | \
1211  PIN_OSPEED_SPEED_VERYLOW(PI02) | \
1212  PIN_OSPEED_SPEED_VERYLOW(PI03) | \
1213  PIN_OSPEED_SPEED_VERYLOW(PI04) | \
1214  PIN_OSPEED_SPEED_VERYLOW(PI05) | \
1215  PIN_OSPEED_SPEED_VERYLOW(PI06) | \
1216  PIN_OSPEED_SPEED_VERYLOW(PI07) | \
1217  PIN_OSPEED_SPEED_VERYLOW(PI08) | \
1218  PIN_OSPEED_SPEED_VERYLOW(PI09) | \
1219  PIN_OSPEED_SPEED_VERYLOW(PI10) | \
1220  PIN_OSPEED_SPEED_VERYLOW(PI11) | \
1221  PIN_OSPEED_SPEED_VERYLOW(PI12) | \
1222  PIN_OSPEED_SPEED_VERYLOW(PI13) | \
1223  PIN_OSPEED_SPEED_VERYLOW(PI14) | \
1224  PIN_OSPEED_SPEED_VERYLOW(PI15))
1225 
1226 #define VAL_GPIOI_PUPDR (PIN_PUPDR_PULLDOWN(PI00) | \
1227  PIN_PUPDR_PULLDOWN(PI01) | \
1228  PIN_PUPDR_PULLDOWN(PI02) | \
1229  PIN_PUPDR_PULLDOWN(PI03) | \
1230  PIN_PUPDR_PULLDOWN(PI04) | \
1231  PIN_PUPDR_PULLDOWN(PI05) | \
1232  PIN_PUPDR_PULLDOWN(PI06) | \
1233  PIN_PUPDR_PULLDOWN(PI07) | \
1234  PIN_PUPDR_PULLDOWN(PI08) | \
1235  PIN_PUPDR_PULLDOWN(PI09) | \
1236  PIN_PUPDR_PULLDOWN(PI10) | \
1237  PIN_PUPDR_PULLDOWN(PI11) | \
1238  PIN_PUPDR_PULLDOWN(PI12) | \
1239  PIN_PUPDR_PULLDOWN(PI13) | \
1240  PIN_PUPDR_PULLDOWN(PI14) | \
1241  PIN_PUPDR_PULLDOWN(PI15))
1242 
1243 #define VAL_GPIOI_ODR (PIN_ODR_LEVEL_LOW(PI00) | \
1244  PIN_ODR_LEVEL_LOW(PI01) | \
1245  PIN_ODR_LEVEL_LOW(PI02) | \
1246  PIN_ODR_LEVEL_LOW(PI03) | \
1247  PIN_ODR_LEVEL_LOW(PI04) | \
1248  PIN_ODR_LEVEL_LOW(PI05) | \
1249  PIN_ODR_LEVEL_LOW(PI06) | \
1250  PIN_ODR_LEVEL_LOW(PI07) | \
1251  PIN_ODR_LEVEL_LOW(PI08) | \
1252  PIN_ODR_LEVEL_LOW(PI09) | \
1253  PIN_ODR_LEVEL_LOW(PI10) | \
1254  PIN_ODR_LEVEL_LOW(PI11) | \
1255  PIN_ODR_LEVEL_LOW(PI12) | \
1256  PIN_ODR_LEVEL_LOW(PI13) | \
1257  PIN_ODR_LEVEL_LOW(PI14) | \
1258  PIN_ODR_LEVEL_LOW(PI15))
1259 
1260 #define VAL_GPIOI_AFRL (PIN_AFIO_AF(PI00, 0) | \
1261  PIN_AFIO_AF(PI01, 0) | \
1262  PIN_AFIO_AF(PI02, 0) | \
1263  PIN_AFIO_AF(PI03, 0) | \
1264  PIN_AFIO_AF(PI04, 0) | \
1265  PIN_AFIO_AF(PI05, 0) | \
1266  PIN_AFIO_AF(PI06, 0) | \
1267  PIN_AFIO_AF(PI07, 0))
1268 
1269 #define VAL_GPIOI_AFRH (PIN_AFIO_AF(PI08, 0) | \
1270  PIN_AFIO_AF(PI09, 0) | \
1271  PIN_AFIO_AF(PI10, 0) | \
1272  PIN_AFIO_AF(PI11, 0) | \
1273  PIN_AFIO_AF(PI12, 0) | \
1274  PIN_AFIO_AF(PI13, 0) | \
1275  PIN_AFIO_AF(PI14, 0) | \
1276  PIN_AFIO_AF(PI15, 0))
1277 
1278 #define VAL_GPIOJ_MODER (PIN_MODE_INPUT(PJ00) | \
1279  PIN_MODE_INPUT(PJ01) | \
1280  PIN_MODE_INPUT(PJ02) | \
1281  PIN_MODE_INPUT(PJ03) | \
1282  PIN_MODE_INPUT(PJ04) | \
1283  PIN_MODE_INPUT(PJ05) | \
1284  PIN_MODE_INPUT(PJ06) | \
1285  PIN_MODE_INPUT(PJ07) | \
1286  PIN_MODE_INPUT(PJ08) | \
1287  PIN_MODE_INPUT(PJ09) | \
1288  PIN_MODE_INPUT(PJ10) | \
1289  PIN_MODE_INPUT(PJ11) | \
1290  PIN_MODE_INPUT(PJ12) | \
1291  PIN_MODE_INPUT(PJ13) | \
1292  PIN_MODE_INPUT(PJ14) | \
1293  PIN_MODE_INPUT(PJ15))
1294 
1295 #define VAL_GPIOJ_OTYPER (PIN_OTYPE_PUSHPULL(PJ00) | \
1296  PIN_OTYPE_PUSHPULL(PJ01) | \
1297  PIN_OTYPE_PUSHPULL(PJ02) | \
1298  PIN_OTYPE_PUSHPULL(PJ03) | \
1299  PIN_OTYPE_PUSHPULL(PJ04) | \
1300  PIN_OTYPE_PUSHPULL(PJ05) | \
1301  PIN_OTYPE_PUSHPULL(PJ06) | \
1302  PIN_OTYPE_PUSHPULL(PJ07) | \
1303  PIN_OTYPE_PUSHPULL(PJ08) | \
1304  PIN_OTYPE_PUSHPULL(PJ09) | \
1305  PIN_OTYPE_PUSHPULL(PJ10) | \
1306  PIN_OTYPE_PUSHPULL(PJ11) | \
1307  PIN_OTYPE_PUSHPULL(PJ12) | \
1308  PIN_OTYPE_PUSHPULL(PJ13) | \
1309  PIN_OTYPE_PUSHPULL(PJ14) | \
1310  PIN_OTYPE_PUSHPULL(PJ15))
1311 
1312 #define VAL_GPIOJ_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PJ00) | \
1313  PIN_OSPEED_SPEED_VERYLOW(PJ01) | \
1314  PIN_OSPEED_SPEED_VERYLOW(PJ02) | \
1315  PIN_OSPEED_SPEED_VERYLOW(PJ03) | \
1316  PIN_OSPEED_SPEED_VERYLOW(PJ04) | \
1317  PIN_OSPEED_SPEED_VERYLOW(PJ05) | \
1318  PIN_OSPEED_SPEED_VERYLOW(PJ06) | \
1319  PIN_OSPEED_SPEED_VERYLOW(PJ07) | \
1320  PIN_OSPEED_SPEED_VERYLOW(PJ08) | \
1321  PIN_OSPEED_SPEED_VERYLOW(PJ09) | \
1322  PIN_OSPEED_SPEED_VERYLOW(PJ10) | \
1323  PIN_OSPEED_SPEED_VERYLOW(PJ11) | \
1324  PIN_OSPEED_SPEED_VERYLOW(PJ12) | \
1325  PIN_OSPEED_SPEED_VERYLOW(PJ13) | \
1326  PIN_OSPEED_SPEED_VERYLOW(PJ14) | \
1327  PIN_OSPEED_SPEED_VERYLOW(PJ15))
1328 
1329 #define VAL_GPIOJ_PUPDR (PIN_PUPDR_PULLDOWN(PJ00) | \
1330  PIN_PUPDR_PULLDOWN(PJ01) | \
1331  PIN_PUPDR_PULLDOWN(PJ02) | \
1332  PIN_PUPDR_PULLDOWN(PJ03) | \
1333  PIN_PUPDR_PULLDOWN(PJ04) | \
1334  PIN_PUPDR_PULLDOWN(PJ05) | \
1335  PIN_PUPDR_PULLDOWN(PJ06) | \
1336  PIN_PUPDR_PULLDOWN(PJ07) | \
1337  PIN_PUPDR_PULLDOWN(PJ08) | \
1338  PIN_PUPDR_PULLDOWN(PJ09) | \
1339  PIN_PUPDR_PULLDOWN(PJ10) | \
1340  PIN_PUPDR_PULLDOWN(PJ11) | \
1341  PIN_PUPDR_PULLDOWN(PJ12) | \
1342  PIN_PUPDR_PULLDOWN(PJ13) | \
1343  PIN_PUPDR_PULLDOWN(PJ14) | \
1344  PIN_PUPDR_PULLDOWN(PJ15))
1345 
1346 #define VAL_GPIOJ_ODR (PIN_ODR_LEVEL_LOW(PJ00) | \
1347  PIN_ODR_LEVEL_LOW(PJ01) | \
1348  PIN_ODR_LEVEL_LOW(PJ02) | \
1349  PIN_ODR_LEVEL_LOW(PJ03) | \
1350  PIN_ODR_LEVEL_LOW(PJ04) | \
1351  PIN_ODR_LEVEL_LOW(PJ05) | \
1352  PIN_ODR_LEVEL_LOW(PJ06) | \
1353  PIN_ODR_LEVEL_LOW(PJ07) | \
1354  PIN_ODR_LEVEL_LOW(PJ08) | \
1355  PIN_ODR_LEVEL_LOW(PJ09) | \
1356  PIN_ODR_LEVEL_LOW(PJ10) | \
1357  PIN_ODR_LEVEL_LOW(PJ11) | \
1358  PIN_ODR_LEVEL_LOW(PJ12) | \
1359  PIN_ODR_LEVEL_LOW(PJ13) | \
1360  PIN_ODR_LEVEL_LOW(PJ14) | \
1361  PIN_ODR_LEVEL_LOW(PJ15))
1362 
1363 #define VAL_GPIOJ_AFRL (PIN_AFIO_AF(PJ00, 0) | \
1364  PIN_AFIO_AF(PJ01, 0) | \
1365  PIN_AFIO_AF(PJ02, 0) | \
1366  PIN_AFIO_AF(PJ03, 0) | \
1367  PIN_AFIO_AF(PJ04, 0) | \
1368  PIN_AFIO_AF(PJ05, 0) | \
1369  PIN_AFIO_AF(PJ06, 0) | \
1370  PIN_AFIO_AF(PJ07, 0))
1371 
1372 #define VAL_GPIOJ_AFRH (PIN_AFIO_AF(PJ08, 0) | \
1373  PIN_AFIO_AF(PJ09, 0) | \
1374  PIN_AFIO_AF(PJ10, 0) | \
1375  PIN_AFIO_AF(PJ11, 0) | \
1376  PIN_AFIO_AF(PJ12, 0) | \
1377  PIN_AFIO_AF(PJ13, 0) | \
1378  PIN_AFIO_AF(PJ14, 0) | \
1379  PIN_AFIO_AF(PJ15, 0))
1380 
1381 #define VAL_GPIOK_MODER (PIN_MODE_INPUT(PK00) | \
1382  PIN_MODE_INPUT(PK01) | \
1383  PIN_MODE_INPUT(PK02) | \
1384  PIN_MODE_INPUT(PK03) | \
1385  PIN_MODE_INPUT(PK04) | \
1386  PIN_MODE_INPUT(PK05) | \
1387  PIN_MODE_INPUT(PK06) | \
1388  PIN_MODE_INPUT(PK07) | \
1389  PIN_MODE_INPUT(PK08) | \
1390  PIN_MODE_INPUT(PK09) | \
1391  PIN_MODE_INPUT(PK10) | \
1392  PIN_MODE_INPUT(PK11) | \
1393  PIN_MODE_INPUT(PK12) | \
1394  PIN_MODE_INPUT(PK13) | \
1395  PIN_MODE_INPUT(PK14) | \
1396  PIN_MODE_INPUT(PK15))
1397 
1398 #define VAL_GPIOK_OTYPER (PIN_OTYPE_PUSHPULL(PK00) | \
1399  PIN_OTYPE_PUSHPULL(PK01) | \
1400  PIN_OTYPE_PUSHPULL(PK02) | \
1401  PIN_OTYPE_PUSHPULL(PK03) | \
1402  PIN_OTYPE_PUSHPULL(PK04) | \
1403  PIN_OTYPE_PUSHPULL(PK05) | \
1404  PIN_OTYPE_PUSHPULL(PK06) | \
1405  PIN_OTYPE_PUSHPULL(PK07) | \
1406  PIN_OTYPE_PUSHPULL(PK08) | \
1407  PIN_OTYPE_PUSHPULL(PK09) | \
1408  PIN_OTYPE_PUSHPULL(PK10) | \
1409  PIN_OTYPE_PUSHPULL(PK11) | \
1410  PIN_OTYPE_PUSHPULL(PK12) | \
1411  PIN_OTYPE_PUSHPULL(PK13) | \
1412  PIN_OTYPE_PUSHPULL(PK14) | \
1413  PIN_OTYPE_PUSHPULL(PK15))
1414 
1415 #define VAL_GPIOK_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PK00) | \
1416  PIN_OSPEED_SPEED_VERYLOW(PK01) | \
1417  PIN_OSPEED_SPEED_VERYLOW(PK02) | \
1418  PIN_OSPEED_SPEED_VERYLOW(PK03) | \
1419  PIN_OSPEED_SPEED_VERYLOW(PK04) | \
1420  PIN_OSPEED_SPEED_VERYLOW(PK05) | \
1421  PIN_OSPEED_SPEED_VERYLOW(PK06) | \
1422  PIN_OSPEED_SPEED_VERYLOW(PK07) | \
1423  PIN_OSPEED_SPEED_VERYLOW(PK08) | \
1424  PIN_OSPEED_SPEED_VERYLOW(PK09) | \
1425  PIN_OSPEED_SPEED_VERYLOW(PK10) | \
1426  PIN_OSPEED_SPEED_VERYLOW(PK11) | \
1427  PIN_OSPEED_SPEED_VERYLOW(PK12) | \
1428  PIN_OSPEED_SPEED_VERYLOW(PK13) | \
1429  PIN_OSPEED_SPEED_VERYLOW(PK14) | \
1430  PIN_OSPEED_SPEED_VERYLOW(PK15))
1431 
1432 #define VAL_GPIOK_PUPDR (PIN_PUPDR_PULLDOWN(PK00) | \
1433  PIN_PUPDR_PULLDOWN(PK01) | \
1434  PIN_PUPDR_PULLDOWN(PK02) | \
1435  PIN_PUPDR_PULLDOWN(PK03) | \
1436  PIN_PUPDR_PULLDOWN(PK04) | \
1437  PIN_PUPDR_PULLDOWN(PK05) | \
1438  PIN_PUPDR_PULLDOWN(PK06) | \
1439  PIN_PUPDR_PULLDOWN(PK07) | \
1440  PIN_PUPDR_PULLDOWN(PK08) | \
1441  PIN_PUPDR_PULLDOWN(PK09) | \
1442  PIN_PUPDR_PULLDOWN(PK10) | \
1443  PIN_PUPDR_PULLDOWN(PK11) | \
1444  PIN_PUPDR_PULLDOWN(PK12) | \
1445  PIN_PUPDR_PULLDOWN(PK13) | \
1446  PIN_PUPDR_PULLDOWN(PK14) | \
1447  PIN_PUPDR_PULLDOWN(PK15))
1448 
1449 #define VAL_GPIOK_ODR (PIN_ODR_LEVEL_LOW(PK00) | \
1450  PIN_ODR_LEVEL_LOW(PK01) | \
1451  PIN_ODR_LEVEL_LOW(PK02) | \
1452  PIN_ODR_LEVEL_LOW(PK03) | \
1453  PIN_ODR_LEVEL_LOW(PK04) | \
1454  PIN_ODR_LEVEL_LOW(PK05) | \
1455  PIN_ODR_LEVEL_LOW(PK06) | \
1456  PIN_ODR_LEVEL_LOW(PK07) | \
1457  PIN_ODR_LEVEL_LOW(PK08) | \
1458  PIN_ODR_LEVEL_LOW(PK09) | \
1459  PIN_ODR_LEVEL_LOW(PK10) | \
1460  PIN_ODR_LEVEL_LOW(PK11) | \
1461  PIN_ODR_LEVEL_LOW(PK12) | \
1462  PIN_ODR_LEVEL_LOW(PK13) | \
1463  PIN_ODR_LEVEL_LOW(PK14) | \
1464  PIN_ODR_LEVEL_LOW(PK15))
1465 
1466 #define VAL_GPIOK_AFRL (PIN_AFIO_AF(PK00, 0) | \
1467  PIN_AFIO_AF(PK01, 0) | \
1468  PIN_AFIO_AF(PK02, 0) | \
1469  PIN_AFIO_AF(PK03, 0) | \
1470  PIN_AFIO_AF(PK04, 0) | \
1471  PIN_AFIO_AF(PK05, 0) | \
1472  PIN_AFIO_AF(PK06, 0) | \
1473  PIN_AFIO_AF(PK07, 0))
1474 
1475 #define VAL_GPIOK_AFRH (PIN_AFIO_AF(PK08, 0) | \
1476  PIN_AFIO_AF(PK09, 0) | \
1477  PIN_AFIO_AF(PK10, 0) | \
1478  PIN_AFIO_AF(PK11, 0) | \
1479  PIN_AFIO_AF(PK12, 0) | \
1480  PIN_AFIO_AF(PK13, 0) | \
1481  PIN_AFIO_AF(PK14, 0) | \
1482  PIN_AFIO_AF(PK15, 0))
1483 
1484 #define AF_USART4_TX 8U
1485 #define AF_LINE_USART4_TX 8U
1486 #define AF_USART4_RX 8U
1487 #define AF_LINE_USART4_RX 8U
1488 #define AF_MPU9250_SCK 5U
1489 #define AF_LINE_MPU9250_SCK 5U
1490 #define AF_MPU9250_MISO 5U
1491 #define AF_LINE_MPU9250_MISO 5U
1492 #define AF_MPU9250_MOSI 5U
1493 #define AF_LINE_MPU9250_MOSI 5U
1494 #define AF_OTG_FS_DM 10U
1495 #define AF_LINE_OTG_FS_DM 10U
1496 #define AF_OTG_FS_DP 10U
1497 #define AF_LINE_OTG_FS_DP 10U
1498 #define AF_SWDIO 0U
1499 #define AF_LINE_SWDIO 0U
1500 #define AF_SWCLK 0U
1501 #define AF_LINE_SWCLK 0U
1502 #define AF_USART1_TX 7U
1503 #define AF_LINE_USART1_TX 7U
1504 #define AF_USART1_RX 7U
1505 #define AF_LINE_USART1_RX 7U
1506 #define AF_I2C1_SCL 4U
1507 #define AF_LINE_I2C1_SCL 4U
1508 #define AF_I2C1_SDA 4U
1509 #define AF_LINE_I2C1_SDA 4U
1510 #define AF_FRAM_SCK 5U
1511 #define AF_LINE_FRAM_SCK 5U
1512 #define AF_CAN2_RX 9U
1513 #define AF_LINE_CAN2_RX 9U
1514 #define AF_CAN2_TX 9U
1515 #define AF_LINE_CAN2_TX 9U
1516 #define AF_FRAM_MISO 5U
1517 #define AF_LINE_FRAM_MISO 5U
1518 #define AF_FRAM_MOSI 5U
1519 #define AF_LINE_FRAM_MOSI 5U
1520 #define AF_RC_INPUT 8U
1521 #define AF_LINE_RC_INPUT 8U
1522 #define AF_SDMMC1_D0 12U
1523 #define AF_LINE_SDMMC1_D0 12U
1524 #define AF_SDMMC1_D1 12U
1525 #define AF_LINE_SDMMC1_D1 12U
1526 #define AF_SDMMC1_D2 12U
1527 #define AF_LINE_SDMMC1_D2 12U
1528 #define AF_SDMMC1_D3 12U
1529 #define AF_LINE_SDMMC1_D3 12U
1530 #define AF_SDMMC1_CK 12U
1531 #define AF_LINE_SDMMC1_CK 12U
1532 #define AF_CAN1_RX 9U
1533 #define AF_LINE_CAN1_RX 9U
1534 #define AF_CAN1_TX 9U
1535 #define AF_LINE_CAN1_TX 9U
1536 #define AF_SDMMC1_CMD 12U
1537 #define AF_LINE_SDMMC1_CMD 12U
1538 #define AF_USART2_TX 7U
1539 #define AF_LINE_USART2_TX 7U
1540 #define AF_USART2_RX 7U
1541 #define AF_LINE_USART2_RX 7U
1542 #define AF_USART3_TX 7U
1543 #define AF_LINE_USART3_TX 7U
1544 #define AF_USART3_RX 7U
1545 #define AF_LINE_USART3_RX 7U
1546 #define AF_SERVO5 2U
1547 #define AF_LINE_SERVO5 2U
1548 #define AF_SERVO6 2U
1549 #define AF_LINE_SERVO6 2U
1550 #define AF_UART8_RX 8U
1551 #define AF_LINE_UART8_RX 8U
1552 #define AF_UART8_TX 8U
1553 #define AF_LINE_UART8_TX 8U
1554 #define AF_UART7_RX 8U
1555 #define AF_LINE_UART7_RX 8U
1556 #define AF_UART7_TX 8U
1557 #define AF_LINE_UART7_TX 8U
1558 #define AF_SERVO4 1U
1559 #define AF_LINE_SERVO4 1U
1560 #define AF_SERVO3 1U
1561 #define AF_LINE_SERVO3 1U
1562 #define AF_SERVO2 1U
1563 #define AF_LINE_SERVO2 1U
1564 #define AF_SERVO1 1U
1565 #define AF_LINE_SERVO1 1U
1566 #define AF_OSC_IN 0U
1567 #define AF_LINE_OSC_IN 0U
1568 #define AF_OSC_OUT 0U
1569 #define AF_LINE_OSC_OUT 0U
1570 
1571 
1572 #define SERVO5_TIM 4
1573 #define SERVO5_TIM_FN CH
1574 #define SERVO5_TIM_CH 2
1575 #define SERVO5_TIM_AF 2
1576 #define SERVO6_TIM 4
1577 #define SERVO6_TIM_FN CH
1578 #define SERVO6_TIM_CH 3
1579 #define SERVO6_TIM_AF 2
1580 #define SERVO4_TIM 1
1581 #define SERVO4_TIM_FN CH
1582 #define SERVO4_TIM_CH 1
1583 #define SERVO4_TIM_AF 1
1584 #define SERVO3_TIM 1
1585 #define SERVO3_TIM_FN CH
1586 #define SERVO3_TIM_CH 2
1587 #define SERVO3_TIM_AF 1
1588 #define SERVO2_TIM 1
1589 #define SERVO2_TIM_FN CH
1590 #define SERVO2_TIM_CH 3
1591 #define SERVO2_TIM_AF 1
1592 #define SERVO1_TIM 1
1593 #define SERVO1_TIM_FN CH
1594 #define SERVO1_TIM_CH 4
1595 #define SERVO1_TIM_AF 1
1596 
1597 #define BOARD_GROUP_DECLFOREACH(line, group) \
1598  static const ioline_t group ## _ARRAY[] = {group}; \
1599  for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1600 
1601 #define BOARD_GROUP_FOREACH(line, group) \
1602  for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1603 
1604 
1605 #define BOARD_GROUP_DECLFOR(array, index, group) \
1606  static const ioline_t group ## _ARRAY[] = {group}; \
1607  for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1608 
1609 #define BOARD_GROUP_FOR(array, index, group) \
1610  for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1611 
1612 #if !defined(_FROM_ASM_)
1613 #ifdef __cplusplus
1614 extern "C" {
1615 #endif
1616  void boardInit(void);
1617 #ifdef __cplusplus
1618 }
1619 #endif
1620 #endif /* _FROM_ASM_ */
1621 
void boardInit(void)
Board-specific initialization code.
Definition: board.c:317