Paparazzi UAS  v6.2.0_stable
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 v5.0"
24 
25 /*
26  * Board oscillators-related settings.
27  */
28 #if !defined(STM32_LSECLK)
29 #define STM32_LSECLK 32768U
30 #endif
31 
32 #define STM32_LSEDRV (3U << 3U)
33 
34 #if !defined(STM32_HSECLK)
35 #define STM32_HSECLK 16000000U
36 #endif
37 
38 /*
39  * Board voltages.
40  * Required for performance limits calculation.
41  */
42 #define STM32_VDD 330U
43 
44 /*
45  * MCU type as defined in the ST header.
46  */
47 #define STM32F767xx
48 
49 /* allow to define ADC_CHANNEL_VSUPPLY in the airframe file*/
50 #ifndef ADC_CHANNEL_VSUPPLY
51 #define ADC_CHANNEL_VSUPPLY ADC_1
52 #endif
53 
54 /* allow to define ADC_CHANNEL_CURRENT in the airframe file*/
55 #if !defined(ADC_CHANNEL_CURRENT) && !ADC_CURRENT_DISABLE
56 #define ADC_CHANNEL_CURRENT ADC_2
57 #endif
58 
59 /* Default powerbrick values */
60 #define DefaultVoltageOfAdc(adc) ((3.3f/4096.0f) * 10.3208191126f * adc)
61 #define MilliAmpereOfAdc(adc) ((3.3f/4096.0f) * 24000.0f * adc)
62 
63 /* Battery monitoring for file closing */
64 #define SDLOG_BAT_ADC ADCD1
65 #define SDLOG_BAT_CHAN AD1_1_CHANNEL
66 #define SDLOG_USB_LED 3
67 
68 /*
69  * IO pins assignments.
70  */
71 #define PA00_ADC1 0U
72 #define PA01_ADC2 1U
73 #define PA02_ADC3 2U
74 #define PA03_ADC4 3U
75 #define PA04_ADC5 4U
76 #define PA05_FMU_CAP1 5U
77 #define PA06_SPI1_MISO 6U
78 #define PA07_IMU_HEATER 7U
79 #define PA08_CAN3_RX 8U
80 #define PA09_USB_VBUS 9U
81 #define PA10_SERVO2 10U
82 #define PA11_USB_DM 11U
83 #define PA12_USB_DP 12U
84 #define PA13_SWDIO 13U
85 #define PA14_SWCLK 14U
86 #define PA15_CAN3_TX 15U
87 
88 #define PB00_RSSI_IN 0U
89 #define PB01_LED1 1U
90 #define PB02 2U
91 #define PB03_FMU_CAP2 3U
92 #define PB04_DRDY1_ICM20689 4U
93 #define PB05_SPI6_MOSI 5U
94 #define PB06_USART1_TX 6U
95 #define PB07_USART1_RX 7U
96 #define PB08_I2C1_SCL 8U
97 #define PB09_I2C1_SDA 9U
98 #define PB10_SPI5_RESET 10U
99 #define PB11_FMU_CAP3 11U
100 #define PB12_CAN2_RX 12U
101 #define PB13_CAN2_TX 13U
102 #define PB14_DRDY2_BMI055_GYRO 14U
103 #define PB15_DRDY2_BMI055_ACC 15U
104 
105 #define PC00_SCALED_V5 0U
106 #define PC01_SCALED_3V3_SENSORS 1U
107 #define PC02_HW_VER_SENSE 2U
108 #define PC03_HW_REV_SENSE 3U
109 #define PC04_ADC6 4U
110 #define PC05_DRDY4_ICM20602 5U
111 #define PC06_LED2 6U
112 #define PC07_LED3 7U
113 #define PC08_SDIO_D0 8U
114 #define PC09_SDIO_D1 9U
115 #define PC10_SDIO_D2 10U
116 #define PC11_SDIO_D3 11U
117 #define PC12_SDIO_CK 12U
118 #define PC13_DRDY5_BMI055_GYRO 13U
119 #define PC14_OSC32_IN 14U
120 #define PC15_OSC32_OUT 15U
121 
122 #define PD00_UART4_RX 0U
123 #define PD01_UART4_TX 1U
124 #define PD02_SDIO_CMD 2U
125 #define PD03_UART2_CTS 3U
126 #define PD04_UART2_RTS 4U
127 #define PD05_UART2_TX 5U
128 #define PD06_UART2_RX 6U
129 #define PD07_SPI1_MOSI 7U
130 #define PD08_UART3_TX 8U
131 #define PD09_UART3_RX 9U
132 #define PD10_DRDY6_BMI055_ACC 10U
133 #define PD11_UART3_CTS 11U
134 #define PD12_UART3_RTS 12U
135 #define PD13_SERVO5 13U
136 #define PD14_SERVO6 14U
137 #define PD15_DRDY7_EXTERNAL1 15U
138 
139 #define PE00_UART8_RX 0U
140 #define PE01_UART8_TX 1U
141 #define PE02_SPI4_SCK 2U
142 #define PE03_V3V3_SENSORS_EN 3U
143 #define PE04_V3V3_SPEKTRUM_EN 4U
144 #define PE05_BUZZER 5U
145 #define PE06_SPI4_MOSI 6U
146 #define PE07_DRDY8 7U
147 #define PE08_UART7_TX 8U
148 #define PE09_SERVO4 9U
149 #define PE10_SAFETY_SWITCH_IN 10U
150 #define PE11_SERVO3 11U
151 #define PE12_LED4 12U
152 #define PE13_SPI4_MISO 13U
153 #define PE14_SERVO1 14U
154 #define PE15_V5V_PERIPH_OC 15U
155 
156 #define PF00_I2C2_SDA 0U
157 #define PF01_I2C2_SCL 1U
158 #define PF02_SPI_SLAVE0 2U
159 #define PF03_SPI_SLAVE1 3U
160 #define PF04_SPI_SLAVE2 4U
161 #define PF05_SPI_SLAVE3 5U
162 #define PF06_UART7_RX 6U
163 #define PF07_SPI5_SCK 7U
164 #define PF08_SPI5_MISO 8U
165 #define PF09_SPI5_MOSI 9U
166 #define PF10_SPI_SLAVE4 10U
167 #define PF11_SPI_SLAVE5 11U
168 #define PF12_V5V_HIPOWER_EN 12U
169 #define PF13_V5V_HIPOWER_OC 13U
170 #define PF14_I2C4_SCL 14U
171 #define PF15_I2C4_SDA 15U
172 
173 #define PG00_HW_VER_DRIVE 0U
174 #define PG01_POWER_IN_A 1U
175 #define PG02_POWER_IN_B 2U
176 #define PG03_POWER_IN_C 3U
177 #define PG04_V5V_PERIPH_EN 4U
178 #define PG05_V5V_RC_EN 5U
179 #define PG06_V5V_WIFI_EN 6U
180 #define PG07_V3V3_SD_CARD_EN 7U
181 #define PG08_USART6_RTS 8U
182 #define PG09_USART6_RX 9U
183 #define PG10_SPI_SLAVE6 10U
184 #define PG11_SPI1_SCK 11U
185 #define PG12_SPI6_MISO 12U
186 #define PG13_SPI6_SCK 13U
187 #define PG14_USART6_TX 14U
188 #define PG15_USART6_CTS 15U
189 
190 #define PH00_OSC_IN 0U
191 #define PH01_OSC_OUT 1U
192 #define PH02_CAN1_SILENT_S0 2U
193 #define PH03_CAN2_SILENT_S1 3U
194 #define PH04_CAN3_SILENT_S2 4U
195 #define PH05_SPI_SLAVE7 5U
196 #define PH06_SERVO7 6U
197 #define PH07_I2C3_SCL 7U
198 #define PH08_I2C3_SDA 8U
199 #define PH09_SERVO8 9U
200 #define PH10_LED5 10U
201 #define PH11_LED6 11U
202 #define PH12_LED7 12U
203 #define PH13_CAN1_TX 13U
204 #define PH14_HW_REV_DRIVE 14U
205 #define PH15_SPI5_SYNC 15U
206 
207 #define PI00_ARMED 0U
208 #define PI01_SPI2_SCK 1U
209 #define PI02_SPI2_MISO 2U
210 #define PI03_SPI2_MOSI 3U
211 #define PI04_SPI_SLAVE8 4U
212 #define PI05_PWM_INPUT1 5U
213 #define PI06_SPI_SLAVE9 6U
214 #define PI07_SPI_SLAVE10 7U
215 #define PI08_SPI_SLAVE11 8U
216 #define PI09_CAN1_RX 9U
217 #define PI10_SPI_SLAVE12 10U
218 #define PI11_SPI_SLAVE13 11U
219 #define PI12 12U
220 #define PI13 13U
221 #define PI14 14U
222 #define PI15 15U
223 
224 #define PJ00 0U
225 #define PJ01 1U
226 #define PJ02 2U
227 #define PJ03 3U
228 #define PJ04 4U
229 #define PJ05 5U
230 #define PJ06 6U
231 #define PJ07 7U
232 #define PJ08 8U
233 #define PJ09 9U
234 #define PJ10 10U
235 #define PJ11 11U
236 #define PJ12 12U
237 #define PJ13 13U
238 #define PJ14 14U
239 #define PJ15 15U
240 
241 #define PK00 0U
242 #define PK01 1U
243 #define PK02 2U
244 #define PK03 3U
245 #define PK04 4U
246 #define PK05 5U
247 #define PK06 6U
248 #define PK07 7U
249 #define PK08 8U
250 #define PK09 9U
251 #define PK10 10U
252 #define PK11 11U
253 #define PK12 12U
254 #define PK13 13U
255 #define PK14 14U
256 #define PK15 15U
257 
258 /*
259  * IO lines assignments.
260  */
261 #define LINE_ADC1 PAL_LINE(GPIOA, 0U)
262 #define LINE_ADC2 PAL_LINE(GPIOA, 1U)
263 #define LINE_ADC3 PAL_LINE(GPIOA, 2U)
264 #define LINE_ADC4 PAL_LINE(GPIOA, 3U)
265 #define LINE_ADC5 PAL_LINE(GPIOA, 4U)
266 #define LINE_FMU_CAP1 PAL_LINE(GPIOA, 5U)
267 #define LINE_SPI1_MISO PAL_LINE(GPIOA, 6U)
268 #define LINE_IMU_HEATER PAL_LINE(GPIOA, 7U)
269 #define LINE_CAN3_RX PAL_LINE(GPIOA, 8U)
270 #define LINE_USB_VBUS PAL_LINE(GPIOA, 9U)
271 #define LINE_SERVO2 PAL_LINE(GPIOA, 10U)
272 #define LINE_USB_DM PAL_LINE(GPIOA, 11U)
273 #define LINE_USB_DP PAL_LINE(GPIOA, 12U)
274 #define LINE_SWDIO PAL_LINE(GPIOA, 13U)
275 #define LINE_SWCLK PAL_LINE(GPIOA, 14U)
276 #define LINE_CAN3_TX PAL_LINE(GPIOA, 15U)
277 
278 #define LINE_RSSI_IN PAL_LINE(GPIOB, 0U)
279 #define LINE_LED1 PAL_LINE(GPIOB, 1U)
280 #define LINE_FMU_CAP2 PAL_LINE(GPIOB, 3U)
281 #define LINE_DRDY1_ICM20689 PAL_LINE(GPIOB, 4U)
282 #define LINE_SPI6_MOSI PAL_LINE(GPIOB, 5U)
283 #define LINE_USART1_TX PAL_LINE(GPIOB, 6U)
284 #define LINE_USART1_RX PAL_LINE(GPIOB, 7U)
285 #define LINE_I2C1_SCL PAL_LINE(GPIOB, 8U)
286 #define LINE_I2C1_SDA PAL_LINE(GPIOB, 9U)
287 #define LINE_SPI5_RESET PAL_LINE(GPIOB, 10U)
288 #define LINE_FMU_CAP3 PAL_LINE(GPIOB, 11U)
289 #define LINE_CAN2_RX PAL_LINE(GPIOB, 12U)
290 #define LINE_CAN2_TX PAL_LINE(GPIOB, 13U)
291 #define LINE_DRDY2_BMI055_GYRO PAL_LINE(GPIOB, 14U)
292 #define LINE_DRDY2_BMI055_ACC PAL_LINE(GPIOB, 15U)
293 
294 #define LINE_SCALED_V5 PAL_LINE(GPIOC, 0U)
295 #define LINE_SCALED_3V3_SENSORS PAL_LINE(GPIOC, 1U)
296 #define LINE_HW_VER_SENSE PAL_LINE(GPIOC, 2U)
297 #define LINE_HW_REV_SENSE PAL_LINE(GPIOC, 3U)
298 #define LINE_ADC6 PAL_LINE(GPIOC, 4U)
299 #define LINE_DRDY4_ICM20602 PAL_LINE(GPIOC, 5U)
300 #define LINE_LED2 PAL_LINE(GPIOC, 6U)
301 #define LINE_LED3 PAL_LINE(GPIOC, 7U)
302 #define LINE_SDIO_D0 PAL_LINE(GPIOC, 8U)
303 #define LINE_SDIO_D1 PAL_LINE(GPIOC, 9U)
304 #define LINE_SDIO_D2 PAL_LINE(GPIOC, 10U)
305 #define LINE_SDIO_D3 PAL_LINE(GPIOC, 11U)
306 #define LINE_SDIO_CK PAL_LINE(GPIOC, 12U)
307 #define LINE_DRDY5_BMI055_GYRO PAL_LINE(GPIOC, 13U)
308 #define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
309 #define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
310 
311 #define LINE_UART4_RX PAL_LINE(GPIOD, 0U)
312 #define LINE_UART4_TX PAL_LINE(GPIOD, 1U)
313 #define LINE_SDIO_CMD PAL_LINE(GPIOD, 2U)
314 #define LINE_UART2_CTS PAL_LINE(GPIOD, 3U)
315 #define LINE_UART2_RTS PAL_LINE(GPIOD, 4U)
316 #define LINE_UART2_TX PAL_LINE(GPIOD, 5U)
317 #define LINE_UART2_RX PAL_LINE(GPIOD, 6U)
318 #define LINE_SPI1_MOSI PAL_LINE(GPIOD, 7U)
319 #define LINE_UART3_TX PAL_LINE(GPIOD, 8U)
320 #define LINE_UART3_RX PAL_LINE(GPIOD, 9U)
321 #define LINE_DRDY6_BMI055_ACC PAL_LINE(GPIOD, 10U)
322 #define LINE_UART3_CTS PAL_LINE(GPIOD, 11U)
323 #define LINE_UART3_RTS PAL_LINE(GPIOD, 12U)
324 #define LINE_SERVO5 PAL_LINE(GPIOD, 13U)
325 #define LINE_SERVO6 PAL_LINE(GPIOD, 14U)
326 #define LINE_DRDY7_EXTERNAL1 PAL_LINE(GPIOD, 15U)
327 
328 #define LINE_UART8_RX PAL_LINE(GPIOE, 0U)
329 #define LINE_UART8_TX PAL_LINE(GPIOE, 1U)
330 #define LINE_SPI4_SCK PAL_LINE(GPIOE, 2U)
331 #define LINE_V3V3_SENSORS_EN PAL_LINE(GPIOE, 3U)
332 #define LINE_V3V3_SPEKTRUM_EN PAL_LINE(GPIOE, 4U)
333 #define LINE_BUZZER PAL_LINE(GPIOE, 5U)
334 #define LINE_SPI4_MOSI PAL_LINE(GPIOE, 6U)
335 #define LINE_DRDY8 PAL_LINE(GPIOE, 7U)
336 #define LINE_UART7_TX PAL_LINE(GPIOE, 8U)
337 #define LINE_SERVO4 PAL_LINE(GPIOE, 9U)
338 #define LINE_SAFETY_SWITCH_IN PAL_LINE(GPIOE, 10U)
339 #define LINE_SERVO3 PAL_LINE(GPIOE, 11U)
340 #define LINE_LED4 PAL_LINE(GPIOE, 12U)
341 #define LINE_SPI4_MISO PAL_LINE(GPIOE, 13U)
342 #define LINE_SERVO1 PAL_LINE(GPIOE, 14U)
343 #define LINE_V5V_PERIPH_OC PAL_LINE(GPIOE, 15U)
344 
345 #define LINE_I2C2_SDA PAL_LINE(GPIOF, 0U)
346 #define LINE_I2C2_SCL PAL_LINE(GPIOF, 1U)
347 #define LINE_SPI_SLAVE0 PAL_LINE(GPIOF, 2U)
348 #define LINE_SPI_SLAVE1 PAL_LINE(GPIOF, 3U)
349 #define LINE_SPI_SLAVE2 PAL_LINE(GPIOF, 4U)
350 #define LINE_SPI_SLAVE3 PAL_LINE(GPIOF, 5U)
351 #define LINE_UART7_RX PAL_LINE(GPIOF, 6U)
352 #define LINE_SPI5_SCK PAL_LINE(GPIOF, 7U)
353 #define LINE_SPI5_MISO PAL_LINE(GPIOF, 8U)
354 #define LINE_SPI5_MOSI PAL_LINE(GPIOF, 9U)
355 #define LINE_SPI_SLAVE4 PAL_LINE(GPIOF, 10U)
356 #define LINE_SPI_SLAVE5 PAL_LINE(GPIOF, 11U)
357 #define LINE_V5V_HIPOWER_EN PAL_LINE(GPIOF, 12U)
358 #define LINE_V5V_HIPOWER_OC PAL_LINE(GPIOF, 13U)
359 #define LINE_I2C4_SCL PAL_LINE(GPIOF, 14U)
360 #define LINE_I2C4_SDA PAL_LINE(GPIOF, 15U)
361 
362 #define LINE_HW_VER_DRIVE PAL_LINE(GPIOG, 0U)
363 #define LINE_POWER_IN_A PAL_LINE(GPIOG, 1U)
364 #define LINE_POWER_IN_B PAL_LINE(GPIOG, 2U)
365 #define LINE_POWER_IN_C PAL_LINE(GPIOG, 3U)
366 #define LINE_V5V_PERIPH_EN PAL_LINE(GPIOG, 4U)
367 #define LINE_V5V_RC_EN PAL_LINE(GPIOG, 5U)
368 #define LINE_V5V_WIFI_EN PAL_LINE(GPIOG, 6U)
369 #define LINE_V3V3_SD_CARD_EN PAL_LINE(GPIOG, 7U)
370 #define LINE_USART6_RTS PAL_LINE(GPIOG, 8U)
371 #define LINE_USART6_RX PAL_LINE(GPIOG, 9U)
372 #define LINE_SPI_SLAVE6 PAL_LINE(GPIOG, 10U)
373 #define LINE_SPI1_SCK PAL_LINE(GPIOG, 11U)
374 #define LINE_SPI6_MISO PAL_LINE(GPIOG, 12U)
375 #define LINE_SPI6_SCK PAL_LINE(GPIOG, 13U)
376 #define LINE_USART6_TX PAL_LINE(GPIOG, 14U)
377 #define LINE_USART6_CTS PAL_LINE(GPIOG, 15U)
378 
379 #define LINE_OSC_IN PAL_LINE(GPIOH, 0U)
380 #define LINE_OSC_OUT PAL_LINE(GPIOH, 1U)
381 #define LINE_CAN1_SILENT_S0 PAL_LINE(GPIOH, 2U)
382 #define LINE_CAN2_SILENT_S1 PAL_LINE(GPIOH, 3U)
383 #define LINE_CAN3_SILENT_S2 PAL_LINE(GPIOH, 4U)
384 #define LINE_SPI_SLAVE7 PAL_LINE(GPIOH, 5U)
385 #define LINE_SERVO7 PAL_LINE(GPIOH, 6U)
386 #define LINE_I2C3_SCL PAL_LINE(GPIOH, 7U)
387 #define LINE_I2C3_SDA PAL_LINE(GPIOH, 8U)
388 #define LINE_SERVO8 PAL_LINE(GPIOH, 9U)
389 #define LINE_LED5 PAL_LINE(GPIOH, 10U)
390 #define LINE_LED6 PAL_LINE(GPIOH, 11U)
391 #define LINE_LED7 PAL_LINE(GPIOH, 12U)
392 #define LINE_CAN1_TX PAL_LINE(GPIOH, 13U)
393 #define LINE_HW_REV_DRIVE PAL_LINE(GPIOH, 14U)
394 #define LINE_SPI5_SYNC PAL_LINE(GPIOH, 15U)
395 
396 #define LINE_ARMED PAL_LINE(GPIOI, 0U)
397 #define LINE_SPI2_SCK PAL_LINE(GPIOI, 1U)
398 #define LINE_SPI2_MISO PAL_LINE(GPIOI, 2U)
399 #define LINE_SPI2_MOSI PAL_LINE(GPIOI, 3U)
400 #define LINE_SPI_SLAVE8 PAL_LINE(GPIOI, 4U)
401 #define LINE_PWM_INPUT1 PAL_LINE(GPIOI, 5U)
402 #define LINE_SPI_SLAVE9 PAL_LINE(GPIOI, 6U)
403 #define LINE_SPI_SLAVE10 PAL_LINE(GPIOI, 7U)
404 #define LINE_SPI_SLAVE11 PAL_LINE(GPIOI, 8U)
405 #define LINE_CAN1_RX PAL_LINE(GPIOI, 9U)
406 #define LINE_SPI_SLAVE12 PAL_LINE(GPIOI, 10U)
407 #define LINE_SPI_SLAVE13 PAL_LINE(GPIOI, 11U)
408 
409 
410 /*
411  * I/O ports initial setup, this configuration is established soon after reset
412  * in the initialization code.
413  * Please refer to the STM32 Reference Manual for details.
414  */
415 #define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
416 #define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
417 #define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
418 #define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
419 #define PIN_ODR_LEVEL_LOW(n) (0U << (n))
420 #define PIN_ODR_LEVEL_HIGH(n) (1U << (n))
421 #define PIN_OTYPE_PUSHPULL(n) (0U << (n))
422 #define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
423 #define PIN_OSPEED_SPEED_VERYLOW(n) (0U << ((n) * 2U))
424 #define PIN_OSPEED_SPEED_LOW(n) (1U << ((n) * 2U))
425 #define PIN_OSPEED_SPEED_MEDIUM(n) (2U << ((n) * 2U))
426 #define PIN_OSPEED_SPEED_HIGH(n) (3U << ((n) * 2U))
427 #define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
428 #define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
429 #define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
430 #define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
431 
432 #define VAL_GPIOA_MODER (PIN_MODE_ANALOG(PA00_ADC1) | \
433  PIN_MODE_ANALOG(PA01_ADC2) | \
434  PIN_MODE_ANALOG(PA02_ADC3) | \
435  PIN_MODE_ANALOG(PA03_ADC4) | \
436  PIN_MODE_ANALOG(PA04_ADC5) | \
437  PIN_MODE_INPUT(PA05_FMU_CAP1) | \
438  PIN_MODE_ALTERNATE(PA06_SPI1_MISO) | \
439  PIN_MODE_OUTPUT(PA07_IMU_HEATER) | \
440  PIN_MODE_ALTERNATE(PA08_CAN3_RX) | \
441  PIN_MODE_INPUT(PA09_USB_VBUS) | \
442  PIN_MODE_ALTERNATE(PA10_SERVO2) | \
443  PIN_MODE_ALTERNATE(PA11_USB_DM) | \
444  PIN_MODE_ALTERNATE(PA12_USB_DP) | \
445  PIN_MODE_ALTERNATE(PA13_SWDIO) | \
446  PIN_MODE_ALTERNATE(PA14_SWCLK) | \
447  PIN_MODE_ALTERNATE(PA15_CAN3_TX))
448 
449 #define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(PA00_ADC1) | \
450  PIN_OTYPE_PUSHPULL(PA01_ADC2) | \
451  PIN_OTYPE_PUSHPULL(PA02_ADC3) | \
452  PIN_OTYPE_PUSHPULL(PA03_ADC4) | \
453  PIN_OTYPE_PUSHPULL(PA04_ADC5) | \
454  PIN_OTYPE_OPENDRAIN(PA05_FMU_CAP1) | \
455  PIN_OTYPE_PUSHPULL(PA06_SPI1_MISO) | \
456  PIN_OTYPE_PUSHPULL(PA07_IMU_HEATER) | \
457  PIN_OTYPE_PUSHPULL(PA08_CAN3_RX) | \
458  PIN_OTYPE_OPENDRAIN(PA09_USB_VBUS) | \
459  PIN_OTYPE_PUSHPULL(PA10_SERVO2) | \
460  PIN_OTYPE_PUSHPULL(PA11_USB_DM) | \
461  PIN_OTYPE_PUSHPULL(PA12_USB_DP) | \
462  PIN_OTYPE_PUSHPULL(PA13_SWDIO) | \
463  PIN_OTYPE_PUSHPULL(PA14_SWCLK) | \
464  PIN_OTYPE_PUSHPULL(PA15_CAN3_TX))
465 
466 #define VAL_GPIOA_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PA00_ADC1) | \
467  PIN_OSPEED_SPEED_VERYLOW(PA01_ADC2) | \
468  PIN_OSPEED_SPEED_VERYLOW(PA02_ADC3) | \
469  PIN_OSPEED_SPEED_VERYLOW(PA03_ADC4) | \
470  PIN_OSPEED_SPEED_VERYLOW(PA04_ADC5) | \
471  PIN_OSPEED_SPEED_VERYLOW(PA05_FMU_CAP1) | \
472  PIN_OSPEED_SPEED_HIGH(PA06_SPI1_MISO) | \
473  PIN_OSPEED_SPEED_HIGH(PA07_IMU_HEATER) | \
474  PIN_OSPEED_SPEED_HIGH(PA08_CAN3_RX) | \
475  PIN_OSPEED_SPEED_VERYLOW(PA09_USB_VBUS) | \
476  PIN_OSPEED_SPEED_HIGH(PA10_SERVO2) | \
477  PIN_OSPEED_SPEED_HIGH(PA11_USB_DM) | \
478  PIN_OSPEED_SPEED_HIGH(PA12_USB_DP) | \
479  PIN_OSPEED_SPEED_HIGH(PA13_SWDIO) | \
480  PIN_OSPEED_SPEED_HIGH(PA14_SWCLK) | \
481  PIN_OSPEED_SPEED_HIGH(PA15_CAN3_TX))
482 
483 #define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(PA00_ADC1) | \
484  PIN_PUPDR_FLOATING(PA01_ADC2) | \
485  PIN_PUPDR_FLOATING(PA02_ADC3) | \
486  PIN_PUPDR_FLOATING(PA03_ADC4) | \
487  PIN_PUPDR_FLOATING(PA04_ADC5) | \
488  PIN_PUPDR_PULLDOWN(PA05_FMU_CAP1) | \
489  PIN_PUPDR_FLOATING(PA06_SPI1_MISO) | \
490  PIN_PUPDR_FLOATING(PA07_IMU_HEATER) | \
491  PIN_PUPDR_FLOATING(PA08_CAN3_RX) | \
492  PIN_PUPDR_PULLDOWN(PA09_USB_VBUS) | \
493  PIN_PUPDR_FLOATING(PA10_SERVO2) | \
494  PIN_PUPDR_FLOATING(PA11_USB_DM) | \
495  PIN_PUPDR_FLOATING(PA12_USB_DP) | \
496  PIN_PUPDR_FLOATING(PA13_SWDIO) | \
497  PIN_PUPDR_FLOATING(PA14_SWCLK) | \
498  PIN_PUPDR_FLOATING(PA15_CAN3_TX))
499 
500 #define VAL_GPIOA_ODR (PIN_ODR_LEVEL_LOW(PA00_ADC1) | \
501  PIN_ODR_LEVEL_LOW(PA01_ADC2) | \
502  PIN_ODR_LEVEL_LOW(PA02_ADC3) | \
503  PIN_ODR_LEVEL_LOW(PA03_ADC4) | \
504  PIN_ODR_LEVEL_LOW(PA04_ADC5) | \
505  PIN_ODR_LEVEL_HIGH(PA05_FMU_CAP1) | \
506  PIN_ODR_LEVEL_HIGH(PA06_SPI1_MISO) | \
507  PIN_ODR_LEVEL_LOW(PA07_IMU_HEATER) | \
508  PIN_ODR_LEVEL_HIGH(PA08_CAN3_RX) | \
509  PIN_ODR_LEVEL_LOW(PA09_USB_VBUS) | \
510  PIN_ODR_LEVEL_LOW(PA10_SERVO2) | \
511  PIN_ODR_LEVEL_HIGH(PA11_USB_DM) | \
512  PIN_ODR_LEVEL_HIGH(PA12_USB_DP) | \
513  PIN_ODR_LEVEL_HIGH(PA13_SWDIO) | \
514  PIN_ODR_LEVEL_HIGH(PA14_SWCLK) | \
515  PIN_ODR_LEVEL_HIGH(PA15_CAN3_TX))
516 
517 #define VAL_GPIOA_AFRL (PIN_AFIO_AF(PA00_ADC1, 0) | \
518  PIN_AFIO_AF(PA01_ADC2, 0) | \
519  PIN_AFIO_AF(PA02_ADC3, 0) | \
520  PIN_AFIO_AF(PA03_ADC4, 0) | \
521  PIN_AFIO_AF(PA04_ADC5, 0) | \
522  PIN_AFIO_AF(PA05_FMU_CAP1, 0) | \
523  PIN_AFIO_AF(PA06_SPI1_MISO, 5) | \
524  PIN_AFIO_AF(PA07_IMU_HEATER, 0))
525 
526 #define VAL_GPIOA_AFRH (PIN_AFIO_AF(PA08_CAN3_RX, 11) | \
527  PIN_AFIO_AF(PA09_USB_VBUS, 0) | \
528  PIN_AFIO_AF(PA10_SERVO2, 1) | \
529  PIN_AFIO_AF(PA11_USB_DM, 10) | \
530  PIN_AFIO_AF(PA12_USB_DP, 10) | \
531  PIN_AFIO_AF(PA13_SWDIO, 0) | \
532  PIN_AFIO_AF(PA14_SWCLK, 0) | \
533  PIN_AFIO_AF(PA15_CAN3_TX, 11))
534 
535 #define VAL_GPIOB_MODER (PIN_MODE_ANALOG(PB00_RSSI_IN) | \
536  PIN_MODE_OUTPUT(PB01_LED1) | \
537  PIN_MODE_INPUT(PB02) | \
538  PIN_MODE_INPUT(PB03_FMU_CAP2) | \
539  PIN_MODE_INPUT(PB04_DRDY1_ICM20689) | \
540  PIN_MODE_ALTERNATE(PB05_SPI6_MOSI) | \
541  PIN_MODE_ALTERNATE(PB06_USART1_TX) | \
542  PIN_MODE_ALTERNATE(PB07_USART1_RX) | \
543  PIN_MODE_ALTERNATE(PB08_I2C1_SCL) | \
544  PIN_MODE_ALTERNATE(PB09_I2C1_SDA) | \
545  PIN_MODE_INPUT(PB10_SPI5_RESET) | \
546  PIN_MODE_INPUT(PB11_FMU_CAP3) | \
547  PIN_MODE_ALTERNATE(PB12_CAN2_RX) | \
548  PIN_MODE_ALTERNATE(PB13_CAN2_TX) | \
549  PIN_MODE_INPUT(PB14_DRDY2_BMI055_GYRO) | \
550  PIN_MODE_INPUT(PB15_DRDY2_BMI055_ACC))
551 
552 #define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(PB00_RSSI_IN) | \
553  PIN_OTYPE_PUSHPULL(PB01_LED1) | \
554  PIN_OTYPE_PUSHPULL(PB02) | \
555  PIN_OTYPE_OPENDRAIN(PB03_FMU_CAP2) | \
556  PIN_OTYPE_OPENDRAIN(PB04_DRDY1_ICM20689) | \
557  PIN_OTYPE_PUSHPULL(PB05_SPI6_MOSI) | \
558  PIN_OTYPE_PUSHPULL(PB06_USART1_TX) | \
559  PIN_OTYPE_PUSHPULL(PB07_USART1_RX) | \
560  PIN_OTYPE_OPENDRAIN(PB08_I2C1_SCL) | \
561  PIN_OTYPE_OPENDRAIN(PB09_I2C1_SDA) | \
562  PIN_OTYPE_OPENDRAIN(PB10_SPI5_RESET) | \
563  PIN_OTYPE_OPENDRAIN(PB11_FMU_CAP3) | \
564  PIN_OTYPE_PUSHPULL(PB12_CAN2_RX) | \
565  PIN_OTYPE_PUSHPULL(PB13_CAN2_TX) | \
566  PIN_OTYPE_OPENDRAIN(PB14_DRDY2_BMI055_GYRO) | \
567  PIN_OTYPE_OPENDRAIN(PB15_DRDY2_BMI055_ACC))
568 
569 #define VAL_GPIOB_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PB00_RSSI_IN) | \
570  PIN_OSPEED_SPEED_VERYLOW(PB01_LED1) | \
571  PIN_OSPEED_SPEED_VERYLOW(PB02) | \
572  PIN_OSPEED_SPEED_VERYLOW(PB03_FMU_CAP2) | \
573  PIN_OSPEED_SPEED_VERYLOW(PB04_DRDY1_ICM20689) | \
574  PIN_OSPEED_SPEED_HIGH(PB05_SPI6_MOSI) | \
575  PIN_OSPEED_SPEED_HIGH(PB06_USART1_TX) | \
576  PIN_OSPEED_SPEED_HIGH(PB07_USART1_RX) | \
577  PIN_OSPEED_SPEED_HIGH(PB08_I2C1_SCL) | \
578  PIN_OSPEED_SPEED_HIGH(PB09_I2C1_SDA) | \
579  PIN_OSPEED_SPEED_VERYLOW(PB10_SPI5_RESET) | \
580  PIN_OSPEED_SPEED_VERYLOW(PB11_FMU_CAP3) | \
581  PIN_OSPEED_SPEED_HIGH(PB12_CAN2_RX) | \
582  PIN_OSPEED_SPEED_HIGH(PB13_CAN2_TX) | \
583  PIN_OSPEED_SPEED_VERYLOW(PB14_DRDY2_BMI055_GYRO) | \
584  PIN_OSPEED_SPEED_VERYLOW(PB15_DRDY2_BMI055_ACC))
585 
586 #define VAL_GPIOB_PUPDR (PIN_PUPDR_FLOATING(PB00_RSSI_IN) | \
587  PIN_PUPDR_FLOATING(PB01_LED1) | \
588  PIN_PUPDR_PULLDOWN(PB02) | \
589  PIN_PUPDR_PULLDOWN(PB03_FMU_CAP2) | \
590  PIN_PUPDR_PULLDOWN(PB04_DRDY1_ICM20689) | \
591  PIN_PUPDR_FLOATING(PB05_SPI6_MOSI) | \
592  PIN_PUPDR_FLOATING(PB06_USART1_TX) | \
593  PIN_PUPDR_FLOATING(PB07_USART1_RX) | \
594  PIN_PUPDR_PULLUP(PB08_I2C1_SCL) | \
595  PIN_PUPDR_PULLUP(PB09_I2C1_SDA) | \
596  PIN_PUPDR_PULLDOWN(PB10_SPI5_RESET) | \
597  PIN_PUPDR_PULLDOWN(PB11_FMU_CAP3) | \
598  PIN_PUPDR_FLOATING(PB12_CAN2_RX) | \
599  PIN_PUPDR_FLOATING(PB13_CAN2_TX) | \
600  PIN_PUPDR_PULLDOWN(PB14_DRDY2_BMI055_GYRO) | \
601  PIN_PUPDR_PULLDOWN(PB15_DRDY2_BMI055_ACC))
602 
603 #define VAL_GPIOB_ODR (PIN_ODR_LEVEL_LOW(PB00_RSSI_IN) | \
604  PIN_ODR_LEVEL_LOW(PB01_LED1) | \
605  PIN_ODR_LEVEL_LOW(PB02) | \
606  PIN_ODR_LEVEL_HIGH(PB03_FMU_CAP2) | \
607  PIN_ODR_LEVEL_HIGH(PB04_DRDY1_ICM20689) | \
608  PIN_ODR_LEVEL_HIGH(PB05_SPI6_MOSI) | \
609  PIN_ODR_LEVEL_HIGH(PB06_USART1_TX) | \
610  PIN_ODR_LEVEL_HIGH(PB07_USART1_RX) | \
611  PIN_ODR_LEVEL_HIGH(PB08_I2C1_SCL) | \
612  PIN_ODR_LEVEL_HIGH(PB09_I2C1_SDA) | \
613  PIN_ODR_LEVEL_HIGH(PB10_SPI5_RESET) | \
614  PIN_ODR_LEVEL_HIGH(PB11_FMU_CAP3) | \
615  PIN_ODR_LEVEL_HIGH(PB12_CAN2_RX) | \
616  PIN_ODR_LEVEL_HIGH(PB13_CAN2_TX) | \
617  PIN_ODR_LEVEL_HIGH(PB14_DRDY2_BMI055_GYRO) | \
618  PIN_ODR_LEVEL_HIGH(PB15_DRDY2_BMI055_ACC))
619 
620 #define VAL_GPIOB_AFRL (PIN_AFIO_AF(PB00_RSSI_IN, 0) | \
621  PIN_AFIO_AF(PB01_LED1, 0) | \
622  PIN_AFIO_AF(PB02, 0) | \
623  PIN_AFIO_AF(PB03_FMU_CAP2, 0) | \
624  PIN_AFIO_AF(PB04_DRDY1_ICM20689, 0) | \
625  PIN_AFIO_AF(PB05_SPI6_MOSI, 8) | \
626  PIN_AFIO_AF(PB06_USART1_TX, 7) | \
627  PIN_AFIO_AF(PB07_USART1_RX, 7))
628 
629 #define VAL_GPIOB_AFRH (PIN_AFIO_AF(PB08_I2C1_SCL, 4) | \
630  PIN_AFIO_AF(PB09_I2C1_SDA, 4) | \
631  PIN_AFIO_AF(PB10_SPI5_RESET, 0) | \
632  PIN_AFIO_AF(PB11_FMU_CAP3, 0) | \
633  PIN_AFIO_AF(PB12_CAN2_RX, 9) | \
634  PIN_AFIO_AF(PB13_CAN2_TX, 9) | \
635  PIN_AFIO_AF(PB14_DRDY2_BMI055_GYRO, 0) | \
636  PIN_AFIO_AF(PB15_DRDY2_BMI055_ACC, 0))
637 
638 #define VAL_GPIOC_MODER (PIN_MODE_ANALOG(PC00_SCALED_V5) | \
639  PIN_MODE_ANALOG(PC01_SCALED_3V3_SENSORS) | \
640  PIN_MODE_ANALOG(PC02_HW_VER_SENSE) | \
641  PIN_MODE_ANALOG(PC03_HW_REV_SENSE) | \
642  PIN_MODE_ANALOG(PC04_ADC6) | \
643  PIN_MODE_INPUT(PC05_DRDY4_ICM20602) | \
644  PIN_MODE_OUTPUT(PC06_LED2) | \
645  PIN_MODE_OUTPUT(PC07_LED3) | \
646  PIN_MODE_ALTERNATE(PC08_SDIO_D0) | \
647  PIN_MODE_ALTERNATE(PC09_SDIO_D1) | \
648  PIN_MODE_ALTERNATE(PC10_SDIO_D2) | \
649  PIN_MODE_ALTERNATE(PC11_SDIO_D3) | \
650  PIN_MODE_ALTERNATE(PC12_SDIO_CK) | \
651  PIN_MODE_INPUT(PC13_DRDY5_BMI055_GYRO) | \
652  PIN_MODE_ALTERNATE(PC14_OSC32_IN) | \
653  PIN_MODE_ALTERNATE(PC15_OSC32_OUT))
654 
655 #define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(PC00_SCALED_V5) | \
656  PIN_OTYPE_PUSHPULL(PC01_SCALED_3V3_SENSORS) | \
657  PIN_OTYPE_PUSHPULL(PC02_HW_VER_SENSE) | \
658  PIN_OTYPE_PUSHPULL(PC03_HW_REV_SENSE) | \
659  PIN_OTYPE_PUSHPULL(PC04_ADC6) | \
660  PIN_OTYPE_OPENDRAIN(PC05_DRDY4_ICM20602) | \
661  PIN_OTYPE_PUSHPULL(PC06_LED2) | \
662  PIN_OTYPE_PUSHPULL(PC07_LED3) | \
663  PIN_OTYPE_PUSHPULL(PC08_SDIO_D0) | \
664  PIN_OTYPE_PUSHPULL(PC09_SDIO_D1) | \
665  PIN_OTYPE_PUSHPULL(PC10_SDIO_D2) | \
666  PIN_OTYPE_PUSHPULL(PC11_SDIO_D3) | \
667  PIN_OTYPE_PUSHPULL(PC12_SDIO_CK) | \
668  PIN_OTYPE_OPENDRAIN(PC13_DRDY5_BMI055_GYRO) | \
669  PIN_OTYPE_PUSHPULL(PC14_OSC32_IN) | \
670  PIN_OTYPE_PUSHPULL(PC15_OSC32_OUT))
671 
672 #define VAL_GPIOC_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PC00_SCALED_V5) | \
673  PIN_OSPEED_SPEED_VERYLOW(PC01_SCALED_3V3_SENSORS) | \
674  PIN_OSPEED_SPEED_VERYLOW(PC02_HW_VER_SENSE) | \
675  PIN_OSPEED_SPEED_VERYLOW(PC03_HW_REV_SENSE) | \
676  PIN_OSPEED_SPEED_VERYLOW(PC04_ADC6) | \
677  PIN_OSPEED_SPEED_VERYLOW(PC05_DRDY4_ICM20602) | \
678  PIN_OSPEED_SPEED_VERYLOW(PC06_LED2) | \
679  PIN_OSPEED_SPEED_VERYLOW(PC07_LED3) | \
680  PIN_OSPEED_SPEED_HIGH(PC08_SDIO_D0) | \
681  PIN_OSPEED_SPEED_HIGH(PC09_SDIO_D1) | \
682  PIN_OSPEED_SPEED_HIGH(PC10_SDIO_D2) | \
683  PIN_OSPEED_SPEED_HIGH(PC11_SDIO_D3) | \
684  PIN_OSPEED_SPEED_HIGH(PC12_SDIO_CK) | \
685  PIN_OSPEED_SPEED_VERYLOW(PC13_DRDY5_BMI055_GYRO) | \
686  PIN_OSPEED_SPEED_HIGH(PC14_OSC32_IN) | \
687  PIN_OSPEED_SPEED_HIGH(PC15_OSC32_OUT))
688 
689 #define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(PC00_SCALED_V5) | \
690  PIN_PUPDR_FLOATING(PC01_SCALED_3V3_SENSORS) | \
691  PIN_PUPDR_FLOATING(PC02_HW_VER_SENSE) | \
692  PIN_PUPDR_FLOATING(PC03_HW_REV_SENSE) | \
693  PIN_PUPDR_FLOATING(PC04_ADC6) | \
694  PIN_PUPDR_PULLDOWN(PC05_DRDY4_ICM20602) | \
695  PIN_PUPDR_FLOATING(PC06_LED2) | \
696  PIN_PUPDR_FLOATING(PC07_LED3) | \
697  PIN_PUPDR_PULLUP(PC08_SDIO_D0) | \
698  PIN_PUPDR_PULLUP(PC09_SDIO_D1) | \
699  PIN_PUPDR_PULLUP(PC10_SDIO_D2) | \
700  PIN_PUPDR_PULLUP(PC11_SDIO_D3) | \
701  PIN_PUPDR_PULLUP(PC12_SDIO_CK) | \
702  PIN_PUPDR_PULLDOWN(PC13_DRDY5_BMI055_GYRO) | \
703  PIN_PUPDR_FLOATING(PC14_OSC32_IN) | \
704  PIN_PUPDR_FLOATING(PC15_OSC32_OUT))
705 
706 #define VAL_GPIOC_ODR (PIN_ODR_LEVEL_LOW(PC00_SCALED_V5) | \
707  PIN_ODR_LEVEL_LOW(PC01_SCALED_3V3_SENSORS) | \
708  PIN_ODR_LEVEL_LOW(PC02_HW_VER_SENSE) | \
709  PIN_ODR_LEVEL_LOW(PC03_HW_REV_SENSE) | \
710  PIN_ODR_LEVEL_LOW(PC04_ADC6) | \
711  PIN_ODR_LEVEL_HIGH(PC05_DRDY4_ICM20602) | \
712  PIN_ODR_LEVEL_LOW(PC06_LED2) | \
713  PIN_ODR_LEVEL_LOW(PC07_LED3) | \
714  PIN_ODR_LEVEL_HIGH(PC08_SDIO_D0) | \
715  PIN_ODR_LEVEL_HIGH(PC09_SDIO_D1) | \
716  PIN_ODR_LEVEL_HIGH(PC10_SDIO_D2) | \
717  PIN_ODR_LEVEL_HIGH(PC11_SDIO_D3) | \
718  PIN_ODR_LEVEL_HIGH(PC12_SDIO_CK) | \
719  PIN_ODR_LEVEL_HIGH(PC13_DRDY5_BMI055_GYRO) | \
720  PIN_ODR_LEVEL_HIGH(PC14_OSC32_IN) | \
721  PIN_ODR_LEVEL_HIGH(PC15_OSC32_OUT))
722 
723 #define VAL_GPIOC_AFRL (PIN_AFIO_AF(PC00_SCALED_V5, 0) | \
724  PIN_AFIO_AF(PC01_SCALED_3V3_SENSORS, 0) | \
725  PIN_AFIO_AF(PC02_HW_VER_SENSE, 0) | \
726  PIN_AFIO_AF(PC03_HW_REV_SENSE, 0) | \
727  PIN_AFIO_AF(PC04_ADC6, 0) | \
728  PIN_AFIO_AF(PC05_DRDY4_ICM20602, 0) | \
729  PIN_AFIO_AF(PC06_LED2, 0) | \
730  PIN_AFIO_AF(PC07_LED3, 0))
731 
732 #define VAL_GPIOC_AFRH (PIN_AFIO_AF(PC08_SDIO_D0, 12) | \
733  PIN_AFIO_AF(PC09_SDIO_D1, 12) | \
734  PIN_AFIO_AF(PC10_SDIO_D2, 12) | \
735  PIN_AFIO_AF(PC11_SDIO_D3, 12) | \
736  PIN_AFIO_AF(PC12_SDIO_CK, 12) | \
737  PIN_AFIO_AF(PC13_DRDY5_BMI055_GYRO, 0) | \
738  PIN_AFIO_AF(PC14_OSC32_IN, 0) | \
739  PIN_AFIO_AF(PC15_OSC32_OUT, 0))
740 
741 #define VAL_GPIOD_MODER (PIN_MODE_ALTERNATE(PD00_UART4_RX) | \
742  PIN_MODE_ALTERNATE(PD01_UART4_TX) | \
743  PIN_MODE_ALTERNATE(PD02_SDIO_CMD) | \
744  PIN_MODE_INPUT(PD03_UART2_CTS) | \
745  PIN_MODE_INPUT(PD04_UART2_RTS) | \
746  PIN_MODE_ALTERNATE(PD05_UART2_TX) | \
747  PIN_MODE_ALTERNATE(PD06_UART2_RX) | \
748  PIN_MODE_ALTERNATE(PD07_SPI1_MOSI) | \
749  PIN_MODE_ALTERNATE(PD08_UART3_TX) | \
750  PIN_MODE_ALTERNATE(PD09_UART3_RX) | \
751  PIN_MODE_INPUT(PD10_DRDY6_BMI055_ACC) | \
752  PIN_MODE_INPUT(PD11_UART3_CTS) | \
753  PIN_MODE_INPUT(PD12_UART3_RTS) | \
754  PIN_MODE_ALTERNATE(PD13_SERVO5) | \
755  PIN_MODE_ALTERNATE(PD14_SERVO6) | \
756  PIN_MODE_INPUT(PD15_DRDY7_EXTERNAL1))
757 
758 #define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(PD00_UART4_RX) | \
759  PIN_OTYPE_PUSHPULL(PD01_UART4_TX) | \
760  PIN_OTYPE_PUSHPULL(PD02_SDIO_CMD) | \
761  PIN_OTYPE_OPENDRAIN(PD03_UART2_CTS) | \
762  PIN_OTYPE_OPENDRAIN(PD04_UART2_RTS) | \
763  PIN_OTYPE_PUSHPULL(PD05_UART2_TX) | \
764  PIN_OTYPE_PUSHPULL(PD06_UART2_RX) | \
765  PIN_OTYPE_PUSHPULL(PD07_SPI1_MOSI) | \
766  PIN_OTYPE_PUSHPULL(PD08_UART3_TX) | \
767  PIN_OTYPE_PUSHPULL(PD09_UART3_RX) | \
768  PIN_OTYPE_OPENDRAIN(PD10_DRDY6_BMI055_ACC) | \
769  PIN_OTYPE_OPENDRAIN(PD11_UART3_CTS) | \
770  PIN_OTYPE_OPENDRAIN(PD12_UART3_RTS) | \
771  PIN_OTYPE_PUSHPULL(PD13_SERVO5) | \
772  PIN_OTYPE_PUSHPULL(PD14_SERVO6) | \
773  PIN_OTYPE_OPENDRAIN(PD15_DRDY7_EXTERNAL1))
774 
775 #define VAL_GPIOD_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PD00_UART4_RX) | \
776  PIN_OSPEED_SPEED_HIGH(PD01_UART4_TX) | \
777  PIN_OSPEED_SPEED_HIGH(PD02_SDIO_CMD) | \
778  PIN_OSPEED_SPEED_VERYLOW(PD03_UART2_CTS) | \
779  PIN_OSPEED_SPEED_VERYLOW(PD04_UART2_RTS) | \
780  PIN_OSPEED_SPEED_HIGH(PD05_UART2_TX) | \
781  PIN_OSPEED_SPEED_HIGH(PD06_UART2_RX) | \
782  PIN_OSPEED_SPEED_HIGH(PD07_SPI1_MOSI) | \
783  PIN_OSPEED_SPEED_HIGH(PD08_UART3_TX) | \
784  PIN_OSPEED_SPEED_HIGH(PD09_UART3_RX) | \
785  PIN_OSPEED_SPEED_VERYLOW(PD10_DRDY6_BMI055_ACC) | \
786  PIN_OSPEED_SPEED_VERYLOW(PD11_UART3_CTS) | \
787  PIN_OSPEED_SPEED_VERYLOW(PD12_UART3_RTS) | \
788  PIN_OSPEED_SPEED_HIGH(PD13_SERVO5) | \
789  PIN_OSPEED_SPEED_HIGH(PD14_SERVO6) | \
790  PIN_OSPEED_SPEED_VERYLOW(PD15_DRDY7_EXTERNAL1))
791 
792 #define VAL_GPIOD_PUPDR (PIN_PUPDR_FLOATING(PD00_UART4_RX) | \
793  PIN_PUPDR_FLOATING(PD01_UART4_TX) | \
794  PIN_PUPDR_PULLUP(PD02_SDIO_CMD) | \
795  PIN_PUPDR_PULLDOWN(PD03_UART2_CTS) | \
796  PIN_PUPDR_PULLDOWN(PD04_UART2_RTS) | \
797  PIN_PUPDR_FLOATING(PD05_UART2_TX) | \
798  PIN_PUPDR_FLOATING(PD06_UART2_RX) | \
799  PIN_PUPDR_FLOATING(PD07_SPI1_MOSI) | \
800  PIN_PUPDR_FLOATING(PD08_UART3_TX) | \
801  PIN_PUPDR_FLOATING(PD09_UART3_RX) | \
802  PIN_PUPDR_PULLDOWN(PD10_DRDY6_BMI055_ACC) | \
803  PIN_PUPDR_PULLDOWN(PD11_UART3_CTS) | \
804  PIN_PUPDR_PULLDOWN(PD12_UART3_RTS) | \
805  PIN_PUPDR_FLOATING(PD13_SERVO5) | \
806  PIN_PUPDR_FLOATING(PD14_SERVO6) | \
807  PIN_PUPDR_PULLDOWN(PD15_DRDY7_EXTERNAL1))
808 
809 #define VAL_GPIOD_ODR (PIN_ODR_LEVEL_HIGH(PD00_UART4_RX) | \
810  PIN_ODR_LEVEL_HIGH(PD01_UART4_TX) | \
811  PIN_ODR_LEVEL_HIGH(PD02_SDIO_CMD) | \
812  PIN_ODR_LEVEL_HIGH(PD03_UART2_CTS) | \
813  PIN_ODR_LEVEL_HIGH(PD04_UART2_RTS) | \
814  PIN_ODR_LEVEL_HIGH(PD05_UART2_TX) | \
815  PIN_ODR_LEVEL_HIGH(PD06_UART2_RX) | \
816  PIN_ODR_LEVEL_HIGH(PD07_SPI1_MOSI) | \
817  PIN_ODR_LEVEL_HIGH(PD08_UART3_TX) | \
818  PIN_ODR_LEVEL_HIGH(PD09_UART3_RX) | \
819  PIN_ODR_LEVEL_HIGH(PD10_DRDY6_BMI055_ACC) | \
820  PIN_ODR_LEVEL_HIGH(PD11_UART3_CTS) | \
821  PIN_ODR_LEVEL_HIGH(PD12_UART3_RTS) | \
822  PIN_ODR_LEVEL_LOW(PD13_SERVO5) | \
823  PIN_ODR_LEVEL_LOW(PD14_SERVO6) | \
824  PIN_ODR_LEVEL_HIGH(PD15_DRDY7_EXTERNAL1))
825 
826 #define VAL_GPIOD_AFRL (PIN_AFIO_AF(PD00_UART4_RX, 8) | \
827  PIN_AFIO_AF(PD01_UART4_TX, 8) | \
828  PIN_AFIO_AF(PD02_SDIO_CMD, 12) | \
829  PIN_AFIO_AF(PD03_UART2_CTS, 0) | \
830  PIN_AFIO_AF(PD04_UART2_RTS, 0) | \
831  PIN_AFIO_AF(PD05_UART2_TX, 7) | \
832  PIN_AFIO_AF(PD06_UART2_RX, 7) | \
833  PIN_AFIO_AF(PD07_SPI1_MOSI, 5))
834 
835 #define VAL_GPIOD_AFRH (PIN_AFIO_AF(PD08_UART3_TX, 7) | \
836  PIN_AFIO_AF(PD09_UART3_RX, 7) | \
837  PIN_AFIO_AF(PD10_DRDY6_BMI055_ACC, 0) | \
838  PIN_AFIO_AF(PD11_UART3_CTS, 0) | \
839  PIN_AFIO_AF(PD12_UART3_RTS, 0) | \
840  PIN_AFIO_AF(PD13_SERVO5, 2) | \
841  PIN_AFIO_AF(PD14_SERVO6, 2) | \
842  PIN_AFIO_AF(PD15_DRDY7_EXTERNAL1, 0))
843 
844 #define VAL_GPIOE_MODER (PIN_MODE_ALTERNATE(PE00_UART8_RX) | \
845  PIN_MODE_ALTERNATE(PE01_UART8_TX) | \
846  PIN_MODE_ALTERNATE(PE02_SPI4_SCK) | \
847  PIN_MODE_OUTPUT(PE03_V3V3_SENSORS_EN) | \
848  PIN_MODE_OUTPUT(PE04_V3V3_SPEKTRUM_EN) | \
849  PIN_MODE_INPUT(PE05_BUZZER) | \
850  PIN_MODE_ALTERNATE(PE06_SPI4_MOSI) | \
851  PIN_MODE_INPUT(PE07_DRDY8) | \
852  PIN_MODE_ALTERNATE(PE08_UART7_TX) | \
853  PIN_MODE_ALTERNATE(PE09_SERVO4) | \
854  PIN_MODE_INPUT(PE10_SAFETY_SWITCH_IN) | \
855  PIN_MODE_ALTERNATE(PE11_SERVO3) | \
856  PIN_MODE_OUTPUT(PE12_LED4) | \
857  PIN_MODE_ALTERNATE(PE13_SPI4_MISO) | \
858  PIN_MODE_ALTERNATE(PE14_SERVO1) | \
859  PIN_MODE_INPUT(PE15_V5V_PERIPH_OC))
860 
861 #define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(PE00_UART8_RX) | \
862  PIN_OTYPE_PUSHPULL(PE01_UART8_TX) | \
863  PIN_OTYPE_PUSHPULL(PE02_SPI4_SCK) | \
864  PIN_OTYPE_PUSHPULL(PE03_V3V3_SENSORS_EN) | \
865  PIN_OTYPE_PUSHPULL(PE04_V3V3_SPEKTRUM_EN) | \
866  PIN_OTYPE_OPENDRAIN(PE05_BUZZER) | \
867  PIN_OTYPE_PUSHPULL(PE06_SPI4_MOSI) | \
868  PIN_OTYPE_OPENDRAIN(PE07_DRDY8) | \
869  PIN_OTYPE_PUSHPULL(PE08_UART7_TX) | \
870  PIN_OTYPE_PUSHPULL(PE09_SERVO4) | \
871  PIN_OTYPE_OPENDRAIN(PE10_SAFETY_SWITCH_IN) | \
872  PIN_OTYPE_PUSHPULL(PE11_SERVO3) | \
873  PIN_OTYPE_PUSHPULL(PE12_LED4) | \
874  PIN_OTYPE_PUSHPULL(PE13_SPI4_MISO) | \
875  PIN_OTYPE_PUSHPULL(PE14_SERVO1) | \
876  PIN_OTYPE_OPENDRAIN(PE15_V5V_PERIPH_OC))
877 
878 #define VAL_GPIOE_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PE00_UART8_RX) | \
879  PIN_OSPEED_SPEED_HIGH(PE01_UART8_TX) | \
880  PIN_OSPEED_SPEED_HIGH(PE02_SPI4_SCK) | \
881  PIN_OSPEED_SPEED_VERYLOW(PE03_V3V3_SENSORS_EN) | \
882  PIN_OSPEED_SPEED_VERYLOW(PE04_V3V3_SPEKTRUM_EN) | \
883  PIN_OSPEED_SPEED_VERYLOW(PE05_BUZZER) | \
884  PIN_OSPEED_SPEED_HIGH(PE06_SPI4_MOSI) | \
885  PIN_OSPEED_SPEED_VERYLOW(PE07_DRDY8) | \
886  PIN_OSPEED_SPEED_HIGH(PE08_UART7_TX) | \
887  PIN_OSPEED_SPEED_HIGH(PE09_SERVO4) | \
888  PIN_OSPEED_SPEED_VERYLOW(PE10_SAFETY_SWITCH_IN) | \
889  PIN_OSPEED_SPEED_HIGH(PE11_SERVO3) | \
890  PIN_OSPEED_SPEED_VERYLOW(PE12_LED4) | \
891  PIN_OSPEED_SPEED_HIGH(PE13_SPI4_MISO) | \
892  PIN_OSPEED_SPEED_HIGH(PE14_SERVO1) | \
893  PIN_OSPEED_SPEED_VERYLOW(PE15_V5V_PERIPH_OC))
894 
895 #define VAL_GPIOE_PUPDR (PIN_PUPDR_FLOATING(PE00_UART8_RX) | \
896  PIN_PUPDR_FLOATING(PE01_UART8_TX) | \
897  PIN_PUPDR_FLOATING(PE02_SPI4_SCK) | \
898  PIN_PUPDR_FLOATING(PE03_V3V3_SENSORS_EN) | \
899  PIN_PUPDR_FLOATING(PE04_V3V3_SPEKTRUM_EN) | \
900  PIN_PUPDR_PULLDOWN(PE05_BUZZER) | \
901  PIN_PUPDR_FLOATING(PE06_SPI4_MOSI) | \
902  PIN_PUPDR_PULLDOWN(PE07_DRDY8) | \
903  PIN_PUPDR_FLOATING(PE08_UART7_TX) | \
904  PIN_PUPDR_FLOATING(PE09_SERVO4) | \
905  PIN_PUPDR_PULLDOWN(PE10_SAFETY_SWITCH_IN) | \
906  PIN_PUPDR_FLOATING(PE11_SERVO3) | \
907  PIN_PUPDR_FLOATING(PE12_LED4) | \
908  PIN_PUPDR_FLOATING(PE13_SPI4_MISO) | \
909  PIN_PUPDR_FLOATING(PE14_SERVO1) | \
910  PIN_PUPDR_PULLDOWN(PE15_V5V_PERIPH_OC))
911 
912 #define VAL_GPIOE_ODR (PIN_ODR_LEVEL_HIGH(PE00_UART8_RX) | \
913  PIN_ODR_LEVEL_HIGH(PE01_UART8_TX) | \
914  PIN_ODR_LEVEL_HIGH(PE02_SPI4_SCK) | \
915  PIN_ODR_LEVEL_HIGH(PE03_V3V3_SENSORS_EN) | \
916  PIN_ODR_LEVEL_HIGH(PE04_V3V3_SPEKTRUM_EN) | \
917  PIN_ODR_LEVEL_HIGH(PE05_BUZZER) | \
918  PIN_ODR_LEVEL_HIGH(PE06_SPI4_MOSI) | \
919  PIN_ODR_LEVEL_HIGH(PE07_DRDY8) | \
920  PIN_ODR_LEVEL_HIGH(PE08_UART7_TX) | \
921  PIN_ODR_LEVEL_LOW(PE09_SERVO4) | \
922  PIN_ODR_LEVEL_LOW(PE10_SAFETY_SWITCH_IN) | \
923  PIN_ODR_LEVEL_LOW(PE11_SERVO3) | \
924  PIN_ODR_LEVEL_LOW(PE12_LED4) | \
925  PIN_ODR_LEVEL_HIGH(PE13_SPI4_MISO) | \
926  PIN_ODR_LEVEL_LOW(PE14_SERVO1) | \
927  PIN_ODR_LEVEL_HIGH(PE15_V5V_PERIPH_OC))
928 
929 #define VAL_GPIOE_AFRL (PIN_AFIO_AF(PE00_UART8_RX, 8) | \
930  PIN_AFIO_AF(PE01_UART8_TX, 8) | \
931  PIN_AFIO_AF(PE02_SPI4_SCK, 5) | \
932  PIN_AFIO_AF(PE03_V3V3_SENSORS_EN, 0) | \
933  PIN_AFIO_AF(PE04_V3V3_SPEKTRUM_EN, 0) | \
934  PIN_AFIO_AF(PE05_BUZZER, 0) | \
935  PIN_AFIO_AF(PE06_SPI4_MOSI, 5) | \
936  PIN_AFIO_AF(PE07_DRDY8, 0))
937 
938 #define VAL_GPIOE_AFRH (PIN_AFIO_AF(PE08_UART7_TX, 8) | \
939  PIN_AFIO_AF(PE09_SERVO4, 1) | \
940  PIN_AFIO_AF(PE10_SAFETY_SWITCH_IN, 0) | \
941  PIN_AFIO_AF(PE11_SERVO3, 1) | \
942  PIN_AFIO_AF(PE12_LED4, 0) | \
943  PIN_AFIO_AF(PE13_SPI4_MISO, 5) | \
944  PIN_AFIO_AF(PE14_SERVO1, 1) | \
945  PIN_AFIO_AF(PE15_V5V_PERIPH_OC, 0))
946 
947 #define VAL_GPIOF_MODER (PIN_MODE_ALTERNATE(PF00_I2C2_SDA) | \
948  PIN_MODE_ALTERNATE(PF01_I2C2_SCL) | \
949  PIN_MODE_OUTPUT(PF02_SPI_SLAVE0) | \
950  PIN_MODE_OUTPUT(PF03_SPI_SLAVE1) | \
951  PIN_MODE_OUTPUT(PF04_SPI_SLAVE2) | \
952  PIN_MODE_OUTPUT(PF05_SPI_SLAVE3) | \
953  PIN_MODE_ALTERNATE(PF06_UART7_RX) | \
954  PIN_MODE_ALTERNATE(PF07_SPI5_SCK) | \
955  PIN_MODE_ALTERNATE(PF08_SPI5_MISO) | \
956  PIN_MODE_ALTERNATE(PF09_SPI5_MOSI) | \
957  PIN_MODE_OUTPUT(PF10_SPI_SLAVE4) | \
958  PIN_MODE_OUTPUT(PF11_SPI_SLAVE5) | \
959  PIN_MODE_OUTPUT(PF12_V5V_HIPOWER_EN) | \
960  PIN_MODE_INPUT(PF13_V5V_HIPOWER_OC) | \
961  PIN_MODE_ALTERNATE(PF14_I2C4_SCL) | \
962  PIN_MODE_ALTERNATE(PF15_I2C4_SDA))
963 
964 #define VAL_GPIOF_OTYPER (PIN_OTYPE_OPENDRAIN(PF00_I2C2_SDA) | \
965  PIN_OTYPE_OPENDRAIN(PF01_I2C2_SCL) | \
966  PIN_OTYPE_PUSHPULL(PF02_SPI_SLAVE0) | \
967  PIN_OTYPE_PUSHPULL(PF03_SPI_SLAVE1) | \
968  PIN_OTYPE_PUSHPULL(PF04_SPI_SLAVE2) | \
969  PIN_OTYPE_PUSHPULL(PF05_SPI_SLAVE3) | \
970  PIN_OTYPE_PUSHPULL(PF06_UART7_RX) | \
971  PIN_OTYPE_PUSHPULL(PF07_SPI5_SCK) | \
972  PIN_OTYPE_PUSHPULL(PF08_SPI5_MISO) | \
973  PIN_OTYPE_PUSHPULL(PF09_SPI5_MOSI) | \
974  PIN_OTYPE_PUSHPULL(PF10_SPI_SLAVE4) | \
975  PIN_OTYPE_PUSHPULL(PF11_SPI_SLAVE5) | \
976  PIN_OTYPE_PUSHPULL(PF12_V5V_HIPOWER_EN) | \
977  PIN_OTYPE_OPENDRAIN(PF13_V5V_HIPOWER_OC) | \
978  PIN_OTYPE_OPENDRAIN(PF14_I2C4_SCL) | \
979  PIN_OTYPE_OPENDRAIN(PF15_I2C4_SDA))
980 
981 #define VAL_GPIOF_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PF00_I2C2_SDA) | \
982  PIN_OSPEED_SPEED_HIGH(PF01_I2C2_SCL) | \
983  PIN_OSPEED_SPEED_HIGH(PF02_SPI_SLAVE0) | \
984  PIN_OSPEED_SPEED_HIGH(PF03_SPI_SLAVE1) | \
985  PIN_OSPEED_SPEED_HIGH(PF04_SPI_SLAVE2) | \
986  PIN_OSPEED_SPEED_HIGH(PF05_SPI_SLAVE3) | \
987  PIN_OSPEED_SPEED_HIGH(PF06_UART7_RX) | \
988  PIN_OSPEED_SPEED_HIGH(PF07_SPI5_SCK) | \
989  PIN_OSPEED_SPEED_HIGH(PF08_SPI5_MISO) | \
990  PIN_OSPEED_SPEED_HIGH(PF09_SPI5_MOSI) | \
991  PIN_OSPEED_SPEED_HIGH(PF10_SPI_SLAVE4) | \
992  PIN_OSPEED_SPEED_HIGH(PF11_SPI_SLAVE5) | \
993  PIN_OSPEED_SPEED_VERYLOW(PF12_V5V_HIPOWER_EN) | \
994  PIN_OSPEED_SPEED_VERYLOW(PF13_V5V_HIPOWER_OC) | \
995  PIN_OSPEED_SPEED_HIGH(PF14_I2C4_SCL) | \
996  PIN_OSPEED_SPEED_HIGH(PF15_I2C4_SDA))
997 
998 #define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLUP(PF00_I2C2_SDA) | \
999  PIN_PUPDR_PULLUP(PF01_I2C2_SCL) | \
1000  PIN_PUPDR_FLOATING(PF02_SPI_SLAVE0) | \
1001  PIN_PUPDR_FLOATING(PF03_SPI_SLAVE1) | \
1002  PIN_PUPDR_FLOATING(PF04_SPI_SLAVE2) | \
1003  PIN_PUPDR_FLOATING(PF05_SPI_SLAVE3) | \
1004  PIN_PUPDR_FLOATING(PF06_UART7_RX) | \
1005  PIN_PUPDR_FLOATING(PF07_SPI5_SCK) | \
1006  PIN_PUPDR_FLOATING(PF08_SPI5_MISO) | \
1007  PIN_PUPDR_FLOATING(PF09_SPI5_MOSI) | \
1008  PIN_PUPDR_FLOATING(PF10_SPI_SLAVE4) | \
1009  PIN_PUPDR_FLOATING(PF11_SPI_SLAVE5) | \
1010  PIN_PUPDR_FLOATING(PF12_V5V_HIPOWER_EN) | \
1011  PIN_PUPDR_PULLDOWN(PF13_V5V_HIPOWER_OC) | \
1012  PIN_PUPDR_PULLUP(PF14_I2C4_SCL) | \
1013  PIN_PUPDR_PULLUP(PF15_I2C4_SDA))
1014 
1015 #define VAL_GPIOF_ODR (PIN_ODR_LEVEL_HIGH(PF00_I2C2_SDA) | \
1016  PIN_ODR_LEVEL_HIGH(PF01_I2C2_SCL) | \
1017  PIN_ODR_LEVEL_HIGH(PF02_SPI_SLAVE0) | \
1018  PIN_ODR_LEVEL_HIGH(PF03_SPI_SLAVE1) | \
1019  PIN_ODR_LEVEL_HIGH(PF04_SPI_SLAVE2) | \
1020  PIN_ODR_LEVEL_HIGH(PF05_SPI_SLAVE3) | \
1021  PIN_ODR_LEVEL_HIGH(PF06_UART7_RX) | \
1022  PIN_ODR_LEVEL_HIGH(PF07_SPI5_SCK) | \
1023  PIN_ODR_LEVEL_HIGH(PF08_SPI5_MISO) | \
1024  PIN_ODR_LEVEL_HIGH(PF09_SPI5_MOSI) | \
1025  PIN_ODR_LEVEL_HIGH(PF10_SPI_SLAVE4) | \
1026  PIN_ODR_LEVEL_HIGH(PF11_SPI_SLAVE5) | \
1027  PIN_ODR_LEVEL_LOW(PF12_V5V_HIPOWER_EN) | \
1028  PIN_ODR_LEVEL_HIGH(PF13_V5V_HIPOWER_OC) | \
1029  PIN_ODR_LEVEL_HIGH(PF14_I2C4_SCL) | \
1030  PIN_ODR_LEVEL_HIGH(PF15_I2C4_SDA))
1031 
1032 #define VAL_GPIOF_AFRL (PIN_AFIO_AF(PF00_I2C2_SDA, 4) | \
1033  PIN_AFIO_AF(PF01_I2C2_SCL, 4) | \
1034  PIN_AFIO_AF(PF02_SPI_SLAVE0, 0) | \
1035  PIN_AFIO_AF(PF03_SPI_SLAVE1, 0) | \
1036  PIN_AFIO_AF(PF04_SPI_SLAVE2, 0) | \
1037  PIN_AFIO_AF(PF05_SPI_SLAVE3, 0) | \
1038  PIN_AFIO_AF(PF06_UART7_RX, 8) | \
1039  PIN_AFIO_AF(PF07_SPI5_SCK, 5))
1040 
1041 #define VAL_GPIOF_AFRH (PIN_AFIO_AF(PF08_SPI5_MISO, 5) | \
1042  PIN_AFIO_AF(PF09_SPI5_MOSI, 5) | \
1043  PIN_AFIO_AF(PF10_SPI_SLAVE4, 0) | \
1044  PIN_AFIO_AF(PF11_SPI_SLAVE5, 0) | \
1045  PIN_AFIO_AF(PF12_V5V_HIPOWER_EN, 0) | \
1046  PIN_AFIO_AF(PF13_V5V_HIPOWER_OC, 0) | \
1047  PIN_AFIO_AF(PF14_I2C4_SCL, 4) | \
1048  PIN_AFIO_AF(PF15_I2C4_SDA, 4))
1049 
1050 #define VAL_GPIOG_MODER (PIN_MODE_OUTPUT(PG00_HW_VER_DRIVE) | \
1051  PIN_MODE_INPUT(PG01_POWER_IN_A) | \
1052  PIN_MODE_INPUT(PG02_POWER_IN_B) | \
1053  PIN_MODE_INPUT(PG03_POWER_IN_C) | \
1054  PIN_MODE_OUTPUT(PG04_V5V_PERIPH_EN) | \
1055  PIN_MODE_OUTPUT(PG05_V5V_RC_EN) | \
1056  PIN_MODE_OUTPUT(PG06_V5V_WIFI_EN) | \
1057  PIN_MODE_OUTPUT(PG07_V3V3_SD_CARD_EN) | \
1058  PIN_MODE_INPUT(PG08_USART6_RTS) | \
1059  PIN_MODE_ALTERNATE(PG09_USART6_RX) | \
1060  PIN_MODE_OUTPUT(PG10_SPI_SLAVE6) | \
1061  PIN_MODE_ALTERNATE(PG11_SPI1_SCK) | \
1062  PIN_MODE_ALTERNATE(PG12_SPI6_MISO) | \
1063  PIN_MODE_ALTERNATE(PG13_SPI6_SCK) | \
1064  PIN_MODE_ALTERNATE(PG14_USART6_TX) | \
1065  PIN_MODE_INPUT(PG15_USART6_CTS))
1066 
1067 #define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(PG00_HW_VER_DRIVE) | \
1068  PIN_OTYPE_OPENDRAIN(PG01_POWER_IN_A) | \
1069  PIN_OTYPE_OPENDRAIN(PG02_POWER_IN_B) | \
1070  PIN_OTYPE_OPENDRAIN(PG03_POWER_IN_C) | \
1071  PIN_OTYPE_PUSHPULL(PG04_V5V_PERIPH_EN) | \
1072  PIN_OTYPE_PUSHPULL(PG05_V5V_RC_EN) | \
1073  PIN_OTYPE_PUSHPULL(PG06_V5V_WIFI_EN) | \
1074  PIN_OTYPE_PUSHPULL(PG07_V3V3_SD_CARD_EN) | \
1075  PIN_OTYPE_OPENDRAIN(PG08_USART6_RTS) | \
1076  PIN_OTYPE_PUSHPULL(PG09_USART6_RX) | \
1077  PIN_OTYPE_PUSHPULL(PG10_SPI_SLAVE6) | \
1078  PIN_OTYPE_PUSHPULL(PG11_SPI1_SCK) | \
1079  PIN_OTYPE_PUSHPULL(PG12_SPI6_MISO) | \
1080  PIN_OTYPE_PUSHPULL(PG13_SPI6_SCK) | \
1081  PIN_OTYPE_PUSHPULL(PG14_USART6_TX) | \
1082  PIN_OTYPE_OPENDRAIN(PG15_USART6_CTS))
1083 
1084 #define VAL_GPIOG_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PG00_HW_VER_DRIVE) | \
1085  PIN_OSPEED_SPEED_VERYLOW(PG01_POWER_IN_A) | \
1086  PIN_OSPEED_SPEED_VERYLOW(PG02_POWER_IN_B) | \
1087  PIN_OSPEED_SPEED_VERYLOW(PG03_POWER_IN_C) | \
1088  PIN_OSPEED_SPEED_VERYLOW(PG04_V5V_PERIPH_EN) | \
1089  PIN_OSPEED_SPEED_VERYLOW(PG05_V5V_RC_EN) | \
1090  PIN_OSPEED_SPEED_VERYLOW(PG06_V5V_WIFI_EN) | \
1091  PIN_OSPEED_SPEED_VERYLOW(PG07_V3V3_SD_CARD_EN) | \
1092  PIN_OSPEED_SPEED_VERYLOW(PG08_USART6_RTS) | \
1093  PIN_OSPEED_SPEED_HIGH(PG09_USART6_RX) | \
1094  PIN_OSPEED_SPEED_HIGH(PG10_SPI_SLAVE6) | \
1095  PIN_OSPEED_SPEED_HIGH(PG11_SPI1_SCK) | \
1096  PIN_OSPEED_SPEED_HIGH(PG12_SPI6_MISO) | \
1097  PIN_OSPEED_SPEED_HIGH(PG13_SPI6_SCK) | \
1098  PIN_OSPEED_SPEED_HIGH(PG14_USART6_TX) | \
1099  PIN_OSPEED_SPEED_VERYLOW(PG15_USART6_CTS))
1100 
1101 #define VAL_GPIOG_PUPDR (PIN_PUPDR_FLOATING(PG00_HW_VER_DRIVE) | \
1102  PIN_PUPDR_PULLDOWN(PG01_POWER_IN_A) | \
1103  PIN_PUPDR_PULLDOWN(PG02_POWER_IN_B) | \
1104  PIN_PUPDR_PULLDOWN(PG03_POWER_IN_C) | \
1105  PIN_PUPDR_FLOATING(PG04_V5V_PERIPH_EN) | \
1106  PIN_PUPDR_FLOATING(PG05_V5V_RC_EN) | \
1107  PIN_PUPDR_FLOATING(PG06_V5V_WIFI_EN) | \
1108  PIN_PUPDR_FLOATING(PG07_V3V3_SD_CARD_EN) | \
1109  PIN_PUPDR_PULLDOWN(PG08_USART6_RTS) | \
1110  PIN_PUPDR_FLOATING(PG09_USART6_RX) | \
1111  PIN_PUPDR_FLOATING(PG10_SPI_SLAVE6) | \
1112  PIN_PUPDR_FLOATING(PG11_SPI1_SCK) | \
1113  PIN_PUPDR_FLOATING(PG12_SPI6_MISO) | \
1114  PIN_PUPDR_FLOATING(PG13_SPI6_SCK) | \
1115  PIN_PUPDR_FLOATING(PG14_USART6_TX) | \
1116  PIN_PUPDR_PULLDOWN(PG15_USART6_CTS))
1117 
1118 #define VAL_GPIOG_ODR (PIN_ODR_LEVEL_LOW(PG00_HW_VER_DRIVE) | \
1119  PIN_ODR_LEVEL_HIGH(PG01_POWER_IN_A) | \
1120  PIN_ODR_LEVEL_HIGH(PG02_POWER_IN_B) | \
1121  PIN_ODR_LEVEL_HIGH(PG03_POWER_IN_C) | \
1122  PIN_ODR_LEVEL_LOW(PG04_V5V_PERIPH_EN) | \
1123  PIN_ODR_LEVEL_HIGH(PG05_V5V_RC_EN) | \
1124  PIN_ODR_LEVEL_HIGH(PG06_V5V_WIFI_EN) | \
1125  PIN_ODR_LEVEL_HIGH(PG07_V3V3_SD_CARD_EN) | \
1126  PIN_ODR_LEVEL_HIGH(PG08_USART6_RTS) | \
1127  PIN_ODR_LEVEL_HIGH(PG09_USART6_RX) | \
1128  PIN_ODR_LEVEL_HIGH(PG10_SPI_SLAVE6) | \
1129  PIN_ODR_LEVEL_HIGH(PG11_SPI1_SCK) | \
1130  PIN_ODR_LEVEL_HIGH(PG12_SPI6_MISO) | \
1131  PIN_ODR_LEVEL_HIGH(PG13_SPI6_SCK) | \
1132  PIN_ODR_LEVEL_HIGH(PG14_USART6_TX) | \
1133  PIN_ODR_LEVEL_HIGH(PG15_USART6_CTS))
1134 
1135 #define VAL_GPIOG_AFRL (PIN_AFIO_AF(PG00_HW_VER_DRIVE, 0) | \
1136  PIN_AFIO_AF(PG01_POWER_IN_A, 0) | \
1137  PIN_AFIO_AF(PG02_POWER_IN_B, 0) | \
1138  PIN_AFIO_AF(PG03_POWER_IN_C, 0) | \
1139  PIN_AFIO_AF(PG04_V5V_PERIPH_EN, 0) | \
1140  PIN_AFIO_AF(PG05_V5V_RC_EN, 0) | \
1141  PIN_AFIO_AF(PG06_V5V_WIFI_EN, 0) | \
1142  PIN_AFIO_AF(PG07_V3V3_SD_CARD_EN, 0))
1143 
1144 #define VAL_GPIOG_AFRH (PIN_AFIO_AF(PG08_USART6_RTS, 0) | \
1145  PIN_AFIO_AF(PG09_USART6_RX, 8) | \
1146  PIN_AFIO_AF(PG10_SPI_SLAVE6, 0) | \
1147  PIN_AFIO_AF(PG11_SPI1_SCK, 5) | \
1148  PIN_AFIO_AF(PG12_SPI6_MISO, 5) | \
1149  PIN_AFIO_AF(PG13_SPI6_SCK, 5) | \
1150  PIN_AFIO_AF(PG14_USART6_TX, 8) | \
1151  PIN_AFIO_AF(PG15_USART6_CTS, 0))
1152 
1153 #define VAL_GPIOH_MODER (PIN_MODE_ALTERNATE(PH00_OSC_IN) | \
1154  PIN_MODE_ALTERNATE(PH01_OSC_OUT) | \
1155  PIN_MODE_OUTPUT(PH02_CAN1_SILENT_S0) | \
1156  PIN_MODE_OUTPUT(PH03_CAN2_SILENT_S1) | \
1157  PIN_MODE_OUTPUT(PH04_CAN3_SILENT_S2) | \
1158  PIN_MODE_OUTPUT(PH05_SPI_SLAVE7) | \
1159  PIN_MODE_ALTERNATE(PH06_SERVO7) | \
1160  PIN_MODE_ALTERNATE(PH07_I2C3_SCL) | \
1161  PIN_MODE_ALTERNATE(PH08_I2C3_SDA) | \
1162  PIN_MODE_ALTERNATE(PH09_SERVO8) | \
1163  PIN_MODE_OUTPUT(PH10_LED5) | \
1164  PIN_MODE_OUTPUT(PH11_LED6) | \
1165  PIN_MODE_OUTPUT(PH12_LED7) | \
1166  PIN_MODE_ALTERNATE(PH13_CAN1_TX) | \
1167  PIN_MODE_OUTPUT(PH14_HW_REV_DRIVE) | \
1168  PIN_MODE_INPUT(PH15_SPI5_SYNC))
1169 
1170 #define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(PH00_OSC_IN) | \
1171  PIN_OTYPE_PUSHPULL(PH01_OSC_OUT) | \
1172  PIN_OTYPE_PUSHPULL(PH02_CAN1_SILENT_S0) | \
1173  PIN_OTYPE_PUSHPULL(PH03_CAN2_SILENT_S1) | \
1174  PIN_OTYPE_PUSHPULL(PH04_CAN3_SILENT_S2) | \
1175  PIN_OTYPE_PUSHPULL(PH05_SPI_SLAVE7) | \
1176  PIN_OTYPE_PUSHPULL(PH06_SERVO7) | \
1177  PIN_OTYPE_OPENDRAIN(PH07_I2C3_SCL) | \
1178  PIN_OTYPE_OPENDRAIN(PH08_I2C3_SDA) | \
1179  PIN_OTYPE_PUSHPULL(PH09_SERVO8) | \
1180  PIN_OTYPE_PUSHPULL(PH10_LED5) | \
1181  PIN_OTYPE_PUSHPULL(PH11_LED6) | \
1182  PIN_OTYPE_PUSHPULL(PH12_LED7) | \
1183  PIN_OTYPE_PUSHPULL(PH13_CAN1_TX) | \
1184  PIN_OTYPE_PUSHPULL(PH14_HW_REV_DRIVE) | \
1185  PIN_OTYPE_OPENDRAIN(PH15_SPI5_SYNC))
1186 
1187 #define VAL_GPIOH_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PH00_OSC_IN) | \
1188  PIN_OSPEED_SPEED_HIGH(PH01_OSC_OUT) | \
1189  PIN_OSPEED_SPEED_VERYLOW(PH02_CAN1_SILENT_S0) | \
1190  PIN_OSPEED_SPEED_VERYLOW(PH03_CAN2_SILENT_S1) | \
1191  PIN_OSPEED_SPEED_VERYLOW(PH04_CAN3_SILENT_S2) | \
1192  PIN_OSPEED_SPEED_HIGH(PH05_SPI_SLAVE7) | \
1193  PIN_OSPEED_SPEED_HIGH(PH06_SERVO7) | \
1194  PIN_OSPEED_SPEED_HIGH(PH07_I2C3_SCL) | \
1195  PIN_OSPEED_SPEED_HIGH(PH08_I2C3_SDA) | \
1196  PIN_OSPEED_SPEED_HIGH(PH09_SERVO8) | \
1197  PIN_OSPEED_SPEED_VERYLOW(PH10_LED5) | \
1198  PIN_OSPEED_SPEED_VERYLOW(PH11_LED6) | \
1199  PIN_OSPEED_SPEED_VERYLOW(PH12_LED7) | \
1200  PIN_OSPEED_SPEED_HIGH(PH13_CAN1_TX) | \
1201  PIN_OSPEED_SPEED_VERYLOW(PH14_HW_REV_DRIVE) | \
1202  PIN_OSPEED_SPEED_VERYLOW(PH15_SPI5_SYNC))
1203 
1204 #define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(PH00_OSC_IN) | \
1205  PIN_PUPDR_FLOATING(PH01_OSC_OUT) | \
1206  PIN_PUPDR_FLOATING(PH02_CAN1_SILENT_S0) | \
1207  PIN_PUPDR_FLOATING(PH03_CAN2_SILENT_S1) | \
1208  PIN_PUPDR_FLOATING(PH04_CAN3_SILENT_S2) | \
1209  PIN_PUPDR_FLOATING(PH05_SPI_SLAVE7) | \
1210  PIN_PUPDR_FLOATING(PH06_SERVO7) | \
1211  PIN_PUPDR_PULLUP(PH07_I2C3_SCL) | \
1212  PIN_PUPDR_PULLUP(PH08_I2C3_SDA) | \
1213  PIN_PUPDR_FLOATING(PH09_SERVO8) | \
1214  PIN_PUPDR_FLOATING(PH10_LED5) | \
1215  PIN_PUPDR_FLOATING(PH11_LED6) | \
1216  PIN_PUPDR_FLOATING(PH12_LED7) | \
1217  PIN_PUPDR_FLOATING(PH13_CAN1_TX) | \
1218  PIN_PUPDR_FLOATING(PH14_HW_REV_DRIVE) | \
1219  PIN_PUPDR_PULLDOWN(PH15_SPI5_SYNC))
1220 
1221 #define VAL_GPIOH_ODR (PIN_ODR_LEVEL_HIGH(PH00_OSC_IN) | \
1222  PIN_ODR_LEVEL_HIGH(PH01_OSC_OUT) | \
1223  PIN_ODR_LEVEL_LOW(PH02_CAN1_SILENT_S0) | \
1224  PIN_ODR_LEVEL_LOW(PH03_CAN2_SILENT_S1) | \
1225  PIN_ODR_LEVEL_LOW(PH04_CAN3_SILENT_S2) | \
1226  PIN_ODR_LEVEL_HIGH(PH05_SPI_SLAVE7) | \
1227  PIN_ODR_LEVEL_LOW(PH06_SERVO7) | \
1228  PIN_ODR_LEVEL_HIGH(PH07_I2C3_SCL) | \
1229  PIN_ODR_LEVEL_HIGH(PH08_I2C3_SDA) | \
1230  PIN_ODR_LEVEL_LOW(PH09_SERVO8) | \
1231  PIN_ODR_LEVEL_LOW(PH10_LED5) | \
1232  PIN_ODR_LEVEL_LOW(PH11_LED6) | \
1233  PIN_ODR_LEVEL_LOW(PH12_LED7) | \
1234  PIN_ODR_LEVEL_HIGH(PH13_CAN1_TX) | \
1235  PIN_ODR_LEVEL_LOW(PH14_HW_REV_DRIVE) | \
1236  PIN_ODR_LEVEL_HIGH(PH15_SPI5_SYNC))
1237 
1238 #define VAL_GPIOH_AFRL (PIN_AFIO_AF(PH00_OSC_IN, 0) | \
1239  PIN_AFIO_AF(PH01_OSC_OUT, 0) | \
1240  PIN_AFIO_AF(PH02_CAN1_SILENT_S0, 0) | \
1241  PIN_AFIO_AF(PH03_CAN2_SILENT_S1, 0) | \
1242  PIN_AFIO_AF(PH04_CAN3_SILENT_S2, 0) | \
1243  PIN_AFIO_AF(PH05_SPI_SLAVE7, 0) | \
1244  PIN_AFIO_AF(PH06_SERVO7, 9) | \
1245  PIN_AFIO_AF(PH07_I2C3_SCL, 4))
1246 
1247 #define VAL_GPIOH_AFRH (PIN_AFIO_AF(PH08_I2C3_SDA, 4) | \
1248  PIN_AFIO_AF(PH09_SERVO8, 9) | \
1249  PIN_AFIO_AF(PH10_LED5, 0) | \
1250  PIN_AFIO_AF(PH11_LED6, 0) | \
1251  PIN_AFIO_AF(PH12_LED7, 0) | \
1252  PIN_AFIO_AF(PH13_CAN1_TX, 9) | \
1253  PIN_AFIO_AF(PH14_HW_REV_DRIVE, 0) | \
1254  PIN_AFIO_AF(PH15_SPI5_SYNC, 0))
1255 
1256 #define VAL_GPIOI_MODER (PIN_MODE_OUTPUT(PI00_ARMED) | \
1257  PIN_MODE_ALTERNATE(PI01_SPI2_SCK) | \
1258  PIN_MODE_ALTERNATE(PI02_SPI2_MISO) | \
1259  PIN_MODE_ALTERNATE(PI03_SPI2_MOSI) | \
1260  PIN_MODE_OUTPUT(PI04_SPI_SLAVE8) | \
1261  PIN_MODE_ALTERNATE(PI05_PWM_INPUT1) | \
1262  PIN_MODE_OUTPUT(PI06_SPI_SLAVE9) | \
1263  PIN_MODE_OUTPUT(PI07_SPI_SLAVE10) | \
1264  PIN_MODE_OUTPUT(PI08_SPI_SLAVE11) | \
1265  PIN_MODE_ALTERNATE(PI09_CAN1_RX) | \
1266  PIN_MODE_OUTPUT(PI10_SPI_SLAVE12) | \
1267  PIN_MODE_OUTPUT(PI11_SPI_SLAVE13) | \
1268  PIN_MODE_INPUT(PI12) | \
1269  PIN_MODE_INPUT(PI13) | \
1270  PIN_MODE_INPUT(PI14) | \
1271  PIN_MODE_INPUT(PI15))
1272 
1273 #define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(PI00_ARMED) | \
1274  PIN_OTYPE_PUSHPULL(PI01_SPI2_SCK) | \
1275  PIN_OTYPE_PUSHPULL(PI02_SPI2_MISO) | \
1276  PIN_OTYPE_PUSHPULL(PI03_SPI2_MOSI) | \
1277  PIN_OTYPE_PUSHPULL(PI04_SPI_SLAVE8) | \
1278  PIN_OTYPE_PUSHPULL(PI05_PWM_INPUT1) | \
1279  PIN_OTYPE_PUSHPULL(PI06_SPI_SLAVE9) | \
1280  PIN_OTYPE_PUSHPULL(PI07_SPI_SLAVE10) | \
1281  PIN_OTYPE_PUSHPULL(PI08_SPI_SLAVE11) | \
1282  PIN_OTYPE_PUSHPULL(PI09_CAN1_RX) | \
1283  PIN_OTYPE_PUSHPULL(PI10_SPI_SLAVE12) | \
1284  PIN_OTYPE_PUSHPULL(PI11_SPI_SLAVE13) | \
1285  PIN_OTYPE_PUSHPULL(PI12) | \
1286  PIN_OTYPE_PUSHPULL(PI13) | \
1287  PIN_OTYPE_PUSHPULL(PI14) | \
1288  PIN_OTYPE_PUSHPULL(PI15))
1289 
1290 #define VAL_GPIOI_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PI00_ARMED) | \
1291  PIN_OSPEED_SPEED_HIGH(PI01_SPI2_SCK) | \
1292  PIN_OSPEED_SPEED_HIGH(PI02_SPI2_MISO) | \
1293  PIN_OSPEED_SPEED_HIGH(PI03_SPI2_MOSI) | \
1294  PIN_OSPEED_SPEED_HIGH(PI04_SPI_SLAVE8) | \
1295  PIN_OSPEED_SPEED_HIGH(PI05_PWM_INPUT1) | \
1296  PIN_OSPEED_SPEED_HIGH(PI06_SPI_SLAVE9) | \
1297  PIN_OSPEED_SPEED_HIGH(PI07_SPI_SLAVE10) | \
1298  PIN_OSPEED_SPEED_HIGH(PI08_SPI_SLAVE11) | \
1299  PIN_OSPEED_SPEED_HIGH(PI09_CAN1_RX) | \
1300  PIN_OSPEED_SPEED_HIGH(PI10_SPI_SLAVE12) | \
1301  PIN_OSPEED_SPEED_HIGH(PI11_SPI_SLAVE13) | \
1302  PIN_OSPEED_SPEED_VERYLOW(PI12) | \
1303  PIN_OSPEED_SPEED_VERYLOW(PI13) | \
1304  PIN_OSPEED_SPEED_VERYLOW(PI14) | \
1305  PIN_OSPEED_SPEED_VERYLOW(PI15))
1306 
1307 #define VAL_GPIOI_PUPDR (PIN_PUPDR_FLOATING(PI00_ARMED) | \
1308  PIN_PUPDR_FLOATING(PI01_SPI2_SCK) | \
1309  PIN_PUPDR_FLOATING(PI02_SPI2_MISO) | \
1310  PIN_PUPDR_FLOATING(PI03_SPI2_MOSI) | \
1311  PIN_PUPDR_FLOATING(PI04_SPI_SLAVE8) | \
1312  PIN_PUPDR_FLOATING(PI05_PWM_INPUT1) | \
1313  PIN_PUPDR_FLOATING(PI06_SPI_SLAVE9) | \
1314  PIN_PUPDR_FLOATING(PI07_SPI_SLAVE10) | \
1315  PIN_PUPDR_FLOATING(PI08_SPI_SLAVE11) | \
1316  PIN_PUPDR_FLOATING(PI09_CAN1_RX) | \
1317  PIN_PUPDR_FLOATING(PI10_SPI_SLAVE12) | \
1318  PIN_PUPDR_FLOATING(PI11_SPI_SLAVE13) | \
1319  PIN_PUPDR_PULLDOWN(PI12) | \
1320  PIN_PUPDR_PULLDOWN(PI13) | \
1321  PIN_PUPDR_PULLDOWN(PI14) | \
1322  PIN_PUPDR_PULLDOWN(PI15))
1323 
1324 #define VAL_GPIOI_ODR (PIN_ODR_LEVEL_LOW(PI00_ARMED) | \
1325  PIN_ODR_LEVEL_HIGH(PI01_SPI2_SCK) | \
1326  PIN_ODR_LEVEL_HIGH(PI02_SPI2_MISO) | \
1327  PIN_ODR_LEVEL_HIGH(PI03_SPI2_MOSI) | \
1328  PIN_ODR_LEVEL_HIGH(PI04_SPI_SLAVE8) | \
1329  PIN_ODR_LEVEL_HIGH(PI05_PWM_INPUT1) | \
1330  PIN_ODR_LEVEL_HIGH(PI06_SPI_SLAVE9) | \
1331  PIN_ODR_LEVEL_HIGH(PI07_SPI_SLAVE10) | \
1332  PIN_ODR_LEVEL_HIGH(PI08_SPI_SLAVE11) | \
1333  PIN_ODR_LEVEL_HIGH(PI09_CAN1_RX) | \
1334  PIN_ODR_LEVEL_HIGH(PI10_SPI_SLAVE12) | \
1335  PIN_ODR_LEVEL_HIGH(PI11_SPI_SLAVE13) | \
1336  PIN_ODR_LEVEL_LOW(PI12) | \
1337  PIN_ODR_LEVEL_LOW(PI13) | \
1338  PIN_ODR_LEVEL_LOW(PI14) | \
1339  PIN_ODR_LEVEL_LOW(PI15))
1340 
1341 #define VAL_GPIOI_AFRL (PIN_AFIO_AF(PI00_ARMED, 0) | \
1342  PIN_AFIO_AF(PI01_SPI2_SCK, 5) | \
1343  PIN_AFIO_AF(PI02_SPI2_MISO, 5) | \
1344  PIN_AFIO_AF(PI03_SPI2_MOSI, 5) | \
1345  PIN_AFIO_AF(PI04_SPI_SLAVE8, 0) | \
1346  PIN_AFIO_AF(PI05_PWM_INPUT1, 3) | \
1347  PIN_AFIO_AF(PI06_SPI_SLAVE9, 0) | \
1348  PIN_AFIO_AF(PI07_SPI_SLAVE10, 0))
1349 
1350 #define VAL_GPIOI_AFRH (PIN_AFIO_AF(PI08_SPI_SLAVE11, 0) | \
1351  PIN_AFIO_AF(PI09_CAN1_RX, 9) | \
1352  PIN_AFIO_AF(PI10_SPI_SLAVE12, 0) | \
1353  PIN_AFIO_AF(PI11_SPI_SLAVE13, 0) | \
1354  PIN_AFIO_AF(PI12, 0) | \
1355  PIN_AFIO_AF(PI13, 0) | \
1356  PIN_AFIO_AF(PI14, 0) | \
1357  PIN_AFIO_AF(PI15, 0))
1358 
1359 #define VAL_GPIOJ_MODER (PIN_MODE_INPUT(PJ00) | \
1360  PIN_MODE_INPUT(PJ01) | \
1361  PIN_MODE_INPUT(PJ02) | \
1362  PIN_MODE_INPUT(PJ03) | \
1363  PIN_MODE_INPUT(PJ04) | \
1364  PIN_MODE_INPUT(PJ05) | \
1365  PIN_MODE_INPUT(PJ06) | \
1366  PIN_MODE_INPUT(PJ07) | \
1367  PIN_MODE_INPUT(PJ08) | \
1368  PIN_MODE_INPUT(PJ09) | \
1369  PIN_MODE_INPUT(PJ10) | \
1370  PIN_MODE_INPUT(PJ11) | \
1371  PIN_MODE_INPUT(PJ12) | \
1372  PIN_MODE_INPUT(PJ13) | \
1373  PIN_MODE_INPUT(PJ14) | \
1374  PIN_MODE_INPUT(PJ15))
1375 
1376 #define VAL_GPIOJ_OTYPER (PIN_OTYPE_PUSHPULL(PJ00) | \
1377  PIN_OTYPE_PUSHPULL(PJ01) | \
1378  PIN_OTYPE_PUSHPULL(PJ02) | \
1379  PIN_OTYPE_PUSHPULL(PJ03) | \
1380  PIN_OTYPE_PUSHPULL(PJ04) | \
1381  PIN_OTYPE_PUSHPULL(PJ05) | \
1382  PIN_OTYPE_PUSHPULL(PJ06) | \
1383  PIN_OTYPE_PUSHPULL(PJ07) | \
1384  PIN_OTYPE_PUSHPULL(PJ08) | \
1385  PIN_OTYPE_PUSHPULL(PJ09) | \
1386  PIN_OTYPE_PUSHPULL(PJ10) | \
1387  PIN_OTYPE_PUSHPULL(PJ11) | \
1388  PIN_OTYPE_PUSHPULL(PJ12) | \
1389  PIN_OTYPE_PUSHPULL(PJ13) | \
1390  PIN_OTYPE_PUSHPULL(PJ14) | \
1391  PIN_OTYPE_PUSHPULL(PJ15))
1392 
1393 #define VAL_GPIOJ_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PJ00) | \
1394  PIN_OSPEED_SPEED_VERYLOW(PJ01) | \
1395  PIN_OSPEED_SPEED_VERYLOW(PJ02) | \
1396  PIN_OSPEED_SPEED_VERYLOW(PJ03) | \
1397  PIN_OSPEED_SPEED_VERYLOW(PJ04) | \
1398  PIN_OSPEED_SPEED_VERYLOW(PJ05) | \
1399  PIN_OSPEED_SPEED_VERYLOW(PJ06) | \
1400  PIN_OSPEED_SPEED_VERYLOW(PJ07) | \
1401  PIN_OSPEED_SPEED_VERYLOW(PJ08) | \
1402  PIN_OSPEED_SPEED_VERYLOW(PJ09) | \
1403  PIN_OSPEED_SPEED_VERYLOW(PJ10) | \
1404  PIN_OSPEED_SPEED_VERYLOW(PJ11) | \
1405  PIN_OSPEED_SPEED_VERYLOW(PJ12) | \
1406  PIN_OSPEED_SPEED_VERYLOW(PJ13) | \
1407  PIN_OSPEED_SPEED_VERYLOW(PJ14) | \
1408  PIN_OSPEED_SPEED_VERYLOW(PJ15))
1409 
1410 #define VAL_GPIOJ_PUPDR (PIN_PUPDR_PULLDOWN(PJ00) | \
1411  PIN_PUPDR_PULLDOWN(PJ01) | \
1412  PIN_PUPDR_PULLDOWN(PJ02) | \
1413  PIN_PUPDR_PULLDOWN(PJ03) | \
1414  PIN_PUPDR_PULLDOWN(PJ04) | \
1415  PIN_PUPDR_PULLDOWN(PJ05) | \
1416  PIN_PUPDR_PULLDOWN(PJ06) | \
1417  PIN_PUPDR_PULLDOWN(PJ07) | \
1418  PIN_PUPDR_PULLDOWN(PJ08) | \
1419  PIN_PUPDR_PULLDOWN(PJ09) | \
1420  PIN_PUPDR_PULLDOWN(PJ10) | \
1421  PIN_PUPDR_PULLDOWN(PJ11) | \
1422  PIN_PUPDR_PULLDOWN(PJ12) | \
1423  PIN_PUPDR_PULLDOWN(PJ13) | \
1424  PIN_PUPDR_PULLDOWN(PJ14) | \
1425  PIN_PUPDR_PULLDOWN(PJ15))
1426 
1427 #define VAL_GPIOJ_ODR (PIN_ODR_LEVEL_LOW(PJ00) | \
1428  PIN_ODR_LEVEL_LOW(PJ01) | \
1429  PIN_ODR_LEVEL_LOW(PJ02) | \
1430  PIN_ODR_LEVEL_LOW(PJ03) | \
1431  PIN_ODR_LEVEL_LOW(PJ04) | \
1432  PIN_ODR_LEVEL_LOW(PJ05) | \
1433  PIN_ODR_LEVEL_LOW(PJ06) | \
1434  PIN_ODR_LEVEL_LOW(PJ07) | \
1435  PIN_ODR_LEVEL_LOW(PJ08) | \
1436  PIN_ODR_LEVEL_LOW(PJ09) | \
1437  PIN_ODR_LEVEL_LOW(PJ10) | \
1438  PIN_ODR_LEVEL_LOW(PJ11) | \
1439  PIN_ODR_LEVEL_LOW(PJ12) | \
1440  PIN_ODR_LEVEL_LOW(PJ13) | \
1441  PIN_ODR_LEVEL_LOW(PJ14) | \
1442  PIN_ODR_LEVEL_LOW(PJ15))
1443 
1444 #define VAL_GPIOJ_AFRL (PIN_AFIO_AF(PJ00, 0) | \
1445  PIN_AFIO_AF(PJ01, 0) | \
1446  PIN_AFIO_AF(PJ02, 0) | \
1447  PIN_AFIO_AF(PJ03, 0) | \
1448  PIN_AFIO_AF(PJ04, 0) | \
1449  PIN_AFIO_AF(PJ05, 0) | \
1450  PIN_AFIO_AF(PJ06, 0) | \
1451  PIN_AFIO_AF(PJ07, 0))
1452 
1453 #define VAL_GPIOJ_AFRH (PIN_AFIO_AF(PJ08, 0) | \
1454  PIN_AFIO_AF(PJ09, 0) | \
1455  PIN_AFIO_AF(PJ10, 0) | \
1456  PIN_AFIO_AF(PJ11, 0) | \
1457  PIN_AFIO_AF(PJ12, 0) | \
1458  PIN_AFIO_AF(PJ13, 0) | \
1459  PIN_AFIO_AF(PJ14, 0) | \
1460  PIN_AFIO_AF(PJ15, 0))
1461 
1462 #define VAL_GPIOK_MODER (PIN_MODE_INPUT(PK00) | \
1463  PIN_MODE_INPUT(PK01) | \
1464  PIN_MODE_INPUT(PK02) | \
1465  PIN_MODE_INPUT(PK03) | \
1466  PIN_MODE_INPUT(PK04) | \
1467  PIN_MODE_INPUT(PK05) | \
1468  PIN_MODE_INPUT(PK06) | \
1469  PIN_MODE_INPUT(PK07) | \
1470  PIN_MODE_INPUT(PK08) | \
1471  PIN_MODE_INPUT(PK09) | \
1472  PIN_MODE_INPUT(PK10) | \
1473  PIN_MODE_INPUT(PK11) | \
1474  PIN_MODE_INPUT(PK12) | \
1475  PIN_MODE_INPUT(PK13) | \
1476  PIN_MODE_INPUT(PK14) | \
1477  PIN_MODE_INPUT(PK15))
1478 
1479 #define VAL_GPIOK_OTYPER (PIN_OTYPE_PUSHPULL(PK00) | \
1480  PIN_OTYPE_PUSHPULL(PK01) | \
1481  PIN_OTYPE_PUSHPULL(PK02) | \
1482  PIN_OTYPE_PUSHPULL(PK03) | \
1483  PIN_OTYPE_PUSHPULL(PK04) | \
1484  PIN_OTYPE_PUSHPULL(PK05) | \
1485  PIN_OTYPE_PUSHPULL(PK06) | \
1486  PIN_OTYPE_PUSHPULL(PK07) | \
1487  PIN_OTYPE_PUSHPULL(PK08) | \
1488  PIN_OTYPE_PUSHPULL(PK09) | \
1489  PIN_OTYPE_PUSHPULL(PK10) | \
1490  PIN_OTYPE_PUSHPULL(PK11) | \
1491  PIN_OTYPE_PUSHPULL(PK12) | \
1492  PIN_OTYPE_PUSHPULL(PK13) | \
1493  PIN_OTYPE_PUSHPULL(PK14) | \
1494  PIN_OTYPE_PUSHPULL(PK15))
1495 
1496 #define VAL_GPIOK_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PK00) | \
1497  PIN_OSPEED_SPEED_VERYLOW(PK01) | \
1498  PIN_OSPEED_SPEED_VERYLOW(PK02) | \
1499  PIN_OSPEED_SPEED_VERYLOW(PK03) | \
1500  PIN_OSPEED_SPEED_VERYLOW(PK04) | \
1501  PIN_OSPEED_SPEED_VERYLOW(PK05) | \
1502  PIN_OSPEED_SPEED_VERYLOW(PK06) | \
1503  PIN_OSPEED_SPEED_VERYLOW(PK07) | \
1504  PIN_OSPEED_SPEED_VERYLOW(PK08) | \
1505  PIN_OSPEED_SPEED_VERYLOW(PK09) | \
1506  PIN_OSPEED_SPEED_VERYLOW(PK10) | \
1507  PIN_OSPEED_SPEED_VERYLOW(PK11) | \
1508  PIN_OSPEED_SPEED_VERYLOW(PK12) | \
1509  PIN_OSPEED_SPEED_VERYLOW(PK13) | \
1510  PIN_OSPEED_SPEED_VERYLOW(PK14) | \
1511  PIN_OSPEED_SPEED_VERYLOW(PK15))
1512 
1513 #define VAL_GPIOK_PUPDR (PIN_PUPDR_PULLDOWN(PK00) | \
1514  PIN_PUPDR_PULLDOWN(PK01) | \
1515  PIN_PUPDR_PULLDOWN(PK02) | \
1516  PIN_PUPDR_PULLDOWN(PK03) | \
1517  PIN_PUPDR_PULLDOWN(PK04) | \
1518  PIN_PUPDR_PULLDOWN(PK05) | \
1519  PIN_PUPDR_PULLDOWN(PK06) | \
1520  PIN_PUPDR_PULLDOWN(PK07) | \
1521  PIN_PUPDR_PULLDOWN(PK08) | \
1522  PIN_PUPDR_PULLDOWN(PK09) | \
1523  PIN_PUPDR_PULLDOWN(PK10) | \
1524  PIN_PUPDR_PULLDOWN(PK11) | \
1525  PIN_PUPDR_PULLDOWN(PK12) | \
1526  PIN_PUPDR_PULLDOWN(PK13) | \
1527  PIN_PUPDR_PULLDOWN(PK14) | \
1528  PIN_PUPDR_PULLDOWN(PK15))
1529 
1530 #define VAL_GPIOK_ODR (PIN_ODR_LEVEL_LOW(PK00) | \
1531  PIN_ODR_LEVEL_LOW(PK01) | \
1532  PIN_ODR_LEVEL_LOW(PK02) | \
1533  PIN_ODR_LEVEL_LOW(PK03) | \
1534  PIN_ODR_LEVEL_LOW(PK04) | \
1535  PIN_ODR_LEVEL_LOW(PK05) | \
1536  PIN_ODR_LEVEL_LOW(PK06) | \
1537  PIN_ODR_LEVEL_LOW(PK07) | \
1538  PIN_ODR_LEVEL_LOW(PK08) | \
1539  PIN_ODR_LEVEL_LOW(PK09) | \
1540  PIN_ODR_LEVEL_LOW(PK10) | \
1541  PIN_ODR_LEVEL_LOW(PK11) | \
1542  PIN_ODR_LEVEL_LOW(PK12) | \
1543  PIN_ODR_LEVEL_LOW(PK13) | \
1544  PIN_ODR_LEVEL_LOW(PK14) | \
1545  PIN_ODR_LEVEL_LOW(PK15))
1546 
1547 #define VAL_GPIOK_AFRL (PIN_AFIO_AF(PK00, 0) | \
1548  PIN_AFIO_AF(PK01, 0) | \
1549  PIN_AFIO_AF(PK02, 0) | \
1550  PIN_AFIO_AF(PK03, 0) | \
1551  PIN_AFIO_AF(PK04, 0) | \
1552  PIN_AFIO_AF(PK05, 0) | \
1553  PIN_AFIO_AF(PK06, 0) | \
1554  PIN_AFIO_AF(PK07, 0))
1555 
1556 #define VAL_GPIOK_AFRH (PIN_AFIO_AF(PK08, 0) | \
1557  PIN_AFIO_AF(PK09, 0) | \
1558  PIN_AFIO_AF(PK10, 0) | \
1559  PIN_AFIO_AF(PK11, 0) | \
1560  PIN_AFIO_AF(PK12, 0) | \
1561  PIN_AFIO_AF(PK13, 0) | \
1562  PIN_AFIO_AF(PK14, 0) | \
1563  PIN_AFIO_AF(PK15, 0))
1564 
1565 #define AF_PA06_SPI1_MISO 5U
1566 #define AF_LINE_SPI1_MISO 5U
1567 #define AF_PA08_CAN3_RX 11U
1568 #define AF_LINE_CAN3_RX 11U
1569 #define AF_PA10_SERVO2 1U
1570 #define AF_LINE_SERVO2 1U
1571 #define AF_PA11_USB_DM 10U
1572 #define AF_LINE_USB_DM 10U
1573 #define AF_PA12_USB_DP 10U
1574 #define AF_LINE_USB_DP 10U
1575 #define AF_PA13_SWDIO 0U
1576 #define AF_LINE_SWDIO 0U
1577 #define AF_PA14_SWCLK 0U
1578 #define AF_LINE_SWCLK 0U
1579 #define AF_PA15_CAN3_TX 11U
1580 #define AF_LINE_CAN3_TX 11U
1581 #define AF_PB05_SPI6_MOSI 8U
1582 #define AF_LINE_SPI6_MOSI 8U
1583 #define AF_PB06_USART1_TX 7U
1584 #define AF_LINE_USART1_TX 7U
1585 #define AF_PB07_USART1_RX 7U
1586 #define AF_LINE_USART1_RX 7U
1587 #define AF_PB08_I2C1_SCL 4U
1588 #define AF_LINE_I2C1_SCL 4U
1589 #define AF_PB09_I2C1_SDA 4U
1590 #define AF_LINE_I2C1_SDA 4U
1591 #define AF_PB12_CAN2_RX 9U
1592 #define AF_LINE_CAN2_RX 9U
1593 #define AF_PB13_CAN2_TX 9U
1594 #define AF_LINE_CAN2_TX 9U
1595 #define AF_PC08_SDIO_D0 12U
1596 #define AF_LINE_SDIO_D0 12U
1597 #define AF_PC09_SDIO_D1 12U
1598 #define AF_LINE_SDIO_D1 12U
1599 #define AF_PC10_SDIO_D2 12U
1600 #define AF_LINE_SDIO_D2 12U
1601 #define AF_PC11_SDIO_D3 12U
1602 #define AF_LINE_SDIO_D3 12U
1603 #define AF_PC12_SDIO_CK 12U
1604 #define AF_LINE_SDIO_CK 12U
1605 #define AF_PC14_OSC32_IN 0U
1606 #define AF_LINE_OSC32_IN 0U
1607 #define AF_PC15_OSC32_OUT 0U
1608 #define AF_LINE_OSC32_OUT 0U
1609 #define AF_PD00_UART4_RX 8U
1610 #define AF_LINE_UART4_RX 8U
1611 #define AF_PD01_UART4_TX 8U
1612 #define AF_LINE_UART4_TX 8U
1613 #define AF_PD02_SDIO_CMD 12U
1614 #define AF_LINE_SDIO_CMD 12U
1615 #define AF_PD05_UART2_TX 7U
1616 #define AF_LINE_UART2_TX 7U
1617 #define AF_PD06_UART2_RX 7U
1618 #define AF_LINE_UART2_RX 7U
1619 #define AF_PD07_SPI1_MOSI 5U
1620 #define AF_LINE_SPI1_MOSI 5U
1621 #define AF_PD08_UART3_TX 7U
1622 #define AF_LINE_UART3_TX 7U
1623 #define AF_PD09_UART3_RX 7U
1624 #define AF_LINE_UART3_RX 7U
1625 #define AF_PD13_SERVO5 2U
1626 #define AF_LINE_SERVO5 2U
1627 #define AF_PD14_SERVO6 2U
1628 #define AF_LINE_SERVO6 2U
1629 #define AF_PE00_UART8_RX 8U
1630 #define AF_LINE_UART8_RX 8U
1631 #define AF_PE01_UART8_TX 8U
1632 #define AF_LINE_UART8_TX 8U
1633 #define AF_PE02_SPI4_SCK 5U
1634 #define AF_LINE_SPI4_SCK 5U
1635 #define AF_PE06_SPI4_MOSI 5U
1636 #define AF_LINE_SPI4_MOSI 5U
1637 #define AF_PE08_UART7_TX 8U
1638 #define AF_LINE_UART7_TX 8U
1639 #define AF_PE09_SERVO4 1U
1640 #define AF_LINE_SERVO4 1U
1641 #define AF_PE11_SERVO3 1U
1642 #define AF_LINE_SERVO3 1U
1643 #define AF_PE13_SPI4_MISO 5U
1644 #define AF_LINE_SPI4_MISO 5U
1645 #define AF_PE14_SERVO1 1U
1646 #define AF_LINE_SERVO1 1U
1647 #define AF_PF00_I2C2_SDA 4U
1648 #define AF_LINE_I2C2_SDA 4U
1649 #define AF_PF01_I2C2_SCL 4U
1650 #define AF_LINE_I2C2_SCL 4U
1651 #define AF_PF06_UART7_RX 8U
1652 #define AF_LINE_UART7_RX 8U
1653 #define AF_PF07_SPI5_SCK 5U
1654 #define AF_LINE_SPI5_SCK 5U
1655 #define AF_PF08_SPI5_MISO 5U
1656 #define AF_LINE_SPI5_MISO 5U
1657 #define AF_PF09_SPI5_MOSI 5U
1658 #define AF_LINE_SPI5_MOSI 5U
1659 #define AF_PF14_I2C4_SCL 4U
1660 #define AF_LINE_I2C4_SCL 4U
1661 #define AF_PF15_I2C4_SDA 4U
1662 #define AF_LINE_I2C4_SDA 4U
1663 #define AF_PG09_USART6_RX 8U
1664 #define AF_LINE_USART6_RX 8U
1665 #define AF_PG11_SPI1_SCK 5U
1666 #define AF_LINE_SPI1_SCK 5U
1667 #define AF_PG12_SPI6_MISO 5U
1668 #define AF_LINE_SPI6_MISO 5U
1669 #define AF_PG13_SPI6_SCK 5U
1670 #define AF_LINE_SPI6_SCK 5U
1671 #define AF_PG14_USART6_TX 8U
1672 #define AF_LINE_USART6_TX 8U
1673 #define AF_PH00_OSC_IN 0U
1674 #define AF_LINE_OSC_IN 0U
1675 #define AF_PH01_OSC_OUT 0U
1676 #define AF_LINE_OSC_OUT 0U
1677 #define AF_PH06_SERVO7 9U
1678 #define AF_LINE_SERVO7 9U
1679 #define AF_PH07_I2C3_SCL 4U
1680 #define AF_LINE_I2C3_SCL 4U
1681 #define AF_PH08_I2C3_SDA 4U
1682 #define AF_LINE_I2C3_SDA 4U
1683 #define AF_PH09_SERVO8 9U
1684 #define AF_LINE_SERVO8 9U
1685 #define AF_PH13_CAN1_TX 9U
1686 #define AF_LINE_CAN1_TX 9U
1687 #define AF_PI01_SPI2_SCK 5U
1688 #define AF_LINE_SPI2_SCK 5U
1689 #define AF_PI02_SPI2_MISO 5U
1690 #define AF_LINE_SPI2_MISO 5U
1691 #define AF_PI03_SPI2_MOSI 5U
1692 #define AF_LINE_SPI2_MOSI 5U
1693 #define AF_PI05_PWM_INPUT1 3U
1694 #define AF_LINE_PWM_INPUT1 3U
1695 #define AF_PI09_CAN1_RX 9U
1696 #define AF_LINE_CAN1_RX 9U
1697 
1698 
1699 #define ADC1_ADC 1
1700 #define ADC1_ADC_FN IN
1701 #define ADC1_ADC_IN 0
1702 #define ADC2_ADC 1
1703 #define ADC2_ADC_FN IN
1704 #define ADC2_ADC_IN 1
1705 #define ADC3_ADC 1
1706 #define ADC3_ADC_FN IN
1707 #define ADC3_ADC_IN 2
1708 #define ADC4_ADC 1
1709 #define ADC4_ADC_FN IN
1710 #define ADC4_ADC_IN 3
1711 #define ADC5_ADC 1
1712 #define ADC5_ADC_FN IN
1713 #define ADC5_ADC_IN 4
1714 #define SERVO2_TIM 1
1715 #define SERVO2_TIM_FN CH
1716 #define SERVO2_TIM_CH 3
1717 #define SERVO2_TIM_AF 1
1718 #define RSSI_IN_ADC 1
1719 #define RSSI_IN_ADC_FN IN
1720 #define RSSI_IN_ADC_IN 8
1721 #define SCALED_V5_ADC 1
1722 #define SCALED_V5_ADC_FN IN
1723 #define SCALED_V5_ADC_IN 10
1724 #define SCALED_3V3_SENSORS_ADC 1
1725 #define SCALED_3V3_SENSORS_ADC_FN IN
1726 #define SCALED_3V3_SENSORS_ADC_IN 11
1727 #define HW_VER_SENSE_ADC 1
1728 #define HW_VER_SENSE_ADC_FN IN
1729 #define HW_VER_SENSE_ADC_IN 12
1730 #define HW_REV_SENSE_ADC 1
1731 #define HW_REV_SENSE_ADC_FN IN
1732 #define HW_REV_SENSE_ADC_IN 13
1733 #define ADC6_ADC 1
1734 #define ADC6_ADC_FN IN
1735 #define ADC6_ADC_IN 14
1736 #define SERVO5_TIM 4
1737 #define SERVO5_TIM_FN CH
1738 #define SERVO5_TIM_CH 2
1739 #define SERVO5_TIM_AF 2
1740 #define SERVO6_TIM 4
1741 #define SERVO6_TIM_FN CH
1742 #define SERVO6_TIM_CH 3
1743 #define SERVO6_TIM_AF 2
1744 #define SERVO4_TIM 1
1745 #define SERVO4_TIM_FN CH
1746 #define SERVO4_TIM_CH 1
1747 #define SERVO4_TIM_AF 1
1748 #define SERVO3_TIM 1
1749 #define SERVO3_TIM_FN CH
1750 #define SERVO3_TIM_CH 2
1751 #define SERVO3_TIM_AF 1
1752 #define SERVO1_TIM 1
1753 #define SERVO1_TIM_FN CH
1754 #define SERVO1_TIM_CH 4
1755 #define SERVO1_TIM_AF 1
1756 #define SERVO7_TIM 12
1757 #define SERVO7_TIM_FN CH
1758 #define SERVO7_TIM_CH 1
1759 #define SERVO7_TIM_AF 9
1760 #define SERVO8_TIM 12
1761 #define SERVO8_TIM_FN CH
1762 #define SERVO8_TIM_CH 2
1763 #define SERVO8_TIM_AF 9
1764 #define PWM_INPUT1_TIM 8
1765 #define PWM_INPUT1_TIM_FN CH
1766 #define PWM_INPUT1_TIM_CH 1
1767 #define PWM_INPUT1_TIM_AF 3
1768 
1769 #define BOARD_GROUP_DECLFOREACH(line, group) \
1770  static const ioline_t group ## _ARRAY[] = {group}; \
1771  for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1772 
1773 #define BOARD_GROUP_FOREACH(line, group) \
1774  for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1775 
1776 
1777 #define BOARD_GROUP_DECLFOR(array, index, group) \
1778  static const ioline_t group ## _ARRAY[] = {group}; \
1779  for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1780 
1781 #define BOARD_GROUP_FOR(array, index, group) \
1782  for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1783 
1784 #define ENERGY_SAVE_INPUTS \
1785  LINE_SERVO2, \
1786  LINE_LED1, \
1787  LINE_LED2, \
1788  LINE_LED3, \
1789  LINE_SERVO5, \
1790  LINE_SERVO6, \
1791  LINE_SERVO4, \
1792  LINE_SERVO3, \
1793  LINE_LED4, \
1794  LINE_SERVO1, \
1795  LINE_SPI_SLAVE0, \
1796  LINE_SPI_SLAVE1, \
1797  LINE_SPI_SLAVE2, \
1798  LINE_SPI_SLAVE3, \
1799  LINE_SPI_SLAVE4, \
1800  LINE_SPI_SLAVE5, \
1801  LINE_SPI_SLAVE6, \
1802  LINE_SPI_SLAVE7, \
1803  LINE_SERVO7, \
1804  LINE_SERVO8, \
1805  LINE_LED5, \
1806  LINE_LED6, \
1807  LINE_LED7, \
1808  LINE_SPI_SLAVE8, \
1809  LINE_SPI_SLAVE9, \
1810  LINE_SPI_SLAVE10, \
1811  LINE_SPI_SLAVE11, \
1812  LINE_SPI_SLAVE12, \
1813  LINE_SPI_SLAVE13
1814 #define ENERGY_SAVE_INPUTS_SIZE 29
1815 
1816 #define ENERGY_SAVE_LOWS \
1817  LINE_V3V3_SENSORS_EN, \
1818  LINE_V3V3_SPEKTRUM_EN, \
1819  LINE_V5V_HIPOWER_EN, \
1820  LINE_V5V_PERIPH_EN, \
1821  LINE_V5V_RC_EN, \
1822  LINE_V5V_WIFI_EN
1823 #define ENERGY_SAVE_LOWS_SIZE 6
1824 
1825 #if !defined(_FROM_ASM_)
1826 #ifdef __cplusplus
1827 extern "C" {
1828 #endif
1829  void boardInit(void);
1830 #ifdef __cplusplus
1831 }
1832 #endif
1833 #endif /* _FROM_ASM_ */
1834 
void boardInit(void)
Board-specific initialization code.
Definition: board.c:312