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_MATEKH743_SLIM
23#define BOARD_NAME "MATEKSYS FC H743 SLIM"
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 8000000U
36#endif
37
38/*
39 * MCU type as defined in the ST header.
40 */
41#define STM32H743xx
42
43/* allow to define ADC_CHANNEL_VSUPPLY in the airframe file*/
44#ifndef ADC_CHANNEL_VSUPPLY
45#define ADC_CHANNEL_VSUPPLY ADC_5
46#endif
47
48/* Default powerbrick values */
49#define DefaultVoltageOfAdc(adc) ((3.3f/65536.0f) * 13.38f * adc)
50#define DefaultMilliAmpereOfAdc(adc) ((3.3f/65536.0f) * 39.877f * adc)
51
52/* Battery monitoring for file closing */
53#define SDLOG_BAT_ADC ADCD1
54#define SDLOG_BAT_CHAN AD1_5_CHANNEL
55
56/*
57 * PWM TIM defines
58 * enable TIM 3, 4 and 5 by default
59 */
60#ifndef USE_PWM_TIM3
61#define USE_PWM_TIM3 1
62#endif
63
64#ifndef USE_PWM_TIM4
65#define USE_PWM_TIM4 1
66#endif
67
68#ifndef USE_PWM_TIM5
69#define USE_PWM_TIM5 1
70#endif
71
72/*
73 * IO pins assignments.
74 */
75#define PA00_SERVO3 0U
76#define PA01_SERVO4 1U
77#define PA02_SERVO5 2U
78#define PA03_SERVO6 3U
79#define PA04_ADC3 4U
80#define PA05_SPI1_SCK 5U
81#define PA06_SPI1_MISO 6U
82#define PA07_ADC4 7U
83#define PA08_LED_WS2812 8U
84#define PA09_UART1_TX 9U
85#define PA10_UART1_RX 10U
86#define PA11_USB_DM 11U
87#define PA12_USB_DP 12U
88#define PA13_SWDIO 13U
89#define PA14_SWCLK 14U
90#define PA15_ALARM 15U
91
92#define PB00_SERVO1 0U
93#define PB01_SERVO2 1U
94#define PB02 2U
95#define PB03_SPI3_SCK 3U
96#define PB04_SPI3_MISO 4U
97#define PB05_SPI3_MOSI 5U
98#define PB06_I2C1_SCL 6U
99#define PB07_I2C1_SDA 7U
100#define PB08_UART4_RX 8U
101#define PB09_UART4_TX 9U
102#define PB10_I2C2_SCL 10U
103#define PB11_I2C2_SDA 11U
104#define PB12_SPI_SLAVE4 12U
105#define PB13_SPI2_SCK 13U
106#define PB14_SPI2_MISO 14U
107#define PB15_SPI2_MOSI 15U
108
109#define PC00_ADC5 0U
110#define PC01_ADC6 1U
111#define PC02 2U
112#define PC03 3U
113#define PC04_ADC2 4U
114#define PC05_ADC1 5U
115#define PC06_UART6_TX 6U
116#define PC07_RC1 7U
117#define PC08_SDIO_D0 8U
118#define PC09_SDIO_D1 9U
119#define PC10_SDIO_D2 10U
120#define PC11_SDIO_D3 11U
121#define PC12_SDIO_CK 12U
122#define PC13_SPI_SLAVE6 13U
123#define PC14 14U
124#define PC15_SPI_SLAVE5 15U
125
126#define PD00_CAN1_RX 0U
127#define PD01_CAN1_TX 1U
128#define PD02_SDIO_CMD 2U
129#define PD03 3U
130#define PD04_SPI_SLAVE1 4U
131#define PD05_UART2_TX 5U
132#define PD06_UART2_RX 6U
133#define PD07_SPI1_MOSI 7U
134#define PD08_UART3_TX 8U
135#define PD09_UART3_RX 9U
136#define PD10 10U
137#define PD11 11U
138#define PD12_SERVO7 12U
139#define PD13_SERVO8 13U
140#define PD14_SERVO9 14U
141#define PD15_SERVO10 15U
142
143#define PE00_UART8_RX 0U
144#define PE01_UART8_TX 1U
145#define PE02_SPI_SLAVE2 2U
146#define PE03_LED1 3U
147#define PE04_LED2 4U
148#define PE05_SERVO11 5U
149#define PE06_SERVO12 6U
150#define PE07_UART7_RX 7U
151#define PE08_UART7_TX 8U
152#define PE09_UART7_RTS 9U
153#define PE10_UART7_CTS 10U
154#define PE11_SPI_SLAVE3 11U
155#define PE12_SPI4_CLK 12U
156#define PE13_SPI4_MISO 13U
157#define PE14_SPI4_MOSI 14U
158#define PE15 15U
159
160#define PF00 0U
161#define PF01 1U
162#define PF02 2U
163#define PF03 3U
164#define PF04 4U
165#define PF05 5U
166#define PF06 6U
167#define PF07 7U
168#define PF08 8U
169#define PF09 9U
170#define PF10 10U
171#define PF11 11U
172#define PF12 12U
173#define PF13 13U
174#define PF14 14U
175#define PF15 15U
176
177#define PG00 0U
178#define PG01 1U
179#define PG02 2U
180#define PG03 3U
181#define PG04 4U
182#define PG05 5U
183#define PG06 6U
184#define PG07 7U
185#define PG08 8U
186#define PG09 9U
187#define PG10 10U
188#define PG11 11U
189#define PG12 12U
190#define PG13 13U
191#define PG14 14U
192#define PG15 15U
193
194#define PH00_OSC_IN 0U
195#define PH01_OSC_OUT 1U
196#define PH02 2U
197#define PH03 3U
198#define PH04 4U
199#define PH05 5U
200#define PH06 6U
201#define PH07 7U
202#define PH08 8U
203#define PH09 9U
204#define PH10 10U
205#define PH11 11U
206#define PH12 12U
207#define PH13 13U
208#define PH14 14U
209#define PH15 15U
210
211#define PI00 0U
212#define PI01 1U
213#define PI02 2U
214#define PI03 3U
215#define PI04 4U
216#define PI05 5U
217#define PI06 6U
218#define PI07 7U
219#define PI08 8U
220#define PI09 9U
221#define PI10 10U
222#define PI11 11U
223#define PI12 12U
224#define PI13 13U
225#define PI14 14U
226#define PI15 15U
227
228#define PJ00 0U
229#define PJ01 1U
230#define PJ02 2U
231#define PJ03 3U
232#define PJ04 4U
233#define PJ05 5U
234#define PJ06 6U
235#define PJ07 7U
236#define PJ08 8U
237#define PJ09 9U
238#define PJ10 10U
239#define PJ11 11U
240#define PJ12 12U
241#define PJ13 13U
242#define PJ14 14U
243#define PJ15 15U
244
245#define PK00 0U
246#define PK01 1U
247#define PK02 2U
248#define PK03 3U
249#define PK04 4U
250#define PK05 5U
251#define PK06 6U
252#define PK07 7U
253#define PK08 8U
254#define PK09 9U
255#define PK10 10U
256#define PK11 11U
257#define PK12 12U
258#define PK13 13U
259#define PK14 14U
260#define PK15 15U
261
262/*
263 * IO lines assignments.
264 */
265#define LINE_SERVO3 PAL_LINE(GPIOA, 0U)
266#define LINE_SERVO4 PAL_LINE(GPIOA, 1U)
267#define LINE_SERVO5 PAL_LINE(GPIOA, 2U)
268#define LINE_SERVO6 PAL_LINE(GPIOA, 3U)
269#define LINE_ADC3 PAL_LINE(GPIOA, 4U)
270#define LINE_SPI1_SCK PAL_LINE(GPIOA, 5U)
271#define LINE_SPI1_MISO PAL_LINE(GPIOA, 6U)
272#define LINE_ADC4 PAL_LINE(GPIOA, 7U)
273#define LINE_LED_WS2812 PAL_LINE(GPIOA, 8U)
274#define LINE_UART1_TX PAL_LINE(GPIOA, 9U)
275#define LINE_UART1_RX PAL_LINE(GPIOA, 10U)
276#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
277#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
278#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
279#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
280#define LINE_ALARM PAL_LINE(GPIOA, 15U)
281
282#define LINE_SERVO1 PAL_LINE(GPIOB, 0U)
283#define LINE_SERVO2 PAL_LINE(GPIOB, 1U)
284#define LINE_SPI3_SCK PAL_LINE(GPIOB, 3U)
285#define LINE_SPI3_MISO PAL_LINE(GPIOB, 4U)
286#define LINE_SPI3_MOSI PAL_LINE(GPIOB, 5U)
287#define LINE_I2C1_SCL PAL_LINE(GPIOB, 6U)
288#define LINE_I2C1_SDA PAL_LINE(GPIOB, 7U)
289#define LINE_UART4_RX PAL_LINE(GPIOB, 8U)
290#define LINE_UART4_TX PAL_LINE(GPIOB, 9U)
291#define LINE_I2C2_SCL PAL_LINE(GPIOB, 10U)
292#define LINE_I2C2_SDA PAL_LINE(GPIOB, 11U)
293#define LINE_SPI_SLAVE4 PAL_LINE(GPIOB, 12U)
294#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
295#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
296#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
297
298#define LINE_ADC5 PAL_LINE(GPIOC, 0U)
299#define LINE_ADC6 PAL_LINE(GPIOC, 1U)
300#define LINE_ADC2 PAL_LINE(GPIOC, 4U)
301#define LINE_ADC1 PAL_LINE(GPIOC, 5U)
302#define LINE_UART6_TX PAL_LINE(GPIOC, 6U)
303#define LINE_RC1 PAL_LINE(GPIOC, 7U)
304#define LINE_SDIO_D0 PAL_LINE(GPIOC, 8U)
305#define LINE_SDIO_D1 PAL_LINE(GPIOC, 9U)
306#define LINE_SDIO_D2 PAL_LINE(GPIOC, 10U)
307#define LINE_SDIO_D3 PAL_LINE(GPIOC, 11U)
308#define LINE_SDIO_CK PAL_LINE(GPIOC, 12U)
309#define LINE_SPI_SLAVE6 PAL_LINE(GPIOC, 13U)
310#define LINE_SPI_SLAVE5 PAL_LINE(GPIOC, 15U)
311
312#define LINE_CAN1_RX PAL_LINE(GPIOD, 0U)
313#define LINE_CAN1_TX PAL_LINE(GPIOD, 1U)
314#define LINE_SDIO_CMD PAL_LINE(GPIOD, 2U)
315#define LINE_SPI_SLAVE1 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_SERVO7 PAL_LINE(GPIOD, 12U)
322#define LINE_SERVO8 PAL_LINE(GPIOD, 13U)
323#define LINE_SERVO9 PAL_LINE(GPIOD, 14U)
324#define LINE_SERVO10 PAL_LINE(GPIOD, 15U)
325
326#define LINE_UART8_RX PAL_LINE(GPIOE, 0U)
327#define LINE_UART8_TX PAL_LINE(GPIOE, 1U)
328#define LINE_SPI_SLAVE2 PAL_LINE(GPIOE, 2U)
329#define LINE_LED1 PAL_LINE(GPIOE, 3U)
330#define LINE_LED2 PAL_LINE(GPIOE, 4U)
331#define LINE_SERVO11 PAL_LINE(GPIOE, 5U)
332#define LINE_SERVO12 PAL_LINE(GPIOE, 6U)
333#define LINE_UART7_RX PAL_LINE(GPIOE, 7U)
334#define LINE_UART7_TX PAL_LINE(GPIOE, 8U)
335#define LINE_UART7_RTS PAL_LINE(GPIOE, 9U)
336#define LINE_UART7_CTS PAL_LINE(GPIOE, 10U)
337#define LINE_SPI_SLAVE3 PAL_LINE(GPIOE, 11U)
338#define LINE_SPI4_CLK PAL_LINE(GPIOE, 12U)
339#define LINE_SPI4_MISO PAL_LINE(GPIOE, 13U)
340#define LINE_SPI4_MOSI PAL_LINE(GPIOE, 14U)
341
342#define LINE_OSC_IN PAL_LINE(GPIOH, 0U)
343#define LINE_OSC_OUT PAL_LINE(GPIOH, 1U)
344
345
346/*
347 * I/O ports initial setup, this configuration is established soon after reset
348 * in the initialization code.
349 * Please refer to the STM32 Reference Manual for details.
350 */
351#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
352#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
353#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
354#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
355#define PIN_ODR_LEVEL_LOW(n) (0U << (n))
356#define PIN_ODR_LEVEL_HIGH(n) (1U << (n))
357#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
358#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
359#define PIN_OSPEED_SPEED_VERYLOW(n) (0U << ((n) * 2U))
360#define PIN_OSPEED_SPEED_LOW(n) (1U << ((n) * 2U))
361#define PIN_OSPEED_SPEED_MEDIUM(n) (2U << ((n) * 2U))
362#define PIN_OSPEED_SPEED_HIGH(n) (3U << ((n) * 2U))
363#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
364#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
365#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
366#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
367
368#define VAL_GPIOA_MODER (PIN_MODE_ALTERNATE(PA00_SERVO3) | \
369 PIN_MODE_ALTERNATE(PA01_SERVO4) | \
370 PIN_MODE_ALTERNATE(PA02_SERVO5) | \
371 PIN_MODE_ALTERNATE(PA03_SERVO6) | \
372 PIN_MODE_ANALOG(PA04_ADC3) | \
373 PIN_MODE_ALTERNATE(PA05_SPI1_SCK) | \
374 PIN_MODE_ALTERNATE(PA06_SPI1_MISO) | \
375 PIN_MODE_ANALOG(PA07_ADC4) | \
376 PIN_MODE_ALTERNATE(PA08_LED_WS2812) | \
377 PIN_MODE_ALTERNATE(PA09_UART1_TX) | \
378 PIN_MODE_ALTERNATE(PA10_UART1_RX) | \
379 PIN_MODE_ALTERNATE(PA11_USB_DM) | \
380 PIN_MODE_ALTERNATE(PA12_USB_DP) | \
381 PIN_MODE_ALTERNATE(PA13_SWDIO) | \
382 PIN_MODE_ALTERNATE(PA14_SWCLK) | \
383 PIN_MODE_ALTERNATE(PA15_ALARM))
384
385#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(PA00_SERVO3) | \
386 PIN_OTYPE_PUSHPULL(PA01_SERVO4) | \
387 PIN_OTYPE_PUSHPULL(PA02_SERVO5) | \
388 PIN_OTYPE_PUSHPULL(PA03_SERVO6) | \
389 PIN_OTYPE_PUSHPULL(PA04_ADC3) | \
390 PIN_OTYPE_PUSHPULL(PA05_SPI1_SCK) | \
391 PIN_OTYPE_PUSHPULL(PA06_SPI1_MISO) | \
392 PIN_OTYPE_PUSHPULL(PA07_ADC4) | \
393 PIN_OTYPE_PUSHPULL(PA08_LED_WS2812) | \
394 PIN_OTYPE_PUSHPULL(PA09_UART1_TX) | \
395 PIN_OTYPE_PUSHPULL(PA10_UART1_RX) | \
396 PIN_OTYPE_PUSHPULL(PA11_USB_DM) | \
397 PIN_OTYPE_PUSHPULL(PA12_USB_DP) | \
398 PIN_OTYPE_PUSHPULL(PA13_SWDIO) | \
399 PIN_OTYPE_PUSHPULL(PA14_SWCLK) | \
400 PIN_OTYPE_PUSHPULL(PA15_ALARM))
401
402#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PA00_SERVO3) | \
403 PIN_OSPEED_SPEED_HIGH(PA01_SERVO4) | \
404 PIN_OSPEED_SPEED_HIGH(PA02_SERVO5) | \
405 PIN_OSPEED_SPEED_HIGH(PA03_SERVO6) | \
406 PIN_OSPEED_SPEED_VERYLOW(PA04_ADC3) | \
407 PIN_OSPEED_SPEED_HIGH(PA05_SPI1_SCK) | \
408 PIN_OSPEED_SPEED_HIGH(PA06_SPI1_MISO) | \
409 PIN_OSPEED_SPEED_VERYLOW(PA07_ADC4) | \
410 PIN_OSPEED_SPEED_HIGH(PA08_LED_WS2812) | \
411 PIN_OSPEED_SPEED_HIGH(PA09_UART1_TX) | \
412 PIN_OSPEED_SPEED_HIGH(PA10_UART1_RX) | \
413 PIN_OSPEED_SPEED_HIGH(PA11_USB_DM) | \
414 PIN_OSPEED_SPEED_HIGH(PA12_USB_DP) | \
415 PIN_OSPEED_SPEED_HIGH(PA13_SWDIO) | \
416 PIN_OSPEED_SPEED_HIGH(PA14_SWCLK) | \
417 PIN_OSPEED_SPEED_HIGH(PA15_ALARM))
418
419#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(PA00_SERVO3) | \
420 PIN_PUPDR_FLOATING(PA01_SERVO4) | \
421 PIN_PUPDR_FLOATING(PA02_SERVO5) | \
422 PIN_PUPDR_FLOATING(PA03_SERVO6) | \
423 PIN_PUPDR_FLOATING(PA04_ADC3) | \
424 PIN_PUPDR_FLOATING(PA05_SPI1_SCK) | \
425 PIN_PUPDR_FLOATING(PA06_SPI1_MISO) | \
426 PIN_PUPDR_FLOATING(PA07_ADC4) | \
427 PIN_PUPDR_FLOATING(PA08_LED_WS2812) | \
428 PIN_PUPDR_FLOATING(PA09_UART1_TX) | \
429 PIN_PUPDR_FLOATING(PA10_UART1_RX) | \
430 PIN_PUPDR_FLOATING(PA11_USB_DM) | \
431 PIN_PUPDR_FLOATING(PA12_USB_DP) | \
432 PIN_PUPDR_FLOATING(PA13_SWDIO) | \
433 PIN_PUPDR_FLOATING(PA14_SWCLK) | \
434 PIN_PUPDR_FLOATING(PA15_ALARM))
435
436#define VAL_GPIOA_ODR (PIN_ODR_LEVEL_LOW(PA00_SERVO3) | \
437 PIN_ODR_LEVEL_LOW(PA01_SERVO4) | \
438 PIN_ODR_LEVEL_LOW(PA02_SERVO5) | \
439 PIN_ODR_LEVEL_LOW(PA03_SERVO6) | \
440 PIN_ODR_LEVEL_LOW(PA04_ADC3) | \
441 PIN_ODR_LEVEL_HIGH(PA05_SPI1_SCK) | \
442 PIN_ODR_LEVEL_HIGH(PA06_SPI1_MISO) | \
443 PIN_ODR_LEVEL_LOW(PA07_ADC4) | \
444 PIN_ODR_LEVEL_LOW(PA08_LED_WS2812) | \
445 PIN_ODR_LEVEL_HIGH(PA09_UART1_TX) | \
446 PIN_ODR_LEVEL_HIGH(PA10_UART1_RX) | \
447 PIN_ODR_LEVEL_HIGH(PA11_USB_DM) | \
448 PIN_ODR_LEVEL_HIGH(PA12_USB_DP) | \
449 PIN_ODR_LEVEL_HIGH(PA13_SWDIO) | \
450 PIN_ODR_LEVEL_HIGH(PA14_SWCLK) | \
451 PIN_ODR_LEVEL_LOW(PA15_ALARM))
452
453#define VAL_GPIOA_AFRL (PIN_AFIO_AF(PA00_SERVO3, 2) | \
454 PIN_AFIO_AF(PA01_SERVO4, 2) | \
455 PIN_AFIO_AF(PA02_SERVO5, 2) | \
456 PIN_AFIO_AF(PA03_SERVO6, 2) | \
457 PIN_AFIO_AF(PA04_ADC3, 0) | \
458 PIN_AFIO_AF(PA05_SPI1_SCK, 5) | \
459 PIN_AFIO_AF(PA06_SPI1_MISO, 5) | \
460 PIN_AFIO_AF(PA07_ADC4, 0))
461
462#define VAL_GPIOA_AFRH (PIN_AFIO_AF(PA08_LED_WS2812, 1) | \
463 PIN_AFIO_AF(PA09_UART1_TX, 7) | \
464 PIN_AFIO_AF(PA10_UART1_RX, 7) | \
465 PIN_AFIO_AF(PA11_USB_DM, 10) | \
466 PIN_AFIO_AF(PA12_USB_DP, 10) | \
467 PIN_AFIO_AF(PA13_SWDIO, 0) | \
468 PIN_AFIO_AF(PA14_SWCLK, 0) | \
469 PIN_AFIO_AF(PA15_ALARM, 1))
470
471#define VAL_GPIOB_MODER (PIN_MODE_ALTERNATE(PB00_SERVO1) | \
472 PIN_MODE_ALTERNATE(PB01_SERVO2) | \
473 PIN_MODE_INPUT(PB02) | \
474 PIN_MODE_ALTERNATE(PB03_SPI3_SCK) | \
475 PIN_MODE_ALTERNATE(PB04_SPI3_MISO) | \
476 PIN_MODE_ALTERNATE(PB05_SPI3_MOSI) | \
477 PIN_MODE_ALTERNATE(PB06_I2C1_SCL) | \
478 PIN_MODE_ALTERNATE(PB07_I2C1_SDA) | \
479 PIN_MODE_ALTERNATE(PB08_UART4_RX) | \
480 PIN_MODE_ALTERNATE(PB09_UART4_TX) | \
481 PIN_MODE_ALTERNATE(PB10_I2C2_SCL) | \
482 PIN_MODE_ALTERNATE(PB11_I2C2_SDA) | \
483 PIN_MODE_OUTPUT(PB12_SPI_SLAVE4) | \
484 PIN_MODE_ALTERNATE(PB13_SPI2_SCK) | \
485 PIN_MODE_ALTERNATE(PB14_SPI2_MISO) | \
486 PIN_MODE_ALTERNATE(PB15_SPI2_MOSI))
487
488#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(PB00_SERVO1) | \
489 PIN_OTYPE_PUSHPULL(PB01_SERVO2) | \
490 PIN_OTYPE_PUSHPULL(PB02) | \
491 PIN_OTYPE_PUSHPULL(PB03_SPI3_SCK) | \
492 PIN_OTYPE_PUSHPULL(PB04_SPI3_MISO) | \
493 PIN_OTYPE_PUSHPULL(PB05_SPI3_MOSI) | \
494 PIN_OTYPE_OPENDRAIN(PB06_I2C1_SCL) | \
495 PIN_OTYPE_OPENDRAIN(PB07_I2C1_SDA) | \
496 PIN_OTYPE_PUSHPULL(PB08_UART4_RX) | \
497 PIN_OTYPE_PUSHPULL(PB09_UART4_TX) | \
498 PIN_OTYPE_OPENDRAIN(PB10_I2C2_SCL) | \
499 PIN_OTYPE_OPENDRAIN(PB11_I2C2_SDA) | \
500 PIN_OTYPE_PUSHPULL(PB12_SPI_SLAVE4) | \
501 PIN_OTYPE_PUSHPULL(PB13_SPI2_SCK) | \
502 PIN_OTYPE_PUSHPULL(PB14_SPI2_MISO) | \
503 PIN_OTYPE_PUSHPULL(PB15_SPI2_MOSI))
504
505#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PB00_SERVO1) | \
506 PIN_OSPEED_SPEED_HIGH(PB01_SERVO2) | \
507 PIN_OSPEED_SPEED_VERYLOW(PB02) | \
508 PIN_OSPEED_SPEED_HIGH(PB03_SPI3_SCK) | \
509 PIN_OSPEED_SPEED_HIGH(PB04_SPI3_MISO) | \
510 PIN_OSPEED_SPEED_HIGH(PB05_SPI3_MOSI) | \
511 PIN_OSPEED_SPEED_HIGH(PB06_I2C1_SCL) | \
512 PIN_OSPEED_SPEED_HIGH(PB07_I2C1_SDA) | \
513 PIN_OSPEED_SPEED_HIGH(PB08_UART4_RX) | \
514 PIN_OSPEED_SPEED_HIGH(PB09_UART4_TX) | \
515 PIN_OSPEED_SPEED_HIGH(PB10_I2C2_SCL) | \
516 PIN_OSPEED_SPEED_HIGH(PB11_I2C2_SDA) | \
517 PIN_OSPEED_SPEED_HIGH(PB12_SPI_SLAVE4) | \
518 PIN_OSPEED_SPEED_HIGH(PB13_SPI2_SCK) | \
519 PIN_OSPEED_SPEED_HIGH(PB14_SPI2_MISO) | \
520 PIN_OSPEED_SPEED_HIGH(PB15_SPI2_MOSI))
521
522#define VAL_GPIOB_PUPDR (PIN_PUPDR_FLOATING(PB00_SERVO1) | \
523 PIN_PUPDR_FLOATING(PB01_SERVO2) | \
524 PIN_PUPDR_PULLDOWN(PB02) | \
525 PIN_PUPDR_FLOATING(PB03_SPI3_SCK) | \
526 PIN_PUPDR_FLOATING(PB04_SPI3_MISO) | \
527 PIN_PUPDR_FLOATING(PB05_SPI3_MOSI) | \
528 PIN_PUPDR_PULLUP(PB06_I2C1_SCL) | \
529 PIN_PUPDR_PULLUP(PB07_I2C1_SDA) | \
530 PIN_PUPDR_FLOATING(PB08_UART4_RX) | \
531 PIN_PUPDR_FLOATING(PB09_UART4_TX) | \
532 PIN_PUPDR_PULLUP(PB10_I2C2_SCL) | \
533 PIN_PUPDR_PULLUP(PB11_I2C2_SDA) | \
534 PIN_PUPDR_FLOATING(PB12_SPI_SLAVE4) | \
535 PIN_PUPDR_FLOATING(PB13_SPI2_SCK) | \
536 PIN_PUPDR_FLOATING(PB14_SPI2_MISO) | \
537 PIN_PUPDR_FLOATING(PB15_SPI2_MOSI))
538
539#define VAL_GPIOB_ODR (PIN_ODR_LEVEL_LOW(PB00_SERVO1) | \
540 PIN_ODR_LEVEL_LOW(PB01_SERVO2) | \
541 PIN_ODR_LEVEL_LOW(PB02) | \
542 PIN_ODR_LEVEL_HIGH(PB03_SPI3_SCK) | \
543 PIN_ODR_LEVEL_HIGH(PB04_SPI3_MISO) | \
544 PIN_ODR_LEVEL_HIGH(PB05_SPI3_MOSI) | \
545 PIN_ODR_LEVEL_HIGH(PB06_I2C1_SCL) | \
546 PIN_ODR_LEVEL_HIGH(PB07_I2C1_SDA) | \
547 PIN_ODR_LEVEL_HIGH(PB08_UART4_RX) | \
548 PIN_ODR_LEVEL_HIGH(PB09_UART4_TX) | \
549 PIN_ODR_LEVEL_HIGH(PB10_I2C2_SCL) | \
550 PIN_ODR_LEVEL_HIGH(PB11_I2C2_SDA) | \
551 PIN_ODR_LEVEL_HIGH(PB12_SPI_SLAVE4) | \
552 PIN_ODR_LEVEL_HIGH(PB13_SPI2_SCK) | \
553 PIN_ODR_LEVEL_HIGH(PB14_SPI2_MISO) | \
554 PIN_ODR_LEVEL_HIGH(PB15_SPI2_MOSI))
555
556#define VAL_GPIOB_AFRL (PIN_AFIO_AF(PB00_SERVO1, 2) | \
557 PIN_AFIO_AF(PB01_SERVO2, 2) | \
558 PIN_AFIO_AF(PB02, 0) | \
559 PIN_AFIO_AF(PB03_SPI3_SCK, 6) | \
560 PIN_AFIO_AF(PB04_SPI3_MISO, 6) | \
561 PIN_AFIO_AF(PB05_SPI3_MOSI, 7) | \
562 PIN_AFIO_AF(PB06_I2C1_SCL, 4) | \
563 PIN_AFIO_AF(PB07_I2C1_SDA, 4))
564
565#define VAL_GPIOB_AFRH (PIN_AFIO_AF(PB08_UART4_RX, 8) | \
566 PIN_AFIO_AF(PB09_UART4_TX, 8) | \
567 PIN_AFIO_AF(PB10_I2C2_SCL, 4) | \
568 PIN_AFIO_AF(PB11_I2C2_SDA, 4) | \
569 PIN_AFIO_AF(PB12_SPI_SLAVE4, 0) | \
570 PIN_AFIO_AF(PB13_SPI2_SCK, 5) | \
571 PIN_AFIO_AF(PB14_SPI2_MISO, 5) | \
572 PIN_AFIO_AF(PB15_SPI2_MOSI, 5))
573
574#define VAL_GPIOC_MODER (PIN_MODE_ANALOG(PC00_ADC5) | \
575 PIN_MODE_ANALOG(PC01_ADC6) | \
576 PIN_MODE_INPUT(PC02) | \
577 PIN_MODE_INPUT(PC03) | \
578 PIN_MODE_ANALOG(PC04_ADC2) | \
579 PIN_MODE_ANALOG(PC05_ADC1) | \
580 PIN_MODE_ALTERNATE(PC06_UART6_TX) | \
581 PIN_MODE_INPUT(PC07_RC1) | \
582 PIN_MODE_ALTERNATE(PC08_SDIO_D0) | \
583 PIN_MODE_ALTERNATE(PC09_SDIO_D1) | \
584 PIN_MODE_ALTERNATE(PC10_SDIO_D2) | \
585 PIN_MODE_ALTERNATE(PC11_SDIO_D3) | \
586 PIN_MODE_ALTERNATE(PC12_SDIO_CK) | \
587 PIN_MODE_OUTPUT(PC13_SPI_SLAVE6) | \
588 PIN_MODE_INPUT(PC14) | \
589 PIN_MODE_OUTPUT(PC15_SPI_SLAVE5))
590
591#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(PC00_ADC5) | \
592 PIN_OTYPE_PUSHPULL(PC01_ADC6) | \
593 PIN_OTYPE_PUSHPULL(PC02) | \
594 PIN_OTYPE_PUSHPULL(PC03) | \
595 PIN_OTYPE_PUSHPULL(PC04_ADC2) | \
596 PIN_OTYPE_PUSHPULL(PC05_ADC1) | \
597 PIN_OTYPE_PUSHPULL(PC06_UART6_TX) | \
598 PIN_OTYPE_OPENDRAIN(PC07_RC1) | \
599 PIN_OTYPE_PUSHPULL(PC08_SDIO_D0) | \
600 PIN_OTYPE_PUSHPULL(PC09_SDIO_D1) | \
601 PIN_OTYPE_PUSHPULL(PC10_SDIO_D2) | \
602 PIN_OTYPE_PUSHPULL(PC11_SDIO_D3) | \
603 PIN_OTYPE_PUSHPULL(PC12_SDIO_CK) | \
604 PIN_OTYPE_PUSHPULL(PC13_SPI_SLAVE6) | \
605 PIN_OTYPE_PUSHPULL(PC14) | \
606 PIN_OTYPE_PUSHPULL(PC15_SPI_SLAVE5))
607
608#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PC00_ADC5) | \
609 PIN_OSPEED_SPEED_VERYLOW(PC01_ADC6) | \
610 PIN_OSPEED_SPEED_VERYLOW(PC02) | \
611 PIN_OSPEED_SPEED_VERYLOW(PC03) | \
612 PIN_OSPEED_SPEED_VERYLOW(PC04_ADC2) | \
613 PIN_OSPEED_SPEED_VERYLOW(PC05_ADC1) | \
614 PIN_OSPEED_SPEED_HIGH(PC06_UART6_TX) | \
615 PIN_OSPEED_SPEED_VERYLOW(PC07_RC1) | \
616 PIN_OSPEED_SPEED_HIGH(PC08_SDIO_D0) | \
617 PIN_OSPEED_SPEED_HIGH(PC09_SDIO_D1) | \
618 PIN_OSPEED_SPEED_HIGH(PC10_SDIO_D2) | \
619 PIN_OSPEED_SPEED_HIGH(PC11_SDIO_D3) | \
620 PIN_OSPEED_SPEED_HIGH(PC12_SDIO_CK) | \
621 PIN_OSPEED_SPEED_HIGH(PC13_SPI_SLAVE6) | \
622 PIN_OSPEED_SPEED_VERYLOW(PC14) | \
623 PIN_OSPEED_SPEED_HIGH(PC15_SPI_SLAVE5))
624
625#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(PC00_ADC5) | \
626 PIN_PUPDR_FLOATING(PC01_ADC6) | \
627 PIN_PUPDR_PULLDOWN(PC02) | \
628 PIN_PUPDR_PULLDOWN(PC03) | \
629 PIN_PUPDR_FLOATING(PC04_ADC2) | \
630 PIN_PUPDR_FLOATING(PC05_ADC1) | \
631 PIN_PUPDR_FLOATING(PC06_UART6_TX) | \
632 PIN_PUPDR_PULLDOWN(PC07_RC1) | \
633 PIN_PUPDR_PULLUP(PC08_SDIO_D0) | \
634 PIN_PUPDR_PULLUP(PC09_SDIO_D1) | \
635 PIN_PUPDR_PULLUP(PC10_SDIO_D2) | \
636 PIN_PUPDR_PULLUP(PC11_SDIO_D3) | \
637 PIN_PUPDR_FLOATING(PC12_SDIO_CK) | \
638 PIN_PUPDR_FLOATING(PC13_SPI_SLAVE6) | \
639 PIN_PUPDR_PULLDOWN(PC14) | \
640 PIN_PUPDR_FLOATING(PC15_SPI_SLAVE5))
641
642#define VAL_GPIOC_ODR (PIN_ODR_LEVEL_LOW(PC00_ADC5) | \
643 PIN_ODR_LEVEL_LOW(PC01_ADC6) | \
644 PIN_ODR_LEVEL_LOW(PC02) | \
645 PIN_ODR_LEVEL_LOW(PC03) | \
646 PIN_ODR_LEVEL_LOW(PC04_ADC2) | \
647 PIN_ODR_LEVEL_LOW(PC05_ADC1) | \
648 PIN_ODR_LEVEL_HIGH(PC06_UART6_TX) | \
649 PIN_ODR_LEVEL_HIGH(PC07_RC1) | \
650 PIN_ODR_LEVEL_HIGH(PC08_SDIO_D0) | \
651 PIN_ODR_LEVEL_HIGH(PC09_SDIO_D1) | \
652 PIN_ODR_LEVEL_HIGH(PC10_SDIO_D2) | \
653 PIN_ODR_LEVEL_HIGH(PC11_SDIO_D3) | \
654 PIN_ODR_LEVEL_HIGH(PC12_SDIO_CK) | \
655 PIN_ODR_LEVEL_HIGH(PC13_SPI_SLAVE6) | \
656 PIN_ODR_LEVEL_LOW(PC14) | \
657 PIN_ODR_LEVEL_HIGH(PC15_SPI_SLAVE5))
658
659#define VAL_GPIOC_AFRL (PIN_AFIO_AF(PC00_ADC5, 0) | \
660 PIN_AFIO_AF(PC01_ADC6, 0) | \
661 PIN_AFIO_AF(PC02, 0) | \
662 PIN_AFIO_AF(PC03, 0) | \
663 PIN_AFIO_AF(PC04_ADC2, 0) | \
664 PIN_AFIO_AF(PC05_ADC1, 0) | \
665 PIN_AFIO_AF(PC06_UART6_TX, 7) | \
666 PIN_AFIO_AF(PC07_RC1, 0))
667
668#define VAL_GPIOC_AFRH (PIN_AFIO_AF(PC08_SDIO_D0, 12) | \
669 PIN_AFIO_AF(PC09_SDIO_D1, 12) | \
670 PIN_AFIO_AF(PC10_SDIO_D2, 12) | \
671 PIN_AFIO_AF(PC11_SDIO_D3, 12) | \
672 PIN_AFIO_AF(PC12_SDIO_CK, 12) | \
673 PIN_AFIO_AF(PC13_SPI_SLAVE6, 0) | \
674 PIN_AFIO_AF(PC14, 0) | \
675 PIN_AFIO_AF(PC15_SPI_SLAVE5, 0))
676
677#define VAL_GPIOD_MODER (PIN_MODE_ALTERNATE(PD00_CAN1_RX) | \
678 PIN_MODE_ALTERNATE(PD01_CAN1_TX) | \
679 PIN_MODE_ALTERNATE(PD02_SDIO_CMD) | \
680 PIN_MODE_INPUT(PD03) | \
681 PIN_MODE_OUTPUT(PD04_SPI_SLAVE1) | \
682 PIN_MODE_ALTERNATE(PD05_UART2_TX) | \
683 PIN_MODE_ALTERNATE(PD06_UART2_RX) | \
684 PIN_MODE_ALTERNATE(PD07_SPI1_MOSI) | \
685 PIN_MODE_ALTERNATE(PD08_UART3_TX) | \
686 PIN_MODE_ALTERNATE(PD09_UART3_RX) | \
687 PIN_MODE_INPUT(PD10) | \
688 PIN_MODE_INPUT(PD11) | \
689 PIN_MODE_ALTERNATE(PD12_SERVO7) | \
690 PIN_MODE_ALTERNATE(PD13_SERVO8) | \
691 PIN_MODE_ALTERNATE(PD14_SERVO9) | \
692 PIN_MODE_ALTERNATE(PD15_SERVO10))
693
694#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(PD00_CAN1_RX) | \
695 PIN_OTYPE_PUSHPULL(PD01_CAN1_TX) | \
696 PIN_OTYPE_PUSHPULL(PD02_SDIO_CMD) | \
697 PIN_OTYPE_PUSHPULL(PD03) | \
698 PIN_OTYPE_PUSHPULL(PD04_SPI_SLAVE1) | \
699 PIN_OTYPE_PUSHPULL(PD05_UART2_TX) | \
700 PIN_OTYPE_PUSHPULL(PD06_UART2_RX) | \
701 PIN_OTYPE_PUSHPULL(PD07_SPI1_MOSI) | \
702 PIN_OTYPE_PUSHPULL(PD08_UART3_TX) | \
703 PIN_OTYPE_PUSHPULL(PD09_UART3_RX) | \
704 PIN_OTYPE_PUSHPULL(PD10) | \
705 PIN_OTYPE_PUSHPULL(PD11) | \
706 PIN_OTYPE_PUSHPULL(PD12_SERVO7) | \
707 PIN_OTYPE_PUSHPULL(PD13_SERVO8) | \
708 PIN_OTYPE_PUSHPULL(PD14_SERVO9) | \
709 PIN_OTYPE_PUSHPULL(PD15_SERVO10))
710
711#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PD00_CAN1_RX) | \
712 PIN_OSPEED_SPEED_HIGH(PD01_CAN1_TX) | \
713 PIN_OSPEED_SPEED_HIGH(PD02_SDIO_CMD) | \
714 PIN_OSPEED_SPEED_VERYLOW(PD03) | \
715 PIN_OSPEED_SPEED_HIGH(PD04_SPI_SLAVE1) | \
716 PIN_OSPEED_SPEED_HIGH(PD05_UART2_TX) | \
717 PIN_OSPEED_SPEED_HIGH(PD06_UART2_RX) | \
718 PIN_OSPEED_SPEED_HIGH(PD07_SPI1_MOSI) | \
719 PIN_OSPEED_SPEED_HIGH(PD08_UART3_TX) | \
720 PIN_OSPEED_SPEED_HIGH(PD09_UART3_RX) | \
721 PIN_OSPEED_SPEED_VERYLOW(PD10) | \
722 PIN_OSPEED_SPEED_VERYLOW(PD11) | \
723 PIN_OSPEED_SPEED_HIGH(PD12_SERVO7) | \
724 PIN_OSPEED_SPEED_HIGH(PD13_SERVO8) | \
725 PIN_OSPEED_SPEED_HIGH(PD14_SERVO9) | \
726 PIN_OSPEED_SPEED_HIGH(PD15_SERVO10))
727
728#define VAL_GPIOD_PUPDR (PIN_PUPDR_FLOATING(PD00_CAN1_RX) | \
729 PIN_PUPDR_FLOATING(PD01_CAN1_TX) | \
730 PIN_PUPDR_PULLUP(PD02_SDIO_CMD) | \
731 PIN_PUPDR_PULLDOWN(PD03) | \
732 PIN_PUPDR_FLOATING(PD04_SPI_SLAVE1) | \
733 PIN_PUPDR_FLOATING(PD05_UART2_TX) | \
734 PIN_PUPDR_FLOATING(PD06_UART2_RX) | \
735 PIN_PUPDR_FLOATING(PD07_SPI1_MOSI) | \
736 PIN_PUPDR_FLOATING(PD08_UART3_TX) | \
737 PIN_PUPDR_FLOATING(PD09_UART3_RX) | \
738 PIN_PUPDR_PULLDOWN(PD10) | \
739 PIN_PUPDR_PULLDOWN(PD11) | \
740 PIN_PUPDR_FLOATING(PD12_SERVO7) | \
741 PIN_PUPDR_FLOATING(PD13_SERVO8) | \
742 PIN_PUPDR_FLOATING(PD14_SERVO9) | \
743 PIN_PUPDR_FLOATING(PD15_SERVO10))
744
745#define VAL_GPIOD_ODR (PIN_ODR_LEVEL_HIGH(PD00_CAN1_RX) | \
746 PIN_ODR_LEVEL_HIGH(PD01_CAN1_TX) | \
747 PIN_ODR_LEVEL_HIGH(PD02_SDIO_CMD) | \
748 PIN_ODR_LEVEL_LOW(PD03) | \
749 PIN_ODR_LEVEL_HIGH(PD04_SPI_SLAVE1) | \
750 PIN_ODR_LEVEL_HIGH(PD05_UART2_TX) | \
751 PIN_ODR_LEVEL_HIGH(PD06_UART2_RX) | \
752 PIN_ODR_LEVEL_HIGH(PD07_SPI1_MOSI) | \
753 PIN_ODR_LEVEL_HIGH(PD08_UART3_TX) | \
754 PIN_ODR_LEVEL_HIGH(PD09_UART3_RX) | \
755 PIN_ODR_LEVEL_LOW(PD10) | \
756 PIN_ODR_LEVEL_LOW(PD11) | \
757 PIN_ODR_LEVEL_LOW(PD12_SERVO7) | \
758 PIN_ODR_LEVEL_LOW(PD13_SERVO8) | \
759 PIN_ODR_LEVEL_LOW(PD14_SERVO9) | \
760 PIN_ODR_LEVEL_LOW(PD15_SERVO10))
761
762#define VAL_GPIOD_AFRL (PIN_AFIO_AF(PD00_CAN1_RX, 9) | \
763 PIN_AFIO_AF(PD01_CAN1_TX, 9) | \
764 PIN_AFIO_AF(PD02_SDIO_CMD, 12) | \
765 PIN_AFIO_AF(PD03, 0) | \
766 PIN_AFIO_AF(PD04_SPI_SLAVE1, 0) | \
767 PIN_AFIO_AF(PD05_UART2_TX, 7) | \
768 PIN_AFIO_AF(PD06_UART2_RX, 7) | \
769 PIN_AFIO_AF(PD07_SPI1_MOSI, 5))
770
771#define VAL_GPIOD_AFRH (PIN_AFIO_AF(PD08_UART3_TX, 7) | \
772 PIN_AFIO_AF(PD09_UART3_RX, 7) | \
773 PIN_AFIO_AF(PD10, 0) | \
774 PIN_AFIO_AF(PD11, 0) | \
775 PIN_AFIO_AF(PD12_SERVO7, 2) | \
776 PIN_AFIO_AF(PD13_SERVO8, 2) | \
777 PIN_AFIO_AF(PD14_SERVO9, 2) | \
778 PIN_AFIO_AF(PD15_SERVO10, 2))
779
780#define VAL_GPIOE_MODER (PIN_MODE_ALTERNATE(PE00_UART8_RX) | \
781 PIN_MODE_ALTERNATE(PE01_UART8_TX) | \
782 PIN_MODE_OUTPUT(PE02_SPI_SLAVE2) | \
783 PIN_MODE_OUTPUT(PE03_LED1) | \
784 PIN_MODE_OUTPUT(PE04_LED2) | \
785 PIN_MODE_ALTERNATE(PE05_SERVO11) | \
786 PIN_MODE_ALTERNATE(PE06_SERVO12) | \
787 PIN_MODE_ALTERNATE(PE07_UART7_RX) | \
788 PIN_MODE_ALTERNATE(PE08_UART7_TX) | \
789 PIN_MODE_INPUT(PE09_UART7_RTS) | \
790 PIN_MODE_INPUT(PE10_UART7_CTS) | \
791 PIN_MODE_OUTPUT(PE11_SPI_SLAVE3) | \
792 PIN_MODE_ALTERNATE(PE12_SPI4_CLK) | \
793 PIN_MODE_ALTERNATE(PE13_SPI4_MISO) | \
794 PIN_MODE_ALTERNATE(PE14_SPI4_MOSI) | \
795 PIN_MODE_INPUT(PE15))
796
797#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(PE00_UART8_RX) | \
798 PIN_OTYPE_PUSHPULL(PE01_UART8_TX) | \
799 PIN_OTYPE_PUSHPULL(PE02_SPI_SLAVE2) | \
800 PIN_OTYPE_PUSHPULL(PE03_LED1) | \
801 PIN_OTYPE_PUSHPULL(PE04_LED2) | \
802 PIN_OTYPE_PUSHPULL(PE05_SERVO11) | \
803 PIN_OTYPE_PUSHPULL(PE06_SERVO12) | \
804 PIN_OTYPE_PUSHPULL(PE07_UART7_RX) | \
805 PIN_OTYPE_PUSHPULL(PE08_UART7_TX) | \
806 PIN_OTYPE_OPENDRAIN(PE09_UART7_RTS) | \
807 PIN_OTYPE_OPENDRAIN(PE10_UART7_CTS) | \
808 PIN_OTYPE_PUSHPULL(PE11_SPI_SLAVE3) | \
809 PIN_OTYPE_PUSHPULL(PE12_SPI4_CLK) | \
810 PIN_OTYPE_PUSHPULL(PE13_SPI4_MISO) | \
811 PIN_OTYPE_PUSHPULL(PE14_SPI4_MOSI) | \
812 PIN_OTYPE_PUSHPULL(PE15))
813
814#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PE00_UART8_RX) | \
815 PIN_OSPEED_SPEED_HIGH(PE01_UART8_TX) | \
816 PIN_OSPEED_SPEED_HIGH(PE02_SPI_SLAVE2) | \
817 PIN_OSPEED_SPEED_VERYLOW(PE03_LED1) | \
818 PIN_OSPEED_SPEED_VERYLOW(PE04_LED2) | \
819 PIN_OSPEED_SPEED_HIGH(PE05_SERVO11) | \
820 PIN_OSPEED_SPEED_HIGH(PE06_SERVO12) | \
821 PIN_OSPEED_SPEED_HIGH(PE07_UART7_RX) | \
822 PIN_OSPEED_SPEED_HIGH(PE08_UART7_TX) | \
823 PIN_OSPEED_SPEED_VERYLOW(PE09_UART7_RTS) | \
824 PIN_OSPEED_SPEED_VERYLOW(PE10_UART7_CTS) | \
825 PIN_OSPEED_SPEED_HIGH(PE11_SPI_SLAVE3) | \
826 PIN_OSPEED_SPEED_HIGH(PE12_SPI4_CLK) | \
827 PIN_OSPEED_SPEED_HIGH(PE13_SPI4_MISO) | \
828 PIN_OSPEED_SPEED_HIGH(PE14_SPI4_MOSI) | \
829 PIN_OSPEED_SPEED_VERYLOW(PE15))
830
831#define VAL_GPIOE_PUPDR (PIN_PUPDR_FLOATING(PE00_UART8_RX) | \
832 PIN_PUPDR_FLOATING(PE01_UART8_TX) | \
833 PIN_PUPDR_FLOATING(PE02_SPI_SLAVE2) | \
834 PIN_PUPDR_FLOATING(PE03_LED1) | \
835 PIN_PUPDR_FLOATING(PE04_LED2) | \
836 PIN_PUPDR_FLOATING(PE05_SERVO11) | \
837 PIN_PUPDR_FLOATING(PE06_SERVO12) | \
838 PIN_PUPDR_FLOATING(PE07_UART7_RX) | \
839 PIN_PUPDR_FLOATING(PE08_UART7_TX) | \
840 PIN_PUPDR_PULLDOWN(PE09_UART7_RTS) | \
841 PIN_PUPDR_PULLDOWN(PE10_UART7_CTS) | \
842 PIN_PUPDR_FLOATING(PE11_SPI_SLAVE3) | \
843 PIN_PUPDR_FLOATING(PE12_SPI4_CLK) | \
844 PIN_PUPDR_FLOATING(PE13_SPI4_MISO) | \
845 PIN_PUPDR_FLOATING(PE14_SPI4_MOSI) | \
846 PIN_PUPDR_PULLDOWN(PE15))
847
848#define VAL_GPIOE_ODR (PIN_ODR_LEVEL_HIGH(PE00_UART8_RX) | \
849 PIN_ODR_LEVEL_HIGH(PE01_UART8_TX) | \
850 PIN_ODR_LEVEL_HIGH(PE02_SPI_SLAVE2) | \
851 PIN_ODR_LEVEL_LOW(PE03_LED1) | \
852 PIN_ODR_LEVEL_LOW(PE04_LED2) | \
853 PIN_ODR_LEVEL_LOW(PE05_SERVO11) | \
854 PIN_ODR_LEVEL_LOW(PE06_SERVO12) | \
855 PIN_ODR_LEVEL_HIGH(PE07_UART7_RX) | \
856 PIN_ODR_LEVEL_HIGH(PE08_UART7_TX) | \
857 PIN_ODR_LEVEL_HIGH(PE09_UART7_RTS) | \
858 PIN_ODR_LEVEL_HIGH(PE10_UART7_CTS) | \
859 PIN_ODR_LEVEL_HIGH(PE11_SPI_SLAVE3) | \
860 PIN_ODR_LEVEL_HIGH(PE12_SPI4_CLK) | \
861 PIN_ODR_LEVEL_HIGH(PE13_SPI4_MISO) | \
862 PIN_ODR_LEVEL_HIGH(PE14_SPI4_MOSI) | \
863 PIN_ODR_LEVEL_LOW(PE15))
864
865#define VAL_GPIOE_AFRL (PIN_AFIO_AF(PE00_UART8_RX, 8) | \
866 PIN_AFIO_AF(PE01_UART8_TX, 8) | \
867 PIN_AFIO_AF(PE02_SPI_SLAVE2, 0) | \
868 PIN_AFIO_AF(PE03_LED1, 0) | \
869 PIN_AFIO_AF(PE04_LED2, 0) | \
870 PIN_AFIO_AF(PE05_SERVO11, 4) | \
871 PIN_AFIO_AF(PE06_SERVO12, 4) | \
872 PIN_AFIO_AF(PE07_UART7_RX, 7))
873
874#define VAL_GPIOE_AFRH (PIN_AFIO_AF(PE08_UART7_TX, 7) | \
875 PIN_AFIO_AF(PE09_UART7_RTS, 0) | \
876 PIN_AFIO_AF(PE10_UART7_CTS, 0) | \
877 PIN_AFIO_AF(PE11_SPI_SLAVE3, 0) | \
878 PIN_AFIO_AF(PE12_SPI4_CLK, 5) | \
879 PIN_AFIO_AF(PE13_SPI4_MISO, 5) | \
880 PIN_AFIO_AF(PE14_SPI4_MOSI, 5) | \
881 PIN_AFIO_AF(PE15, 0))
882
883#define VAL_GPIOF_MODER (PIN_MODE_INPUT(PF00) | \
884 PIN_MODE_INPUT(PF01) | \
885 PIN_MODE_INPUT(PF02) | \
886 PIN_MODE_INPUT(PF03) | \
887 PIN_MODE_INPUT(PF04) | \
888 PIN_MODE_INPUT(PF05) | \
889 PIN_MODE_INPUT(PF06) | \
890 PIN_MODE_INPUT(PF07) | \
891 PIN_MODE_INPUT(PF08) | \
892 PIN_MODE_INPUT(PF09) | \
893 PIN_MODE_INPUT(PF10) | \
894 PIN_MODE_INPUT(PF11) | \
895 PIN_MODE_INPUT(PF12) | \
896 PIN_MODE_INPUT(PF13) | \
897 PIN_MODE_INPUT(PF14) | \
898 PIN_MODE_INPUT(PF15))
899
900#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(PF00) | \
901 PIN_OTYPE_PUSHPULL(PF01) | \
902 PIN_OTYPE_PUSHPULL(PF02) | \
903 PIN_OTYPE_PUSHPULL(PF03) | \
904 PIN_OTYPE_PUSHPULL(PF04) | \
905 PIN_OTYPE_PUSHPULL(PF05) | \
906 PIN_OTYPE_PUSHPULL(PF06) | \
907 PIN_OTYPE_PUSHPULL(PF07) | \
908 PIN_OTYPE_PUSHPULL(PF08) | \
909 PIN_OTYPE_PUSHPULL(PF09) | \
910 PIN_OTYPE_PUSHPULL(PF10) | \
911 PIN_OTYPE_PUSHPULL(PF11) | \
912 PIN_OTYPE_PUSHPULL(PF12) | \
913 PIN_OTYPE_PUSHPULL(PF13) | \
914 PIN_OTYPE_PUSHPULL(PF14) | \
915 PIN_OTYPE_PUSHPULL(PF15))
916
917#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PF00) | \
918 PIN_OSPEED_SPEED_VERYLOW(PF01) | \
919 PIN_OSPEED_SPEED_VERYLOW(PF02) | \
920 PIN_OSPEED_SPEED_VERYLOW(PF03) | \
921 PIN_OSPEED_SPEED_VERYLOW(PF04) | \
922 PIN_OSPEED_SPEED_VERYLOW(PF05) | \
923 PIN_OSPEED_SPEED_VERYLOW(PF06) | \
924 PIN_OSPEED_SPEED_VERYLOW(PF07) | \
925 PIN_OSPEED_SPEED_VERYLOW(PF08) | \
926 PIN_OSPEED_SPEED_VERYLOW(PF09) | \
927 PIN_OSPEED_SPEED_VERYLOW(PF10) | \
928 PIN_OSPEED_SPEED_VERYLOW(PF11) | \
929 PIN_OSPEED_SPEED_VERYLOW(PF12) | \
930 PIN_OSPEED_SPEED_VERYLOW(PF13) | \
931 PIN_OSPEED_SPEED_VERYLOW(PF14) | \
932 PIN_OSPEED_SPEED_VERYLOW(PF15))
933
934#define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLDOWN(PF00) | \
935 PIN_PUPDR_PULLDOWN(PF01) | \
936 PIN_PUPDR_PULLDOWN(PF02) | \
937 PIN_PUPDR_PULLDOWN(PF03) | \
938 PIN_PUPDR_PULLDOWN(PF04) | \
939 PIN_PUPDR_PULLDOWN(PF05) | \
940 PIN_PUPDR_PULLDOWN(PF06) | \
941 PIN_PUPDR_PULLDOWN(PF07) | \
942 PIN_PUPDR_PULLDOWN(PF08) | \
943 PIN_PUPDR_PULLDOWN(PF09) | \
944 PIN_PUPDR_PULLDOWN(PF10) | \
945 PIN_PUPDR_PULLDOWN(PF11) | \
946 PIN_PUPDR_PULLDOWN(PF12) | \
947 PIN_PUPDR_PULLDOWN(PF13) | \
948 PIN_PUPDR_PULLDOWN(PF14) | \
949 PIN_PUPDR_PULLDOWN(PF15))
950
951#define VAL_GPIOF_ODR (PIN_ODR_LEVEL_LOW(PF00) | \
952 PIN_ODR_LEVEL_LOW(PF01) | \
953 PIN_ODR_LEVEL_LOW(PF02) | \
954 PIN_ODR_LEVEL_LOW(PF03) | \
955 PIN_ODR_LEVEL_LOW(PF04) | \
956 PIN_ODR_LEVEL_LOW(PF05) | \
957 PIN_ODR_LEVEL_LOW(PF06) | \
958 PIN_ODR_LEVEL_LOW(PF07) | \
959 PIN_ODR_LEVEL_LOW(PF08) | \
960 PIN_ODR_LEVEL_LOW(PF09) | \
961 PIN_ODR_LEVEL_LOW(PF10) | \
962 PIN_ODR_LEVEL_LOW(PF11) | \
963 PIN_ODR_LEVEL_LOW(PF12) | \
964 PIN_ODR_LEVEL_LOW(PF13) | \
965 PIN_ODR_LEVEL_LOW(PF14) | \
966 PIN_ODR_LEVEL_LOW(PF15))
967
968#define VAL_GPIOF_AFRL (PIN_AFIO_AF(PF00, 0) | \
969 PIN_AFIO_AF(PF01, 0) | \
970 PIN_AFIO_AF(PF02, 0) | \
971 PIN_AFIO_AF(PF03, 0) | \
972 PIN_AFIO_AF(PF04, 0) | \
973 PIN_AFIO_AF(PF05, 0) | \
974 PIN_AFIO_AF(PF06, 0) | \
975 PIN_AFIO_AF(PF07, 0))
976
977#define VAL_GPIOF_AFRH (PIN_AFIO_AF(PF08, 0) | \
978 PIN_AFIO_AF(PF09, 0) | \
979 PIN_AFIO_AF(PF10, 0) | \
980 PIN_AFIO_AF(PF11, 0) | \
981 PIN_AFIO_AF(PF12, 0) | \
982 PIN_AFIO_AF(PF13, 0) | \
983 PIN_AFIO_AF(PF14, 0) | \
984 PIN_AFIO_AF(PF15, 0))
985
986#define VAL_GPIOG_MODER (PIN_MODE_INPUT(PG00) | \
987 PIN_MODE_INPUT(PG01) | \
988 PIN_MODE_INPUT(PG02) | \
989 PIN_MODE_INPUT(PG03) | \
990 PIN_MODE_INPUT(PG04) | \
991 PIN_MODE_INPUT(PG05) | \
992 PIN_MODE_INPUT(PG06) | \
993 PIN_MODE_INPUT(PG07) | \
994 PIN_MODE_INPUT(PG08) | \
995 PIN_MODE_INPUT(PG09) | \
996 PIN_MODE_INPUT(PG10) | \
997 PIN_MODE_INPUT(PG11) | \
998 PIN_MODE_INPUT(PG12) | \
999 PIN_MODE_INPUT(PG13) | \
1000 PIN_MODE_INPUT(PG14) | \
1001 PIN_MODE_INPUT(PG15))
1002
1003#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(PG00) | \
1004 PIN_OTYPE_PUSHPULL(PG01) | \
1005 PIN_OTYPE_PUSHPULL(PG02) | \
1006 PIN_OTYPE_PUSHPULL(PG03) | \
1007 PIN_OTYPE_PUSHPULL(PG04) | \
1008 PIN_OTYPE_PUSHPULL(PG05) | \
1009 PIN_OTYPE_PUSHPULL(PG06) | \
1010 PIN_OTYPE_PUSHPULL(PG07) | \
1011 PIN_OTYPE_PUSHPULL(PG08) | \
1012 PIN_OTYPE_PUSHPULL(PG09) | \
1013 PIN_OTYPE_PUSHPULL(PG10) | \
1014 PIN_OTYPE_PUSHPULL(PG11) | \
1015 PIN_OTYPE_PUSHPULL(PG12) | \
1016 PIN_OTYPE_PUSHPULL(PG13) | \
1017 PIN_OTYPE_PUSHPULL(PG14) | \
1018 PIN_OTYPE_PUSHPULL(PG15))
1019
1020#define VAL_GPIOG_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PG00) | \
1021 PIN_OSPEED_SPEED_VERYLOW(PG01) | \
1022 PIN_OSPEED_SPEED_VERYLOW(PG02) | \
1023 PIN_OSPEED_SPEED_VERYLOW(PG03) | \
1024 PIN_OSPEED_SPEED_VERYLOW(PG04) | \
1025 PIN_OSPEED_SPEED_VERYLOW(PG05) | \
1026 PIN_OSPEED_SPEED_VERYLOW(PG06) | \
1027 PIN_OSPEED_SPEED_VERYLOW(PG07) | \
1028 PIN_OSPEED_SPEED_VERYLOW(PG08) | \
1029 PIN_OSPEED_SPEED_VERYLOW(PG09) | \
1030 PIN_OSPEED_SPEED_VERYLOW(PG10) | \
1031 PIN_OSPEED_SPEED_VERYLOW(PG11) | \
1032 PIN_OSPEED_SPEED_VERYLOW(PG12) | \
1033 PIN_OSPEED_SPEED_VERYLOW(PG13) | \
1034 PIN_OSPEED_SPEED_VERYLOW(PG14) | \
1035 PIN_OSPEED_SPEED_VERYLOW(PG15))
1036
1037#define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLDOWN(PG00) | \
1038 PIN_PUPDR_PULLDOWN(PG01) | \
1039 PIN_PUPDR_PULLDOWN(PG02) | \
1040 PIN_PUPDR_PULLDOWN(PG03) | \
1041 PIN_PUPDR_PULLDOWN(PG04) | \
1042 PIN_PUPDR_PULLDOWN(PG05) | \
1043 PIN_PUPDR_PULLDOWN(PG06) | \
1044 PIN_PUPDR_PULLDOWN(PG07) | \
1045 PIN_PUPDR_PULLDOWN(PG08) | \
1046 PIN_PUPDR_PULLDOWN(PG09) | \
1047 PIN_PUPDR_PULLDOWN(PG10) | \
1048 PIN_PUPDR_PULLDOWN(PG11) | \
1049 PIN_PUPDR_PULLDOWN(PG12) | \
1050 PIN_PUPDR_PULLDOWN(PG13) | \
1051 PIN_PUPDR_PULLDOWN(PG14) | \
1052 PIN_PUPDR_PULLDOWN(PG15))
1053
1054#define VAL_GPIOG_ODR (PIN_ODR_LEVEL_LOW(PG00) | \
1055 PIN_ODR_LEVEL_LOW(PG01) | \
1056 PIN_ODR_LEVEL_LOW(PG02) | \
1057 PIN_ODR_LEVEL_LOW(PG03) | \
1058 PIN_ODR_LEVEL_LOW(PG04) | \
1059 PIN_ODR_LEVEL_LOW(PG05) | \
1060 PIN_ODR_LEVEL_LOW(PG06) | \
1061 PIN_ODR_LEVEL_LOW(PG07) | \
1062 PIN_ODR_LEVEL_LOW(PG08) | \
1063 PIN_ODR_LEVEL_LOW(PG09) | \
1064 PIN_ODR_LEVEL_LOW(PG10) | \
1065 PIN_ODR_LEVEL_LOW(PG11) | \
1066 PIN_ODR_LEVEL_LOW(PG12) | \
1067 PIN_ODR_LEVEL_LOW(PG13) | \
1068 PIN_ODR_LEVEL_LOW(PG14) | \
1069 PIN_ODR_LEVEL_LOW(PG15))
1070
1071#define VAL_GPIOG_AFRL (PIN_AFIO_AF(PG00, 0) | \
1072 PIN_AFIO_AF(PG01, 0) | \
1073 PIN_AFIO_AF(PG02, 0) | \
1074 PIN_AFIO_AF(PG03, 0) | \
1075 PIN_AFIO_AF(PG04, 0) | \
1076 PIN_AFIO_AF(PG05, 0) | \
1077 PIN_AFIO_AF(PG06, 0) | \
1078 PIN_AFIO_AF(PG07, 0))
1079
1080#define VAL_GPIOG_AFRH (PIN_AFIO_AF(PG08, 0) | \
1081 PIN_AFIO_AF(PG09, 0) | \
1082 PIN_AFIO_AF(PG10, 0) | \
1083 PIN_AFIO_AF(PG11, 0) | \
1084 PIN_AFIO_AF(PG12, 0) | \
1085 PIN_AFIO_AF(PG13, 0) | \
1086 PIN_AFIO_AF(PG14, 0) | \
1087 PIN_AFIO_AF(PG15, 0))
1088
1089#define VAL_GPIOH_MODER (PIN_MODE_ALTERNATE(PH00_OSC_IN) | \
1090 PIN_MODE_ALTERNATE(PH01_OSC_OUT) | \
1091 PIN_MODE_INPUT(PH02) | \
1092 PIN_MODE_INPUT(PH03) | \
1093 PIN_MODE_INPUT(PH04) | \
1094 PIN_MODE_INPUT(PH05) | \
1095 PIN_MODE_INPUT(PH06) | \
1096 PIN_MODE_INPUT(PH07) | \
1097 PIN_MODE_INPUT(PH08) | \
1098 PIN_MODE_INPUT(PH09) | \
1099 PIN_MODE_INPUT(PH10) | \
1100 PIN_MODE_INPUT(PH11) | \
1101 PIN_MODE_INPUT(PH12) | \
1102 PIN_MODE_INPUT(PH13) | \
1103 PIN_MODE_INPUT(PH14) | \
1104 PIN_MODE_INPUT(PH15))
1105
1106#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(PH00_OSC_IN) | \
1107 PIN_OTYPE_PUSHPULL(PH01_OSC_OUT) | \
1108 PIN_OTYPE_PUSHPULL(PH02) | \
1109 PIN_OTYPE_PUSHPULL(PH03) | \
1110 PIN_OTYPE_PUSHPULL(PH04) | \
1111 PIN_OTYPE_PUSHPULL(PH05) | \
1112 PIN_OTYPE_PUSHPULL(PH06) | \
1113 PIN_OTYPE_PUSHPULL(PH07) | \
1114 PIN_OTYPE_PUSHPULL(PH08) | \
1115 PIN_OTYPE_PUSHPULL(PH09) | \
1116 PIN_OTYPE_PUSHPULL(PH10) | \
1117 PIN_OTYPE_PUSHPULL(PH11) | \
1118 PIN_OTYPE_PUSHPULL(PH12) | \
1119 PIN_OTYPE_PUSHPULL(PH13) | \
1120 PIN_OTYPE_PUSHPULL(PH14) | \
1121 PIN_OTYPE_PUSHPULL(PH15))
1122
1123#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PH00_OSC_IN) | \
1124 PIN_OSPEED_SPEED_HIGH(PH01_OSC_OUT) | \
1125 PIN_OSPEED_SPEED_VERYLOW(PH02) | \
1126 PIN_OSPEED_SPEED_VERYLOW(PH03) | \
1127 PIN_OSPEED_SPEED_VERYLOW(PH04) | \
1128 PIN_OSPEED_SPEED_VERYLOW(PH05) | \
1129 PIN_OSPEED_SPEED_VERYLOW(PH06) | \
1130 PIN_OSPEED_SPEED_VERYLOW(PH07) | \
1131 PIN_OSPEED_SPEED_VERYLOW(PH08) | \
1132 PIN_OSPEED_SPEED_VERYLOW(PH09) | \
1133 PIN_OSPEED_SPEED_VERYLOW(PH10) | \
1134 PIN_OSPEED_SPEED_VERYLOW(PH11) | \
1135 PIN_OSPEED_SPEED_VERYLOW(PH12) | \
1136 PIN_OSPEED_SPEED_VERYLOW(PH13) | \
1137 PIN_OSPEED_SPEED_VERYLOW(PH14) | \
1138 PIN_OSPEED_SPEED_VERYLOW(PH15))
1139
1140#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(PH00_OSC_IN) | \
1141 PIN_PUPDR_FLOATING(PH01_OSC_OUT) | \
1142 PIN_PUPDR_PULLDOWN(PH02) | \
1143 PIN_PUPDR_PULLDOWN(PH03) | \
1144 PIN_PUPDR_PULLDOWN(PH04) | \
1145 PIN_PUPDR_PULLDOWN(PH05) | \
1146 PIN_PUPDR_PULLDOWN(PH06) | \
1147 PIN_PUPDR_PULLDOWN(PH07) | \
1148 PIN_PUPDR_PULLDOWN(PH08) | \
1149 PIN_PUPDR_PULLDOWN(PH09) | \
1150 PIN_PUPDR_PULLDOWN(PH10) | \
1151 PIN_PUPDR_PULLDOWN(PH11) | \
1152 PIN_PUPDR_PULLDOWN(PH12) | \
1153 PIN_PUPDR_PULLDOWN(PH13) | \
1154 PIN_PUPDR_PULLDOWN(PH14) | \
1155 PIN_PUPDR_PULLDOWN(PH15))
1156
1157#define VAL_GPIOH_ODR (PIN_ODR_LEVEL_HIGH(PH00_OSC_IN) | \
1158 PIN_ODR_LEVEL_HIGH(PH01_OSC_OUT) | \
1159 PIN_ODR_LEVEL_LOW(PH02) | \
1160 PIN_ODR_LEVEL_LOW(PH03) | \
1161 PIN_ODR_LEVEL_LOW(PH04) | \
1162 PIN_ODR_LEVEL_LOW(PH05) | \
1163 PIN_ODR_LEVEL_LOW(PH06) | \
1164 PIN_ODR_LEVEL_LOW(PH07) | \
1165 PIN_ODR_LEVEL_LOW(PH08) | \
1166 PIN_ODR_LEVEL_LOW(PH09) | \
1167 PIN_ODR_LEVEL_LOW(PH10) | \
1168 PIN_ODR_LEVEL_LOW(PH11) | \
1169 PIN_ODR_LEVEL_LOW(PH12) | \
1170 PIN_ODR_LEVEL_LOW(PH13) | \
1171 PIN_ODR_LEVEL_LOW(PH14) | \
1172 PIN_ODR_LEVEL_LOW(PH15))
1173
1174#define VAL_GPIOH_AFRL (PIN_AFIO_AF(PH00_OSC_IN, 0) | \
1175 PIN_AFIO_AF(PH01_OSC_OUT, 0) | \
1176 PIN_AFIO_AF(PH02, 0) | \
1177 PIN_AFIO_AF(PH03, 0) | \
1178 PIN_AFIO_AF(PH04, 0) | \
1179 PIN_AFIO_AF(PH05, 0) | \
1180 PIN_AFIO_AF(PH06, 0) | \
1181 PIN_AFIO_AF(PH07, 0))
1182
1183#define VAL_GPIOH_AFRH (PIN_AFIO_AF(PH08, 0) | \
1184 PIN_AFIO_AF(PH09, 0) | \
1185 PIN_AFIO_AF(PH10, 0) | \
1186 PIN_AFIO_AF(PH11, 0) | \
1187 PIN_AFIO_AF(PH12, 0) | \
1188 PIN_AFIO_AF(PH13, 0) | \
1189 PIN_AFIO_AF(PH14, 0) | \
1190 PIN_AFIO_AF(PH15, 0))
1191
1192#define VAL_GPIOI_MODER (PIN_MODE_INPUT(PI00) | \
1193 PIN_MODE_INPUT(PI01) | \
1194 PIN_MODE_INPUT(PI02) | \
1195 PIN_MODE_INPUT(PI03) | \
1196 PIN_MODE_INPUT(PI04) | \
1197 PIN_MODE_INPUT(PI05) | \
1198 PIN_MODE_INPUT(PI06) | \
1199 PIN_MODE_INPUT(PI07) | \
1200 PIN_MODE_INPUT(PI08) | \
1201 PIN_MODE_INPUT(PI09) | \
1202 PIN_MODE_INPUT(PI10) | \
1203 PIN_MODE_INPUT(PI11) | \
1204 PIN_MODE_INPUT(PI12) | \
1205 PIN_MODE_INPUT(PI13) | \
1206 PIN_MODE_INPUT(PI14) | \
1207 PIN_MODE_INPUT(PI15))
1208
1209#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(PI00) | \
1210 PIN_OTYPE_PUSHPULL(PI01) | \
1211 PIN_OTYPE_PUSHPULL(PI02) | \
1212 PIN_OTYPE_PUSHPULL(PI03) | \
1213 PIN_OTYPE_PUSHPULL(PI04) | \
1214 PIN_OTYPE_PUSHPULL(PI05) | \
1215 PIN_OTYPE_PUSHPULL(PI06) | \
1216 PIN_OTYPE_PUSHPULL(PI07) | \
1217 PIN_OTYPE_PUSHPULL(PI08) | \
1218 PIN_OTYPE_PUSHPULL(PI09) | \
1219 PIN_OTYPE_PUSHPULL(PI10) | \
1220 PIN_OTYPE_PUSHPULL(PI11) | \
1221 PIN_OTYPE_PUSHPULL(PI12) | \
1222 PIN_OTYPE_PUSHPULL(PI13) | \
1223 PIN_OTYPE_PUSHPULL(PI14) | \
1224 PIN_OTYPE_PUSHPULL(PI15))
1225
1226#define VAL_GPIOI_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PI00) | \
1227 PIN_OSPEED_SPEED_VERYLOW(PI01) | \
1228 PIN_OSPEED_SPEED_VERYLOW(PI02) | \
1229 PIN_OSPEED_SPEED_VERYLOW(PI03) | \
1230 PIN_OSPEED_SPEED_VERYLOW(PI04) | \
1231 PIN_OSPEED_SPEED_VERYLOW(PI05) | \
1232 PIN_OSPEED_SPEED_VERYLOW(PI06) | \
1233 PIN_OSPEED_SPEED_VERYLOW(PI07) | \
1234 PIN_OSPEED_SPEED_VERYLOW(PI08) | \
1235 PIN_OSPEED_SPEED_VERYLOW(PI09) | \
1236 PIN_OSPEED_SPEED_VERYLOW(PI10) | \
1237 PIN_OSPEED_SPEED_VERYLOW(PI11) | \
1238 PIN_OSPEED_SPEED_VERYLOW(PI12) | \
1239 PIN_OSPEED_SPEED_VERYLOW(PI13) | \
1240 PIN_OSPEED_SPEED_VERYLOW(PI14) | \
1241 PIN_OSPEED_SPEED_VERYLOW(PI15))
1242
1243#define VAL_GPIOI_PUPDR (PIN_PUPDR_PULLDOWN(PI00) | \
1244 PIN_PUPDR_PULLDOWN(PI01) | \
1245 PIN_PUPDR_PULLDOWN(PI02) | \
1246 PIN_PUPDR_PULLDOWN(PI03) | \
1247 PIN_PUPDR_PULLDOWN(PI04) | \
1248 PIN_PUPDR_PULLDOWN(PI05) | \
1249 PIN_PUPDR_PULLDOWN(PI06) | \
1250 PIN_PUPDR_PULLDOWN(PI07) | \
1251 PIN_PUPDR_PULLDOWN(PI08) | \
1252 PIN_PUPDR_PULLDOWN(PI09) | \
1253 PIN_PUPDR_PULLDOWN(PI10) | \
1254 PIN_PUPDR_PULLDOWN(PI11) | \
1255 PIN_PUPDR_PULLDOWN(PI12) | \
1256 PIN_PUPDR_PULLDOWN(PI13) | \
1257 PIN_PUPDR_PULLDOWN(PI14) | \
1258 PIN_PUPDR_PULLDOWN(PI15))
1259
1260#define VAL_GPIOI_ODR (PIN_ODR_LEVEL_LOW(PI00) | \
1261 PIN_ODR_LEVEL_LOW(PI01) | \
1262 PIN_ODR_LEVEL_LOW(PI02) | \
1263 PIN_ODR_LEVEL_LOW(PI03) | \
1264 PIN_ODR_LEVEL_LOW(PI04) | \
1265 PIN_ODR_LEVEL_LOW(PI05) | \
1266 PIN_ODR_LEVEL_LOW(PI06) | \
1267 PIN_ODR_LEVEL_LOW(PI07) | \
1268 PIN_ODR_LEVEL_LOW(PI08) | \
1269 PIN_ODR_LEVEL_LOW(PI09) | \
1270 PIN_ODR_LEVEL_LOW(PI10) | \
1271 PIN_ODR_LEVEL_LOW(PI11) | \
1272 PIN_ODR_LEVEL_LOW(PI12) | \
1273 PIN_ODR_LEVEL_LOW(PI13) | \
1274 PIN_ODR_LEVEL_LOW(PI14) | \
1275 PIN_ODR_LEVEL_LOW(PI15))
1276
1277#define VAL_GPIOI_AFRL (PIN_AFIO_AF(PI00, 0) | \
1278 PIN_AFIO_AF(PI01, 0) | \
1279 PIN_AFIO_AF(PI02, 0) | \
1280 PIN_AFIO_AF(PI03, 0) | \
1281 PIN_AFIO_AF(PI04, 0) | \
1282 PIN_AFIO_AF(PI05, 0) | \
1283 PIN_AFIO_AF(PI06, 0) | \
1284 PIN_AFIO_AF(PI07, 0))
1285
1286#define VAL_GPIOI_AFRH (PIN_AFIO_AF(PI08, 0) | \
1287 PIN_AFIO_AF(PI09, 0) | \
1288 PIN_AFIO_AF(PI10, 0) | \
1289 PIN_AFIO_AF(PI11, 0) | \
1290 PIN_AFIO_AF(PI12, 0) | \
1291 PIN_AFIO_AF(PI13, 0) | \
1292 PIN_AFIO_AF(PI14, 0) | \
1293 PIN_AFIO_AF(PI15, 0))
1294
1295#define VAL_GPIOJ_MODER (PIN_MODE_INPUT(PJ00) | \
1296 PIN_MODE_INPUT(PJ01) | \
1297 PIN_MODE_INPUT(PJ02) | \
1298 PIN_MODE_INPUT(PJ03) | \
1299 PIN_MODE_INPUT(PJ04) | \
1300 PIN_MODE_INPUT(PJ05) | \
1301 PIN_MODE_INPUT(PJ06) | \
1302 PIN_MODE_INPUT(PJ07) | \
1303 PIN_MODE_INPUT(PJ08) | \
1304 PIN_MODE_INPUT(PJ09) | \
1305 PIN_MODE_INPUT(PJ10) | \
1306 PIN_MODE_INPUT(PJ11) | \
1307 PIN_MODE_INPUT(PJ12) | \
1308 PIN_MODE_INPUT(PJ13) | \
1309 PIN_MODE_INPUT(PJ14) | \
1310 PIN_MODE_INPUT(PJ15))
1311
1312#define VAL_GPIOJ_OTYPER (PIN_OTYPE_PUSHPULL(PJ00) | \
1313 PIN_OTYPE_PUSHPULL(PJ01) | \
1314 PIN_OTYPE_PUSHPULL(PJ02) | \
1315 PIN_OTYPE_PUSHPULL(PJ03) | \
1316 PIN_OTYPE_PUSHPULL(PJ04) | \
1317 PIN_OTYPE_PUSHPULL(PJ05) | \
1318 PIN_OTYPE_PUSHPULL(PJ06) | \
1319 PIN_OTYPE_PUSHPULL(PJ07) | \
1320 PIN_OTYPE_PUSHPULL(PJ08) | \
1321 PIN_OTYPE_PUSHPULL(PJ09) | \
1322 PIN_OTYPE_PUSHPULL(PJ10) | \
1323 PIN_OTYPE_PUSHPULL(PJ11) | \
1324 PIN_OTYPE_PUSHPULL(PJ12) | \
1325 PIN_OTYPE_PUSHPULL(PJ13) | \
1326 PIN_OTYPE_PUSHPULL(PJ14) | \
1327 PIN_OTYPE_PUSHPULL(PJ15))
1328
1329#define VAL_GPIOJ_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PJ00) | \
1330 PIN_OSPEED_SPEED_VERYLOW(PJ01) | \
1331 PIN_OSPEED_SPEED_VERYLOW(PJ02) | \
1332 PIN_OSPEED_SPEED_VERYLOW(PJ03) | \
1333 PIN_OSPEED_SPEED_VERYLOW(PJ04) | \
1334 PIN_OSPEED_SPEED_VERYLOW(PJ05) | \
1335 PIN_OSPEED_SPEED_VERYLOW(PJ06) | \
1336 PIN_OSPEED_SPEED_VERYLOW(PJ07) | \
1337 PIN_OSPEED_SPEED_VERYLOW(PJ08) | \
1338 PIN_OSPEED_SPEED_VERYLOW(PJ09) | \
1339 PIN_OSPEED_SPEED_VERYLOW(PJ10) | \
1340 PIN_OSPEED_SPEED_VERYLOW(PJ11) | \
1341 PIN_OSPEED_SPEED_VERYLOW(PJ12) | \
1342 PIN_OSPEED_SPEED_VERYLOW(PJ13) | \
1343 PIN_OSPEED_SPEED_VERYLOW(PJ14) | \
1344 PIN_OSPEED_SPEED_VERYLOW(PJ15))
1345
1346#define VAL_GPIOJ_PUPDR (PIN_PUPDR_PULLDOWN(PJ00) | \
1347 PIN_PUPDR_PULLDOWN(PJ01) | \
1348 PIN_PUPDR_PULLDOWN(PJ02) | \
1349 PIN_PUPDR_PULLDOWN(PJ03) | \
1350 PIN_PUPDR_PULLDOWN(PJ04) | \
1351 PIN_PUPDR_PULLDOWN(PJ05) | \
1352 PIN_PUPDR_PULLDOWN(PJ06) | \
1353 PIN_PUPDR_PULLDOWN(PJ07) | \
1354 PIN_PUPDR_PULLDOWN(PJ08) | \
1355 PIN_PUPDR_PULLDOWN(PJ09) | \
1356 PIN_PUPDR_PULLDOWN(PJ10) | \
1357 PIN_PUPDR_PULLDOWN(PJ11) | \
1358 PIN_PUPDR_PULLDOWN(PJ12) | \
1359 PIN_PUPDR_PULLDOWN(PJ13) | \
1360 PIN_PUPDR_PULLDOWN(PJ14) | \
1361 PIN_PUPDR_PULLDOWN(PJ15))
1362
1363#define VAL_GPIOJ_ODR (PIN_ODR_LEVEL_LOW(PJ00) | \
1364 PIN_ODR_LEVEL_LOW(PJ01) | \
1365 PIN_ODR_LEVEL_LOW(PJ02) | \
1366 PIN_ODR_LEVEL_LOW(PJ03) | \
1367 PIN_ODR_LEVEL_LOW(PJ04) | \
1368 PIN_ODR_LEVEL_LOW(PJ05) | \
1369 PIN_ODR_LEVEL_LOW(PJ06) | \
1370 PIN_ODR_LEVEL_LOW(PJ07) | \
1371 PIN_ODR_LEVEL_LOW(PJ08) | \
1372 PIN_ODR_LEVEL_LOW(PJ09) | \
1373 PIN_ODR_LEVEL_LOW(PJ10) | \
1374 PIN_ODR_LEVEL_LOW(PJ11) | \
1375 PIN_ODR_LEVEL_LOW(PJ12) | \
1376 PIN_ODR_LEVEL_LOW(PJ13) | \
1377 PIN_ODR_LEVEL_LOW(PJ14) | \
1378 PIN_ODR_LEVEL_LOW(PJ15))
1379
1380#define VAL_GPIOJ_AFRL (PIN_AFIO_AF(PJ00, 0) | \
1381 PIN_AFIO_AF(PJ01, 0) | \
1382 PIN_AFIO_AF(PJ02, 0) | \
1383 PIN_AFIO_AF(PJ03, 0) | \
1384 PIN_AFIO_AF(PJ04, 0) | \
1385 PIN_AFIO_AF(PJ05, 0) | \
1386 PIN_AFIO_AF(PJ06, 0) | \
1387 PIN_AFIO_AF(PJ07, 0))
1388
1389#define VAL_GPIOJ_AFRH (PIN_AFIO_AF(PJ08, 0) | \
1390 PIN_AFIO_AF(PJ09, 0) | \
1391 PIN_AFIO_AF(PJ10, 0) | \
1392 PIN_AFIO_AF(PJ11, 0) | \
1393 PIN_AFIO_AF(PJ12, 0) | \
1394 PIN_AFIO_AF(PJ13, 0) | \
1395 PIN_AFIO_AF(PJ14, 0) | \
1396 PIN_AFIO_AF(PJ15, 0))
1397
1398#define VAL_GPIOK_MODER (PIN_MODE_INPUT(PK00) | \
1399 PIN_MODE_INPUT(PK01) | \
1400 PIN_MODE_INPUT(PK02) | \
1401 PIN_MODE_INPUT(PK03) | \
1402 PIN_MODE_INPUT(PK04) | \
1403 PIN_MODE_INPUT(PK05) | \
1404 PIN_MODE_INPUT(PK06) | \
1405 PIN_MODE_INPUT(PK07) | \
1406 PIN_MODE_INPUT(PK08) | \
1407 PIN_MODE_INPUT(PK09) | \
1408 PIN_MODE_INPUT(PK10) | \
1409 PIN_MODE_INPUT(PK11) | \
1410 PIN_MODE_INPUT(PK12) | \
1411 PIN_MODE_INPUT(PK13) | \
1412 PIN_MODE_INPUT(PK14) | \
1413 PIN_MODE_INPUT(PK15))
1414
1415#define VAL_GPIOK_OTYPER (PIN_OTYPE_PUSHPULL(PK00) | \
1416 PIN_OTYPE_PUSHPULL(PK01) | \
1417 PIN_OTYPE_PUSHPULL(PK02) | \
1418 PIN_OTYPE_PUSHPULL(PK03) | \
1419 PIN_OTYPE_PUSHPULL(PK04) | \
1420 PIN_OTYPE_PUSHPULL(PK05) | \
1421 PIN_OTYPE_PUSHPULL(PK06) | \
1422 PIN_OTYPE_PUSHPULL(PK07) | \
1423 PIN_OTYPE_PUSHPULL(PK08) | \
1424 PIN_OTYPE_PUSHPULL(PK09) | \
1425 PIN_OTYPE_PUSHPULL(PK10) | \
1426 PIN_OTYPE_PUSHPULL(PK11) | \
1427 PIN_OTYPE_PUSHPULL(PK12) | \
1428 PIN_OTYPE_PUSHPULL(PK13) | \
1429 PIN_OTYPE_PUSHPULL(PK14) | \
1430 PIN_OTYPE_PUSHPULL(PK15))
1431
1432#define VAL_GPIOK_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PK00) | \
1433 PIN_OSPEED_SPEED_VERYLOW(PK01) | \
1434 PIN_OSPEED_SPEED_VERYLOW(PK02) | \
1435 PIN_OSPEED_SPEED_VERYLOW(PK03) | \
1436 PIN_OSPEED_SPEED_VERYLOW(PK04) | \
1437 PIN_OSPEED_SPEED_VERYLOW(PK05) | \
1438 PIN_OSPEED_SPEED_VERYLOW(PK06) | \
1439 PIN_OSPEED_SPEED_VERYLOW(PK07) | \
1440 PIN_OSPEED_SPEED_VERYLOW(PK08) | \
1441 PIN_OSPEED_SPEED_VERYLOW(PK09) | \
1442 PIN_OSPEED_SPEED_VERYLOW(PK10) | \
1443 PIN_OSPEED_SPEED_VERYLOW(PK11) | \
1444 PIN_OSPEED_SPEED_VERYLOW(PK12) | \
1445 PIN_OSPEED_SPEED_VERYLOW(PK13) | \
1446 PIN_OSPEED_SPEED_VERYLOW(PK14) | \
1447 PIN_OSPEED_SPEED_VERYLOW(PK15))
1448
1449#define VAL_GPIOK_PUPDR (PIN_PUPDR_PULLDOWN(PK00) | \
1450 PIN_PUPDR_PULLDOWN(PK01) | \
1451 PIN_PUPDR_PULLDOWN(PK02) | \
1452 PIN_PUPDR_PULLDOWN(PK03) | \
1453 PIN_PUPDR_PULLDOWN(PK04) | \
1454 PIN_PUPDR_PULLDOWN(PK05) | \
1455 PIN_PUPDR_PULLDOWN(PK06) | \
1456 PIN_PUPDR_PULLDOWN(PK07) | \
1457 PIN_PUPDR_PULLDOWN(PK08) | \
1458 PIN_PUPDR_PULLDOWN(PK09) | \
1459 PIN_PUPDR_PULLDOWN(PK10) | \
1460 PIN_PUPDR_PULLDOWN(PK11) | \
1461 PIN_PUPDR_PULLDOWN(PK12) | \
1462 PIN_PUPDR_PULLDOWN(PK13) | \
1463 PIN_PUPDR_PULLDOWN(PK14) | \
1464 PIN_PUPDR_PULLDOWN(PK15))
1465
1466#define VAL_GPIOK_ODR (PIN_ODR_LEVEL_LOW(PK00) | \
1467 PIN_ODR_LEVEL_LOW(PK01) | \
1468 PIN_ODR_LEVEL_LOW(PK02) | \
1469 PIN_ODR_LEVEL_LOW(PK03) | \
1470 PIN_ODR_LEVEL_LOW(PK04) | \
1471 PIN_ODR_LEVEL_LOW(PK05) | \
1472 PIN_ODR_LEVEL_LOW(PK06) | \
1473 PIN_ODR_LEVEL_LOW(PK07) | \
1474 PIN_ODR_LEVEL_LOW(PK08) | \
1475 PIN_ODR_LEVEL_LOW(PK09) | \
1476 PIN_ODR_LEVEL_LOW(PK10) | \
1477 PIN_ODR_LEVEL_LOW(PK11) | \
1478 PIN_ODR_LEVEL_LOW(PK12) | \
1479 PIN_ODR_LEVEL_LOW(PK13) | \
1480 PIN_ODR_LEVEL_LOW(PK14) | \
1481 PIN_ODR_LEVEL_LOW(PK15))
1482
1483#define VAL_GPIOK_AFRL (PIN_AFIO_AF(PK00, 0) | \
1484 PIN_AFIO_AF(PK01, 0) | \
1485 PIN_AFIO_AF(PK02, 0) | \
1486 PIN_AFIO_AF(PK03, 0) | \
1487 PIN_AFIO_AF(PK04, 0) | \
1488 PIN_AFIO_AF(PK05, 0) | \
1489 PIN_AFIO_AF(PK06, 0) | \
1490 PIN_AFIO_AF(PK07, 0))
1491
1492#define VAL_GPIOK_AFRH (PIN_AFIO_AF(PK08, 0) | \
1493 PIN_AFIO_AF(PK09, 0) | \
1494 PIN_AFIO_AF(PK10, 0) | \
1495 PIN_AFIO_AF(PK11, 0) | \
1496 PIN_AFIO_AF(PK12, 0) | \
1497 PIN_AFIO_AF(PK13, 0) | \
1498 PIN_AFIO_AF(PK14, 0) | \
1499 PIN_AFIO_AF(PK15, 0))
1500
1501#define AF_PA00_SERVO3 2U
1502#define AF_LINE_SERVO3 2U
1503#define AF_PA01_SERVO4 2U
1504#define AF_LINE_SERVO4 2U
1505#define AF_PA02_SERVO5 2U
1506#define AF_LINE_SERVO5 2U
1507#define AF_PA03_SERVO6 2U
1508#define AF_LINE_SERVO6 2U
1509#define AF_PA05_SPI1_SCK 5U
1510#define AF_LINE_SPI1_SCK 5U
1511#define AF_PA06_SPI1_MISO 5U
1512#define AF_LINE_SPI1_MISO 5U
1513#define AF_PA08_LED_WS2812 1U
1514#define AF_LINE_LED_WS2812 1U
1515#define AF_PA09_UART1_TX 7U
1516#define AF_LINE_UART1_TX 7U
1517#define AF_PA10_UART1_RX 7U
1518#define AF_LINE_UART1_RX 7U
1519#define AF_PA11_USB_DM 10U
1520#define AF_LINE_USB_DM 10U
1521#define AF_PA12_USB_DP 10U
1522#define AF_LINE_USB_DP 10U
1523#define AF_PA13_SWDIO 0U
1524#define AF_LINE_SWDIO 0U
1525#define AF_PA14_SWCLK 0U
1526#define AF_LINE_SWCLK 0U
1527#define AF_PA15_ALARM 1U
1528#define AF_LINE_ALARM 1U
1529#define AF_PB00_SERVO1 2U
1530#define AF_LINE_SERVO1 2U
1531#define AF_PB01_SERVO2 2U
1532#define AF_LINE_SERVO2 2U
1533#define AF_PB03_SPI3_SCK 6U
1534#define AF_LINE_SPI3_SCK 6U
1535#define AF_PB04_SPI3_MISO 6U
1536#define AF_LINE_SPI3_MISO 6U
1537#define AF_PB05_SPI3_MOSI 7U
1538#define AF_LINE_SPI3_MOSI 7U
1539#define AF_PB06_I2C1_SCL 4U
1540#define AF_LINE_I2C1_SCL 4U
1541#define AF_PB07_I2C1_SDA 4U
1542#define AF_LINE_I2C1_SDA 4U
1543#define AF_PB08_UART4_RX 8U
1544#define AF_LINE_UART4_RX 8U
1545#define AF_PB09_UART4_TX 8U
1546#define AF_LINE_UART4_TX 8U
1547#define AF_PB10_I2C2_SCL 4U
1548#define AF_LINE_I2C2_SCL 4U
1549#define AF_PB11_I2C2_SDA 4U
1550#define AF_LINE_I2C2_SDA 4U
1551#define AF_PB13_SPI2_SCK 5U
1552#define AF_LINE_SPI2_SCK 5U
1553#define AF_PB14_SPI2_MISO 5U
1554#define AF_LINE_SPI2_MISO 5U
1555#define AF_PB15_SPI2_MOSI 5U
1556#define AF_LINE_SPI2_MOSI 5U
1557#define AF_PC06_UART6_TX 7U
1558#define AF_LINE_UART6_TX 7U
1559#define AF_PC08_SDIO_D0 12U
1560#define AF_LINE_SDIO_D0 12U
1561#define AF_PC09_SDIO_D1 12U
1562#define AF_LINE_SDIO_D1 12U
1563#define AF_PC10_SDIO_D2 12U
1564#define AF_LINE_SDIO_D2 12U
1565#define AF_PC11_SDIO_D3 12U
1566#define AF_LINE_SDIO_D3 12U
1567#define AF_PC12_SDIO_CK 12U
1568#define AF_LINE_SDIO_CK 12U
1569#define AF_PD00_CAN1_RX 9U
1570#define AF_LINE_CAN1_RX 9U
1571#define AF_PD01_CAN1_TX 9U
1572#define AF_LINE_CAN1_TX 9U
1573#define AF_PD02_SDIO_CMD 12U
1574#define AF_LINE_SDIO_CMD 12U
1575#define AF_PD05_UART2_TX 7U
1576#define AF_LINE_UART2_TX 7U
1577#define AF_PD06_UART2_RX 7U
1578#define AF_LINE_UART2_RX 7U
1579#define AF_PD07_SPI1_MOSI 5U
1580#define AF_LINE_SPI1_MOSI 5U
1581#define AF_PD08_UART3_TX 7U
1582#define AF_LINE_UART3_TX 7U
1583#define AF_PD09_UART3_RX 7U
1584#define AF_LINE_UART3_RX 7U
1585#define AF_PD12_SERVO7 2U
1586#define AF_LINE_SERVO7 2U
1587#define AF_PD13_SERVO8 2U
1588#define AF_LINE_SERVO8 2U
1589#define AF_PD14_SERVO9 2U
1590#define AF_LINE_SERVO9 2U
1591#define AF_PD15_SERVO10 2U
1592#define AF_LINE_SERVO10 2U
1593#define AF_PE00_UART8_RX 8U
1594#define AF_LINE_UART8_RX 8U
1595#define AF_PE01_UART8_TX 8U
1596#define AF_LINE_UART8_TX 8U
1597#define AF_PE05_SERVO11 4U
1598#define AF_LINE_SERVO11 4U
1599#define AF_PE06_SERVO12 4U
1600#define AF_LINE_SERVO12 4U
1601#define AF_PE07_UART7_RX 7U
1602#define AF_LINE_UART7_RX 7U
1603#define AF_PE08_UART7_TX 7U
1604#define AF_LINE_UART7_TX 7U
1605#define AF_PE12_SPI4_CLK 5U
1606#define AF_LINE_SPI4_CLK 5U
1607#define AF_PE13_SPI4_MISO 5U
1608#define AF_LINE_SPI4_MISO 5U
1609#define AF_PE14_SPI4_MOSI 5U
1610#define AF_LINE_SPI4_MOSI 5U
1611#define AF_PH00_OSC_IN 0U
1612#define AF_LINE_OSC_IN 0U
1613#define AF_PH01_OSC_OUT 0U
1614#define AF_LINE_OSC_OUT 0U
1615
1616
1617#define SERVO3_TIM 5
1618#define SERVO3_TIM_FN CH
1619#define SERVO3_TIM_CH 1
1620#define SERVO3_TIM_AF 2
1621#define SERVO4_TIM 5
1622#define SERVO4_TIM_FN CH
1623#define SERVO4_TIM_CH 2
1624#define SERVO4_TIM_AF 2
1625#define SERVO5_TIM 5
1626#define SERVO5_TIM_FN CH
1627#define SERVO5_TIM_CH 3
1628#define SERVO5_TIM_AF 2
1629#define SERVO6_TIM 5
1630#define SERVO6_TIM_FN CH
1631#define SERVO6_TIM_CH 4
1632#define SERVO6_TIM_AF 2
1633#define ADC3_ADC 1
1634#define ADC3_ADC_FN INP
1635#define ADC3_ADC_INP 18
1636#define ADC4_ADC 1
1637#define ADC4_ADC_FN INP
1638#define ADC4_ADC_INP 7
1639#define LED_WS2812_TIM 1
1640#define LED_WS2812_TIM_FN CH
1641#define LED_WS2812_TIM_CH 1
1642#define LED_WS2812_TIM_AF 1
1643#define ALARM_TIM 2
1644#define ALARM_TIM_FN CH
1645#define ALARM_TIM_CH 1
1646#define ALARM_TIM_AF 1
1647#define SERVO1_TIM 3
1648#define SERVO1_TIM_FN CH
1649#define SERVO1_TIM_CH 3
1650#define SERVO1_TIM_AF 2
1651#define SERVO2_TIM 3
1652#define SERVO2_TIM_FN CH
1653#define SERVO2_TIM_CH 4
1654#define SERVO2_TIM_AF 2
1655#define ADC5_ADC 1
1656#define ADC5_ADC_FN INP
1657#define ADC5_ADC_INP 10
1658#define ADC6_ADC 1
1659#define ADC6_ADC_FN INP
1660#define ADC6_ADC_INP 11
1661#define ADC1_ADC 1
1662#define ADC1_ADC_FN INP
1663#define ADC1_ADC_INP 8
1664#define ADC2_ADC 1
1665#define ADC2_ADC_FN INP
1666#define ADC2_ADC_INP 4
1667#define RC1_TIM 3
1668#define RC1_TIM_FN CH
1669#define RC1_TIM_CH 2
1670#define RC1_TIM_AF 2
1671#define RC1_USART 6
1672#define RC1_USART_FN RX
1673#define RC1_USART_AF 7
1674#define SERVO7_TIM 4
1675#define SERVO7_TIM_FN CH
1676#define SERVO7_TIM_CH 1
1677#define SERVO7_TIM_AF 2
1678#define SERVO8_TIM 4
1679#define SERVO8_TIM_FN CH
1680#define SERVO8_TIM_CH 2
1681#define SERVO8_TIM_AF 2
1682#define SERVO9_TIM 4
1683#define SERVO9_TIM_FN CH
1684#define SERVO9_TIM_CH 3
1685#define SERVO9_TIM_AF 2
1686#define SERVO10_TIM 4
1687#define SERVO10_TIM_FN CH
1688#define SERVO10_TIM_CH 4
1689#define SERVO10_TIM_AF 2
1690#define SERVO11_TIM 15
1691#define SERVO11_TIM_FN CH
1692#define SERVO11_TIM_CH 1
1693#define SERVO11_TIM_AF 4
1694#define SERVO12_TIM 15
1695#define SERVO12_TIM_FN CH
1696#define SERVO12_TIM_CH 2
1697#define SERVO12_TIM_AF 4
1698
1699#define BOARD_GROUP_DECLFOREACH(line, group) \
1700 static const ioline_t group ## _ARRAY[] = {group}; \
1701 for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1702
1703#define BOARD_GROUP_FOREACH(line, group) \
1704 for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1705
1706
1707#define BOARD_GROUP_DECLFOR(array, index, group) \
1708 static const ioline_t group ## _ARRAY[] = {group}; \
1709 for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1710
1711#define BOARD_GROUP_FOR(array, index, group) \
1712 for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1713
1714#define ENERGY_SAVE_INPUTS \
1715 LINE_SERVO3, \
1716 LINE_SERVO4, \
1717 LINE_SERVO5, \
1718 LINE_SERVO6, \
1719 LINE_SERVO1, \
1720 LINE_SERVO2, \
1721 LINE_SPI_SLAVE4, \
1722 LINE_SPI_SLAVE6, \
1723 LINE_SPI_SLAVE5, \
1724 LINE_SPI_SLAVE1, \
1725 LINE_SERVO7, \
1726 LINE_SERVO8, \
1727 LINE_SERVO9, \
1728 LINE_SERVO10, \
1729 LINE_SPI_SLAVE2, \
1730 LINE_LED1, \
1731 LINE_LED2, \
1732 LINE_SERVO11, \
1733 LINE_SERVO12, \
1734 LINE_SPI_SLAVE3
1735#define ENERGY_SAVE_INPUTS_SIZE 20
1736
1737#define ENERGY_SAVE_LOWS \
1738 LINE_ALARM
1739#define ENERGY_SAVE_LOWS_SIZE 1
1740
1741#if !defined(_FROM_ASM_)
1742#ifdef __cplusplus
1743extern "C" {
1744#endif
1745 void boardInit(void);
1746#ifdef __cplusplus
1747}
1748#endif
1749#endif /* _FROM_ASM_ */
1750
void boardInit(void)
Board-specific initialization code.
Definition board.c:317