Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
1614extern "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