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