Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
board.h
Go to the documentation of this file.
1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#pragma once
18
19/*
20 * Board identifier.
21 */
22#define BOARD_PX4FMU_6X
23#define BOARD_NAME "PX4FMU 6X"
24
25/*
26 * Board oscillators-related settings.
27 */
28#if !defined(STM32_LSECLK)
29#define STM32_LSECLK 32768U
30#endif
31
32#define STM32_LSEDRV (3U << 3U)
33
34#if !defined(STM32_HSECLK)
35#define STM32_HSECLK 16000000U
36#endif
37
38/*
39 * MCU type as defined in the ST header.
40 */
41#define STM32H753xx
42#define MCUCONF_H7
43
44/*
45 * PWM TIM defines
46 * enable TIM4, TIM5 and TIM12 by default
47 */
48#ifndef USE_PWM_TIM4
49#define USE_PWM_TIM4 1
50#endif
51
52#ifndef USE_PWM_TIM5
53#define USE_PWM_TIM5 1
54#endif
55
56#ifndef USE_PWM_TIM12
57//#define USE_PWM_TIM12 1
58#endif
59
60/*
61 * IO pins assignments.
62 */
63#define PA00_ADC1 0U
64#define PA01_ETH_RMII_REF_CLK 1U
65#define PA02_ETH_MDIO 2U
66#define PA03_UART2 3U
67#define PA04_ADC2 4U
68#define PA05_SPI1_SCK 5U
69#define PA06_SPI6_MISO 6U
70#define PA07_ETH_RMII_CRS_DV 7U
71#define PA08_I2C3_SCL 8U
72#define PA09_USB_VBUS 9U
73#define PA10_SPI2_DRDY 10U
74#define PA11_USB_DM 11U
75#define PA12_USB_DP 12U
76#define PA13_SWDIO 13U
77#define PA14_SWCLK 14U
78#define PA15 15U
79
80#define PB00_ADC3 0U
81#define PB01_ADC5 1U
82#define PB02_SPI3_MOSI 2U
83#define PB03_SPI6_SCK 3U
84#define PB04_SDIO_D3 4U
85#define PB05_SPI1_MOSI 5U
86#define PB06_UART1_TX 6U
87#define PB07_UART1_RX 7U
88#define PB08_I2C1_SCL 8U
89#define PB09_I2C1_SDA 9U
90#define PB10_IMU_HEATER 10U
91#define PB11_ETH_RMII_TX_EN 11U
92#define PB12_CAN2_RX 12U
93#define PB13_CAN2_TX 13U
94#define PB14_SDIO_D0 14U
95#define PB15_SDIO_D1 15U
96
97#define PC00_NFC_GPIO 0U
98#define PC01_ETH_MDC 1U
99#define PC02_ADC6 2U
100#define PC03_ADC7 3U
101#define PC04_ETH_RMII_RXD0 4U
102#define PC05_ETH_RMII_RXD1 5U
103#define PC06_UART6_TX 6U
104#define PC07_UART6_RX 7U
105#define PC08_UART5_RTS 8U
106#define PC09_UART5_CTS 9U
107#define PC10_SPI3_SCK 10U
108#define PC11_SPI3_MISO 11U
109#define PC12_UART5_TX 12U
110#define PC13_VDD_3V3_SD_CARD_EN 13U
111#define PC14 14U
112#define PC15 15U
113
114#define PD00_CAN1_RX 0U
115#define PD01_CAN1_TX 1U
116#define PD02_UART5_RX 2U
117#define PD03_UART2_CTS 3U
118#define PD04_UART2_RTS 4U
119#define PD05_UART2_TX 5U
120#define PD06_SDIO_CK 6U
121#define PD07_SDIO_CMD 7U
122#define PD08_UART3_TX 8U
123#define PD09_UART3_RX 9U
124#define PD10_LED4 10U
125#define PD11 11U
126#define PD12 12U
127#define PD13_SERVO5 13U
128#define PD14_SERVO6 14U
129#define PD15 15U
130
131#define PE00_UART8_RX 0U
132#define PE01_UART8_TX 1U
133#define PE02 2U
134#define PE03_LED1 3U
135#define PE04_LED2 4U
136#define PE05_LED3 5U
137#define PE06_NARMED 6U
138#define PE07_VDD_3V3_SENSORS3_EN 7U
139#define PE08_UART7_TX 8U
140#define PE09 9U
141#define PE10_UART7_CTS 10U
142#define PE11_FMU_CAP1 11U
143#define PE12_SPI4_SCK 12U
144#define PE13_SPI4_MISO 13U
145#define PE14_SPI4_MOSI 14U
146#define PE15_VDD_5V_PERIPH_OC 15U
147
148#define PF00_I2C2_SDA 0U
149#define PF01_I2C2_SCL 1U
150#define PF02 2U
151#define PF03_SPI4_DRDY1 3U
152#define PF04_VDD_3V3_SENSORS2_EN 4U
153#define PF05_SAFETY_IN 5U
154#define PF06_UART7_RX 6U
155#define PF07_SPI5_SCK 7U
156#define PF08_UART7_RTS 8U
157#define PF09_ALARM 9U
158#define PF10 10U
159#define PF11_SPI5_MOSI 11U
160#define PF12_ADC4 12U
161#define PF13_VDD_5V_HIPOWER_OC 13U
162#define PF14_I2C4_SCL 14U
163#define PF15_I2C4_SDA 15U
164
165#define PG00_HW_VER_REV_DRIVE 0U
166#define PG01_VDD_BRICK_VALID 1U
167#define PG02_VDD_BRICK2_VALID 2U
168#define PG03_VDD_BRICK3_VALID 3U
169#define PG04_VDD_5V_PERIPH_EN 4U
170#define PG05_DRDY1_BMP388 5U
171#define PG06 6U
172#define PG07_SPI_SLAVE6 7U
173#define PG08_VDD_3V3_SENSORS4_EN 8U
174#define PG09_SPI1_MISO 9U
175#define PG10_VDD_5V_HIPOWER_EN 10U
176#define PG11_SDIO_D2 11U
177#define PG12_ETH_RMII_TXD1 12U
178#define PG13_ETH_RMII_TXD0 13U
179#define PG14_SPI6_MOSI 14U
180#define PG15_ETH_POWER_EN 15U
181
182#define PH00_OSC_IN 0U
183#define PH01_OSC_OUT 1U
184#define PH02_SPEKTRUM_PWR_EN 2U
185#define PH03_HW_VER_SENS 3U
186#define PH04_HW_REV_SENS 4U
187#define PH05_SPI_SLAVE2 5U
188#define PH06 6U
189#define PH07_SPI5_MISO 7U
190#define PH08_I2C3_SDA 8U
191#define PH09 9U
192#define PH10_SERVO4 10U
193#define PH11_SERVO3 11U
194#define PH12_SERVO2 12U
195#define PH13_UART4_TX 13U
196#define PH14_UART4_RX 14U
197#define PH15_SPI_SLAVE5 15U
198
199#define PI00_SERVO1 0U
200#define PI01_SPI2_SCK 1U
201#define PI02_SPI2_MISO 2U
202#define PI03_SPI2_MOSI 3U
203#define PI04_SPI_SLAVE3 4U
204#define PI05_PWM_INPUT1 5U
205#define PI06_SPI3_DRDY1 6U
206#define PI07_SPI3_DRDY2 7U
207#define PI08_SPI_SLAVE4 8U
208#define PI09_SPI_SLAVE1 9U
209#define PI10_SPI_SLAVE7 10U
210#define PI11_VDD_3V3_SENSORS1_EN 11U
211#define PI12 12U
212#define PI13 13U
213#define PI14 14U
214#define PI15 15U
215
216#define PJ00 0U
217#define PJ01 1U
218#define PJ02 2U
219#define PJ03 3U
220#define PJ04 4U
221#define PJ05 5U
222#define PJ06 6U
223#define PJ07 7U
224#define PJ08 8U
225#define PJ09 9U
226#define PJ10 10U
227#define PJ11 11U
228#define PJ12 12U
229#define PJ13 13U
230#define PJ14 14U
231#define PJ15 15U
232
233#define PK00 0U
234#define PK01 1U
235#define PK02 2U
236#define PK03 3U
237#define PK04 4U
238#define PK05 5U
239#define PK06 6U
240#define PK07 7U
241#define PK08 8U
242#define PK09 9U
243#define PK10 10U
244#define PK11 11U
245#define PK12 12U
246#define PK13 13U
247#define PK14 14U
248#define PK15 15U
249
250/*
251 * IO lines assignments.
252 */
253#define LINE_ADC1 PAL_LINE(GPIOA, 0U)
254#define LINE_ETH_RMII_REF_CLK PAL_LINE(GPIOA, 1U)
255#define LINE_ETH_MDIO PAL_LINE(GPIOA, 2U)
256#define LINE_UART2 PAL_LINE(GPIOA, 3U)
257#define LINE_ADC2 PAL_LINE(GPIOA, 4U)
258#define LINE_SPI1_SCK PAL_LINE(GPIOA, 5U)
259#define LINE_SPI6_MISO PAL_LINE(GPIOA, 6U)
260#define LINE_ETH_RMII_CRS_DV PAL_LINE(GPIOA, 7U)
261#define LINE_I2C3_SCL PAL_LINE(GPIOA, 8U)
262#define LINE_USB_VBUS PAL_LINE(GPIOA, 9U)
263#define LINE_SPI2_DRDY PAL_LINE(GPIOA, 10U)
264#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
265#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
266#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
267#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
268
269#define LINE_ADC3 PAL_LINE(GPIOB, 0U)
270#define LINE_ADC5 PAL_LINE(GPIOB, 1U)
271#define LINE_SPI3_MOSI PAL_LINE(GPIOB, 2U)
272#define LINE_SPI6_SCK PAL_LINE(GPIOB, 3U)
273#define LINE_SDIO_D3 PAL_LINE(GPIOB, 4U)
274#define LINE_SPI1_MOSI PAL_LINE(GPIOB, 5U)
275#define LINE_UART1_TX PAL_LINE(GPIOB, 6U)
276#define LINE_UART1_RX PAL_LINE(GPIOB, 7U)
277#define LINE_I2C1_SCL PAL_LINE(GPIOB, 8U)
278#define LINE_I2C1_SDA PAL_LINE(GPIOB, 9U)
279#define LINE_IMU_HEATER PAL_LINE(GPIOB, 10U)
280#define LINE_ETH_RMII_TX_EN PAL_LINE(GPIOB, 11U)
281#define LINE_CAN2_RX PAL_LINE(GPIOB, 12U)
282#define LINE_CAN2_TX PAL_LINE(GPIOB, 13U)
283#define LINE_SDIO_D0 PAL_LINE(GPIOB, 14U)
284#define LINE_SDIO_D1 PAL_LINE(GPIOB, 15U)
285
286#define LINE_NFC_GPIO PAL_LINE(GPIOC, 0U)
287#define LINE_ETH_MDC PAL_LINE(GPIOC, 1U)
288#define LINE_ADC6 PAL_LINE(GPIOC, 2U)
289#define LINE_ADC7 PAL_LINE(GPIOC, 3U)
290#define LINE_ETH_RMII_RXD0 PAL_LINE(GPIOC, 4U)
291#define LINE_ETH_RMII_RXD1 PAL_LINE(GPIOC, 5U)
292#define LINE_UART6_TX PAL_LINE(GPIOC, 6U)
293#define LINE_UART6_RX PAL_LINE(GPIOC, 7U)
294#define LINE_UART5_RTS PAL_LINE(GPIOC, 8U)
295#define LINE_UART5_CTS PAL_LINE(GPIOC, 9U)
296#define LINE_SPI3_SCK PAL_LINE(GPIOC, 10U)
297#define LINE_SPI3_MISO PAL_LINE(GPIOC, 11U)
298#define LINE_UART5_TX PAL_LINE(GPIOC, 12U)
299#define LINE_VDD_3V3_SD_CARD_EN PAL_LINE(GPIOC, 13U)
300
301#define LINE_CAN1_RX PAL_LINE(GPIOD, 0U)
302#define LINE_CAN1_TX PAL_LINE(GPIOD, 1U)
303#define LINE_UART5_RX PAL_LINE(GPIOD, 2U)
304#define LINE_UART2_CTS PAL_LINE(GPIOD, 3U)
305#define LINE_UART2_RTS PAL_LINE(GPIOD, 4U)
306#define LINE_UART2_TX PAL_LINE(GPIOD, 5U)
307#define LINE_SDIO_CK PAL_LINE(GPIOD, 6U)
308#define LINE_SDIO_CMD PAL_LINE(GPIOD, 7U)
309#define LINE_UART3_TX PAL_LINE(GPIOD, 8U)
310#define LINE_UART3_RX PAL_LINE(GPIOD, 9U)
311#define LINE_LED4 PAL_LINE(GPIOD, 10U)
312#define LINE_SERVO5 PAL_LINE(GPIOD, 13U)
313#define LINE_SERVO6 PAL_LINE(GPIOD, 14U)
314
315#define LINE_UART8_RX PAL_LINE(GPIOE, 0U)
316#define LINE_UART8_TX PAL_LINE(GPIOE, 1U)
317#define LINE_LED1 PAL_LINE(GPIOE, 3U)
318#define LINE_LED2 PAL_LINE(GPIOE, 4U)
319#define LINE_LED3 PAL_LINE(GPIOE, 5U)
320#define LINE_NARMED PAL_LINE(GPIOE, 6U)
321#define LINE_VDD_3V3_SENSORS3_EN PAL_LINE(GPIOE, 7U)
322#define LINE_UART7_TX PAL_LINE(GPIOE, 8U)
323#define LINE_UART7_CTS PAL_LINE(GPIOE, 10U)
324#define LINE_FMU_CAP1 PAL_LINE(GPIOE, 11U)
325#define LINE_SPI4_SCK PAL_LINE(GPIOE, 12U)
326#define LINE_SPI4_MISO PAL_LINE(GPIOE, 13U)
327#define LINE_SPI4_MOSI PAL_LINE(GPIOE, 14U)
328#define LINE_VDD_5V_PERIPH_OC PAL_LINE(GPIOE, 15U)
329
330#define LINE_I2C2_SDA PAL_LINE(GPIOF, 0U)
331#define LINE_I2C2_SCL PAL_LINE(GPIOF, 1U)
332#define LINE_SPI4_DRDY1 PAL_LINE(GPIOF, 3U)
333#define LINE_VDD_3V3_SENSORS2_EN PAL_LINE(GPIOF, 4U)
334#define LINE_SAFETY_IN PAL_LINE(GPIOF, 5U)
335#define LINE_UART7_RX PAL_LINE(GPIOF, 6U)
336#define LINE_SPI5_SCK PAL_LINE(GPIOF, 7U)
337#define LINE_UART7_RTS PAL_LINE(GPIOF, 8U)
338#define LINE_ALARM PAL_LINE(GPIOF, 9U)
339#define LINE_SPI5_MOSI PAL_LINE(GPIOF, 11U)
340#define LINE_ADC4 PAL_LINE(GPIOF, 12U)
341#define LINE_VDD_5V_HIPOWER_OC PAL_LINE(GPIOF, 13U)
342#define LINE_I2C4_SCL PAL_LINE(GPIOF, 14U)
343#define LINE_I2C4_SDA PAL_LINE(GPIOF, 15U)
344
345#define LINE_HW_VER_REV_DRIVE PAL_LINE(GPIOG, 0U)
346#define LINE_VDD_BRICK_VALID PAL_LINE(GPIOG, 1U)
347#define LINE_VDD_BRICK2_VALID PAL_LINE(GPIOG, 2U)
348#define LINE_VDD_BRICK3_VALID PAL_LINE(GPIOG, 3U)
349#define LINE_VDD_5V_PERIPH_EN PAL_LINE(GPIOG, 4U)
350#define LINE_DRDY1_BMP388 PAL_LINE(GPIOG, 5U)
351#define LINE_SPI_SLAVE6 PAL_LINE(GPIOG, 7U)
352#define LINE_VDD_3V3_SENSORS4_EN PAL_LINE(GPIOG, 8U)
353#define LINE_SPI1_MISO PAL_LINE(GPIOG, 9U)
354#define LINE_VDD_5V_HIPOWER_EN PAL_LINE(GPIOG, 10U)
355#define LINE_SDIO_D2 PAL_LINE(GPIOG, 11U)
356#define LINE_ETH_RMII_TXD1 PAL_LINE(GPIOG, 12U)
357#define LINE_ETH_RMII_TXD0 PAL_LINE(GPIOG, 13U)
358#define LINE_SPI6_MOSI PAL_LINE(GPIOG, 14U)
359#define LINE_ETH_POWER_EN PAL_LINE(GPIOG, 15U)
360
361#define LINE_OSC_IN PAL_LINE(GPIOH, 0U)
362#define LINE_OSC_OUT PAL_LINE(GPIOH, 1U)
363#define LINE_SPEKTRUM_PWR_EN PAL_LINE(GPIOH, 2U)
364#define LINE_HW_VER_SENS PAL_LINE(GPIOH, 3U)
365#define LINE_HW_REV_SENS PAL_LINE(GPIOH, 4U)
366#define LINE_SPI_SLAVE2 PAL_LINE(GPIOH, 5U)
367#define LINE_SPI5_MISO PAL_LINE(GPIOH, 7U)
368#define LINE_I2C3_SDA PAL_LINE(GPIOH, 8U)
369#define LINE_SERVO4 PAL_LINE(GPIOH, 10U)
370#define LINE_SERVO3 PAL_LINE(GPIOH, 11U)
371#define LINE_SERVO2 PAL_LINE(GPIOH, 12U)
372#define LINE_UART4_TX PAL_LINE(GPIOH, 13U)
373#define LINE_UART4_RX PAL_LINE(GPIOH, 14U)
374#define LINE_SPI_SLAVE5 PAL_LINE(GPIOH, 15U)
375
376#define LINE_SERVO1 PAL_LINE(GPIOI, 0U)
377#define LINE_SPI2_SCK PAL_LINE(GPIOI, 1U)
378#define LINE_SPI2_MISO PAL_LINE(GPIOI, 2U)
379#define LINE_SPI2_MOSI PAL_LINE(GPIOI, 3U)
380#define LINE_SPI_SLAVE3 PAL_LINE(GPIOI, 4U)
381#define LINE_PWM_INPUT1 PAL_LINE(GPIOI, 5U)
382#define LINE_SPI3_DRDY1 PAL_LINE(GPIOI, 6U)
383#define LINE_SPI3_DRDY2 PAL_LINE(GPIOI, 7U)
384#define LINE_SPI_SLAVE4 PAL_LINE(GPIOI, 8U)
385#define LINE_SPI_SLAVE1 PAL_LINE(GPIOI, 9U)
386#define LINE_SPI_SLAVE7 PAL_LINE(GPIOI, 10U)
387#define LINE_VDD_3V3_SENSORS1_EN PAL_LINE(GPIOI, 11U)
388
389
390/*
391 * I/O ports initial setup, this configuration is established soon after reset
392 * in the initialization code.
393 * Please refer to the STM32 Reference Manual for details.
394 */
395#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
396#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
397#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
398#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
399#define PIN_ODR_LEVEL_LOW(n) (0U << (n))
400#define PIN_ODR_LEVEL_HIGH(n) (1U << (n))
401#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
402#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
403#define PIN_OSPEED_SPEED_VERYLOW(n) (0U << ((n) * 2U))
404#define PIN_OSPEED_SPEED_LOW(n) (1U << ((n) * 2U))
405#define PIN_OSPEED_SPEED_MEDIUM(n) (2U << ((n) * 2U))
406#define PIN_OSPEED_SPEED_HIGH(n) (3U << ((n) * 2U))
407#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
408#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
409#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
410#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
411
412#define VAL_GPIOA_MODER (PIN_MODE_ANALOG(PA00_ADC1) | \
413 PIN_MODE_INPUT(PA01_ETH_RMII_REF_CLK) | \
414 PIN_MODE_INPUT(PA02_ETH_MDIO) | \
415 PIN_MODE_ALTERNATE(PA03_UART2) | \
416 PIN_MODE_ANALOG(PA04_ADC2) | \
417 PIN_MODE_ALTERNATE(PA05_SPI1_SCK) | \
418 PIN_MODE_ALTERNATE(PA06_SPI6_MISO) | \
419 PIN_MODE_INPUT(PA07_ETH_RMII_CRS_DV) | \
420 PIN_MODE_ALTERNATE(PA08_I2C3_SCL) | \
421 PIN_MODE_INPUT(PA09_USB_VBUS) | \
422 PIN_MODE_INPUT(PA10_SPI2_DRDY) | \
423 PIN_MODE_ALTERNATE(PA11_USB_DM) | \
424 PIN_MODE_ALTERNATE(PA12_USB_DP) | \
425 PIN_MODE_ALTERNATE(PA13_SWDIO) | \
426 PIN_MODE_ALTERNATE(PA14_SWCLK) | \
427 PIN_MODE_INPUT(PA15))
428
429#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(PA00_ADC1) | \
430 PIN_OTYPE_OPENDRAIN(PA01_ETH_RMII_REF_CLK) | \
431 PIN_OTYPE_OPENDRAIN(PA02_ETH_MDIO) | \
432 PIN_OTYPE_PUSHPULL(PA03_UART2) | \
433 PIN_OTYPE_PUSHPULL(PA04_ADC2) | \
434 PIN_OTYPE_PUSHPULL(PA05_SPI1_SCK) | \
435 PIN_OTYPE_PUSHPULL(PA06_SPI6_MISO) | \
436 PIN_OTYPE_OPENDRAIN(PA07_ETH_RMII_CRS_DV) | \
437 PIN_OTYPE_OPENDRAIN(PA08_I2C3_SCL) | \
438 PIN_OTYPE_OPENDRAIN(PA09_USB_VBUS) | \
439 PIN_OTYPE_OPENDRAIN(PA10_SPI2_DRDY) | \
440 PIN_OTYPE_PUSHPULL(PA11_USB_DM) | \
441 PIN_OTYPE_PUSHPULL(PA12_USB_DP) | \
442 PIN_OTYPE_PUSHPULL(PA13_SWDIO) | \
443 PIN_OTYPE_PUSHPULL(PA14_SWCLK) | \
444 PIN_OTYPE_PUSHPULL(PA15))
445
446#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PA00_ADC1) | \
447 PIN_OSPEED_SPEED_VERYLOW(PA01_ETH_RMII_REF_CLK) | \
448 PIN_OSPEED_SPEED_VERYLOW(PA02_ETH_MDIO) | \
449 PIN_OSPEED_SPEED_HIGH(PA03_UART2) | \
450 PIN_OSPEED_SPEED_VERYLOW(PA04_ADC2) | \
451 PIN_OSPEED_SPEED_HIGH(PA05_SPI1_SCK) | \
452 PIN_OSPEED_SPEED_HIGH(PA06_SPI6_MISO) | \
453 PIN_OSPEED_SPEED_VERYLOW(PA07_ETH_RMII_CRS_DV) | \
454 PIN_OSPEED_SPEED_HIGH(PA08_I2C3_SCL) | \
455 PIN_OSPEED_SPEED_VERYLOW(PA09_USB_VBUS) | \
456 PIN_OSPEED_SPEED_VERYLOW(PA10_SPI2_DRDY) | \
457 PIN_OSPEED_SPEED_HIGH(PA11_USB_DM) | \
458 PIN_OSPEED_SPEED_HIGH(PA12_USB_DP) | \
459 PIN_OSPEED_SPEED_HIGH(PA13_SWDIO) | \
460 PIN_OSPEED_SPEED_HIGH(PA14_SWCLK) | \
461 PIN_OSPEED_SPEED_VERYLOW(PA15))
462
463#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(PA00_ADC1) | \
464 PIN_PUPDR_PULLDOWN(PA01_ETH_RMII_REF_CLK) | \
465 PIN_PUPDR_PULLDOWN(PA02_ETH_MDIO) | \
466 PIN_PUPDR_FLOATING(PA03_UART2) | \
467 PIN_PUPDR_FLOATING(PA04_ADC2) | \
468 PIN_PUPDR_FLOATING(PA05_SPI1_SCK) | \
469 PIN_PUPDR_FLOATING(PA06_SPI6_MISO) | \
470 PIN_PUPDR_PULLDOWN(PA07_ETH_RMII_CRS_DV) | \
471 PIN_PUPDR_PULLUP(PA08_I2C3_SCL) | \
472 PIN_PUPDR_PULLDOWN(PA09_USB_VBUS) | \
473 PIN_PUPDR_PULLDOWN(PA10_SPI2_DRDY) | \
474 PIN_PUPDR_FLOATING(PA11_USB_DM) | \
475 PIN_PUPDR_FLOATING(PA12_USB_DP) | \
476 PIN_PUPDR_FLOATING(PA13_SWDIO) | \
477 PIN_PUPDR_FLOATING(PA14_SWCLK) | \
478 PIN_PUPDR_PULLDOWN(PA15))
479
480#define VAL_GPIOA_ODR (PIN_ODR_LEVEL_LOW(PA00_ADC1) | \
481 PIN_ODR_LEVEL_HIGH(PA01_ETH_RMII_REF_CLK) | \
482 PIN_ODR_LEVEL_HIGH(PA02_ETH_MDIO) | \
483 PIN_ODR_LEVEL_HIGH(PA03_UART2) | \
484 PIN_ODR_LEVEL_LOW(PA04_ADC2) | \
485 PIN_ODR_LEVEL_HIGH(PA05_SPI1_SCK) | \
486 PIN_ODR_LEVEL_HIGH(PA06_SPI6_MISO) | \
487 PIN_ODR_LEVEL_HIGH(PA07_ETH_RMII_CRS_DV) | \
488 PIN_ODR_LEVEL_HIGH(PA08_I2C3_SCL) | \
489 PIN_ODR_LEVEL_LOW(PA09_USB_VBUS) | \
490 PIN_ODR_LEVEL_HIGH(PA10_SPI2_DRDY) | \
491 PIN_ODR_LEVEL_HIGH(PA11_USB_DM) | \
492 PIN_ODR_LEVEL_HIGH(PA12_USB_DP) | \
493 PIN_ODR_LEVEL_HIGH(PA13_SWDIO) | \
494 PIN_ODR_LEVEL_HIGH(PA14_SWCLK) | \
495 PIN_ODR_LEVEL_LOW(PA15))
496
497#define VAL_GPIOA_AFRL (PIN_AFIO_AF(PA00_ADC1, 0) | \
498 PIN_AFIO_AF(PA01_ETH_RMII_REF_CLK, 0) | \
499 PIN_AFIO_AF(PA02_ETH_MDIO, 0) | \
500 PIN_AFIO_AF(PA03_UART2, 7) | \
501 PIN_AFIO_AF(PA04_ADC2, 0) | \
502 PIN_AFIO_AF(PA05_SPI1_SCK, 5) | \
503 PIN_AFIO_AF(PA06_SPI6_MISO, 8) | \
504 PIN_AFIO_AF(PA07_ETH_RMII_CRS_DV, 0))
505
506#define VAL_GPIOA_AFRH (PIN_AFIO_AF(PA08_I2C3_SCL, 4) | \
507 PIN_AFIO_AF(PA09_USB_VBUS, 0) | \
508 PIN_AFIO_AF(PA10_SPI2_DRDY, 0) | \
509 PIN_AFIO_AF(PA11_USB_DM, 10) | \
510 PIN_AFIO_AF(PA12_USB_DP, 10) | \
511 PIN_AFIO_AF(PA13_SWDIO, 0) | \
512 PIN_AFIO_AF(PA14_SWCLK, 0) | \
513 PIN_AFIO_AF(PA15, 0))
514
515#define VAL_GPIOB_MODER (PIN_MODE_ANALOG(PB00_ADC3) | \
516 PIN_MODE_ANALOG(PB01_ADC5) | \
517 PIN_MODE_ALTERNATE(PB02_SPI3_MOSI) | \
518 PIN_MODE_ALTERNATE(PB03_SPI6_SCK) | \
519 PIN_MODE_ALTERNATE(PB04_SDIO_D3) | \
520 PIN_MODE_ALTERNATE(PB05_SPI1_MOSI) | \
521 PIN_MODE_ALTERNATE(PB06_UART1_TX) | \
522 PIN_MODE_ALTERNATE(PB07_UART1_RX) | \
523 PIN_MODE_ALTERNATE(PB08_I2C1_SCL) | \
524 PIN_MODE_ALTERNATE(PB09_I2C1_SDA) | \
525 PIN_MODE_OUTPUT(PB10_IMU_HEATER) | \
526 PIN_MODE_INPUT(PB11_ETH_RMII_TX_EN) | \
527 PIN_MODE_ALTERNATE(PB12_CAN2_RX) | \
528 PIN_MODE_ALTERNATE(PB13_CAN2_TX) | \
529 PIN_MODE_ALTERNATE(PB14_SDIO_D0) | \
530 PIN_MODE_ALTERNATE(PB15_SDIO_D1))
531
532#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(PB00_ADC3) | \
533 PIN_OTYPE_PUSHPULL(PB01_ADC5) | \
534 PIN_OTYPE_PUSHPULL(PB02_SPI3_MOSI) | \
535 PIN_OTYPE_PUSHPULL(PB03_SPI6_SCK) | \
536 PIN_OTYPE_PUSHPULL(PB04_SDIO_D3) | \
537 PIN_OTYPE_PUSHPULL(PB05_SPI1_MOSI) | \
538 PIN_OTYPE_PUSHPULL(PB06_UART1_TX) | \
539 PIN_OTYPE_PUSHPULL(PB07_UART1_RX) | \
540 PIN_OTYPE_OPENDRAIN(PB08_I2C1_SCL) | \
541 PIN_OTYPE_OPENDRAIN(PB09_I2C1_SDA) | \
542 PIN_OTYPE_PUSHPULL(PB10_IMU_HEATER) | \
543 PIN_OTYPE_OPENDRAIN(PB11_ETH_RMII_TX_EN) | \
544 PIN_OTYPE_PUSHPULL(PB12_CAN2_RX) | \
545 PIN_OTYPE_PUSHPULL(PB13_CAN2_TX) | \
546 PIN_OTYPE_PUSHPULL(PB14_SDIO_D0) | \
547 PIN_OTYPE_PUSHPULL(PB15_SDIO_D1))
548
549#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PB00_ADC3) | \
550 PIN_OSPEED_SPEED_VERYLOW(PB01_ADC5) | \
551 PIN_OSPEED_SPEED_HIGH(PB02_SPI3_MOSI) | \
552 PIN_OSPEED_SPEED_HIGH(PB03_SPI6_SCK) | \
553 PIN_OSPEED_SPEED_HIGH(PB04_SDIO_D3) | \
554 PIN_OSPEED_SPEED_HIGH(PB05_SPI1_MOSI) | \
555 PIN_OSPEED_SPEED_HIGH(PB06_UART1_TX) | \
556 PIN_OSPEED_SPEED_HIGH(PB07_UART1_RX) | \
557 PIN_OSPEED_SPEED_HIGH(PB08_I2C1_SCL) | \
558 PIN_OSPEED_SPEED_HIGH(PB09_I2C1_SDA) | \
559 PIN_OSPEED_SPEED_HIGH(PB10_IMU_HEATER) | \
560 PIN_OSPEED_SPEED_VERYLOW(PB11_ETH_RMII_TX_EN) | \
561 PIN_OSPEED_SPEED_HIGH(PB12_CAN2_RX) | \
562 PIN_OSPEED_SPEED_HIGH(PB13_CAN2_TX) | \
563 PIN_OSPEED_SPEED_HIGH(PB14_SDIO_D0) | \
564 PIN_OSPEED_SPEED_HIGH(PB15_SDIO_D1))
565
566#define VAL_GPIOB_PUPDR (PIN_PUPDR_FLOATING(PB00_ADC3) | \
567 PIN_PUPDR_FLOATING(PB01_ADC5) | \
568 PIN_PUPDR_FLOATING(PB02_SPI3_MOSI) | \
569 PIN_PUPDR_FLOATING(PB03_SPI6_SCK) | \
570 PIN_PUPDR_PULLUP(PB04_SDIO_D3) | \
571 PIN_PUPDR_FLOATING(PB05_SPI1_MOSI) | \
572 PIN_PUPDR_FLOATING(PB06_UART1_TX) | \
573 PIN_PUPDR_FLOATING(PB07_UART1_RX) | \
574 PIN_PUPDR_PULLUP(PB08_I2C1_SCL) | \
575 PIN_PUPDR_PULLUP(PB09_I2C1_SDA) | \
576 PIN_PUPDR_FLOATING(PB10_IMU_HEATER) | \
577 PIN_PUPDR_PULLDOWN(PB11_ETH_RMII_TX_EN) | \
578 PIN_PUPDR_FLOATING(PB12_CAN2_RX) | \
579 PIN_PUPDR_FLOATING(PB13_CAN2_TX) | \
580 PIN_PUPDR_PULLUP(PB14_SDIO_D0) | \
581 PIN_PUPDR_PULLUP(PB15_SDIO_D1))
582
583#define VAL_GPIOB_ODR (PIN_ODR_LEVEL_LOW(PB00_ADC3) | \
584 PIN_ODR_LEVEL_LOW(PB01_ADC5) | \
585 PIN_ODR_LEVEL_HIGH(PB02_SPI3_MOSI) | \
586 PIN_ODR_LEVEL_HIGH(PB03_SPI6_SCK) | \
587 PIN_ODR_LEVEL_HIGH(PB04_SDIO_D3) | \
588 PIN_ODR_LEVEL_HIGH(PB05_SPI1_MOSI) | \
589 PIN_ODR_LEVEL_HIGH(PB06_UART1_TX) | \
590 PIN_ODR_LEVEL_HIGH(PB07_UART1_RX) | \
591 PIN_ODR_LEVEL_HIGH(PB08_I2C1_SCL) | \
592 PIN_ODR_LEVEL_HIGH(PB09_I2C1_SDA) | \
593 PIN_ODR_LEVEL_LOW(PB10_IMU_HEATER) | \
594 PIN_ODR_LEVEL_HIGH(PB11_ETH_RMII_TX_EN) | \
595 PIN_ODR_LEVEL_HIGH(PB12_CAN2_RX) | \
596 PIN_ODR_LEVEL_HIGH(PB13_CAN2_TX) | \
597 PIN_ODR_LEVEL_HIGH(PB14_SDIO_D0) | \
598 PIN_ODR_LEVEL_HIGH(PB15_SDIO_D1))
599
600#define VAL_GPIOB_AFRL (PIN_AFIO_AF(PB00_ADC3, 0) | \
601 PIN_AFIO_AF(PB01_ADC5, 0) | \
602 PIN_AFIO_AF(PB02_SPI3_MOSI, 7) | \
603 PIN_AFIO_AF(PB03_SPI6_SCK, 8) | \
604 PIN_AFIO_AF(PB04_SDIO_D3, 9) | \
605 PIN_AFIO_AF(PB05_SPI1_MOSI, 5) | \
606 PIN_AFIO_AF(PB06_UART1_TX, 7) | \
607 PIN_AFIO_AF(PB07_UART1_RX, 7))
608
609#define VAL_GPIOB_AFRH (PIN_AFIO_AF(PB08_I2C1_SCL, 4) | \
610 PIN_AFIO_AF(PB09_I2C1_SDA, 4) | \
611 PIN_AFIO_AF(PB10_IMU_HEATER, 0) | \
612 PIN_AFIO_AF(PB11_ETH_RMII_TX_EN, 0) | \
613 PIN_AFIO_AF(PB12_CAN2_RX, 9) | \
614 PIN_AFIO_AF(PB13_CAN2_TX, 9) | \
615 PIN_AFIO_AF(PB14_SDIO_D0, 9) | \
616 PIN_AFIO_AF(PB15_SDIO_D1, 9))
617
618#define VAL_GPIOC_MODER (PIN_MODE_INPUT(PC00_NFC_GPIO) | \
619 PIN_MODE_INPUT(PC01_ETH_MDC) | \
620 PIN_MODE_ANALOG(PC02_ADC6) | \
621 PIN_MODE_ANALOG(PC03_ADC7) | \
622 PIN_MODE_INPUT(PC04_ETH_RMII_RXD0) | \
623 PIN_MODE_INPUT(PC05_ETH_RMII_RXD1) | \
624 PIN_MODE_ALTERNATE(PC06_UART6_TX) | \
625 PIN_MODE_ALTERNATE(PC07_UART6_RX) | \
626 PIN_MODE_INPUT(PC08_UART5_RTS) | \
627 PIN_MODE_INPUT(PC09_UART5_CTS) | \
628 PIN_MODE_ALTERNATE(PC10_SPI3_SCK) | \
629 PIN_MODE_ALTERNATE(PC11_SPI3_MISO) | \
630 PIN_MODE_ALTERNATE(PC12_UART5_TX) | \
631 PIN_MODE_OUTPUT(PC13_VDD_3V3_SD_CARD_EN) | \
632 PIN_MODE_INPUT(PC14) | \
633 PIN_MODE_INPUT(PC15))
634
635#define VAL_GPIOC_OTYPER (PIN_OTYPE_OPENDRAIN(PC00_NFC_GPIO) | \
636 PIN_OTYPE_OPENDRAIN(PC01_ETH_MDC) | \
637 PIN_OTYPE_PUSHPULL(PC02_ADC6) | \
638 PIN_OTYPE_PUSHPULL(PC03_ADC7) | \
639 PIN_OTYPE_OPENDRAIN(PC04_ETH_RMII_RXD0) | \
640 PIN_OTYPE_OPENDRAIN(PC05_ETH_RMII_RXD1) | \
641 PIN_OTYPE_PUSHPULL(PC06_UART6_TX) | \
642 PIN_OTYPE_PUSHPULL(PC07_UART6_RX) | \
643 PIN_OTYPE_OPENDRAIN(PC08_UART5_RTS) | \
644 PIN_OTYPE_OPENDRAIN(PC09_UART5_CTS) | \
645 PIN_OTYPE_PUSHPULL(PC10_SPI3_SCK) | \
646 PIN_OTYPE_PUSHPULL(PC11_SPI3_MISO) | \
647 PIN_OTYPE_PUSHPULL(PC12_UART5_TX) | \
648 PIN_OTYPE_PUSHPULL(PC13_VDD_3V3_SD_CARD_EN) | \
649 PIN_OTYPE_PUSHPULL(PC14) | \
650 PIN_OTYPE_PUSHPULL(PC15))
651
652#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PC00_NFC_GPIO) | \
653 PIN_OSPEED_SPEED_VERYLOW(PC01_ETH_MDC) | \
654 PIN_OSPEED_SPEED_VERYLOW(PC02_ADC6) | \
655 PIN_OSPEED_SPEED_VERYLOW(PC03_ADC7) | \
656 PIN_OSPEED_SPEED_VERYLOW(PC04_ETH_RMII_RXD0) | \
657 PIN_OSPEED_SPEED_VERYLOW(PC05_ETH_RMII_RXD1) | \
658 PIN_OSPEED_SPEED_HIGH(PC06_UART6_TX) | \
659 PIN_OSPEED_SPEED_HIGH(PC07_UART6_RX) | \
660 PIN_OSPEED_SPEED_VERYLOW(PC08_UART5_RTS) | \
661 PIN_OSPEED_SPEED_VERYLOW(PC09_UART5_CTS) | \
662 PIN_OSPEED_SPEED_HIGH(PC10_SPI3_SCK) | \
663 PIN_OSPEED_SPEED_HIGH(PC11_SPI3_MISO) | \
664 PIN_OSPEED_SPEED_HIGH(PC12_UART5_TX) | \
665 PIN_OSPEED_SPEED_VERYLOW(PC13_VDD_3V3_SD_CARD_EN) | \
666 PIN_OSPEED_SPEED_VERYLOW(PC14) | \
667 PIN_OSPEED_SPEED_VERYLOW(PC15))
668
669#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLDOWN(PC00_NFC_GPIO) | \
670 PIN_PUPDR_PULLDOWN(PC01_ETH_MDC) | \
671 PIN_PUPDR_FLOATING(PC02_ADC6) | \
672 PIN_PUPDR_FLOATING(PC03_ADC7) | \
673 PIN_PUPDR_PULLDOWN(PC04_ETH_RMII_RXD0) | \
674 PIN_PUPDR_PULLDOWN(PC05_ETH_RMII_RXD1) | \
675 PIN_PUPDR_FLOATING(PC06_UART6_TX) | \
676 PIN_PUPDR_FLOATING(PC07_UART6_RX) | \
677 PIN_PUPDR_PULLDOWN(PC08_UART5_RTS) | \
678 PIN_PUPDR_PULLDOWN(PC09_UART5_CTS) | \
679 PIN_PUPDR_FLOATING(PC10_SPI3_SCK) | \
680 PIN_PUPDR_FLOATING(PC11_SPI3_MISO) | \
681 PIN_PUPDR_FLOATING(PC12_UART5_TX) | \
682 PIN_PUPDR_FLOATING(PC13_VDD_3V3_SD_CARD_EN) | \
683 PIN_PUPDR_PULLDOWN(PC14) | \
684 PIN_PUPDR_PULLDOWN(PC15))
685
686#define VAL_GPIOC_ODR (PIN_ODR_LEVEL_HIGH(PC00_NFC_GPIO) | \
687 PIN_ODR_LEVEL_HIGH(PC01_ETH_MDC) | \
688 PIN_ODR_LEVEL_LOW(PC02_ADC6) | \
689 PIN_ODR_LEVEL_LOW(PC03_ADC7) | \
690 PIN_ODR_LEVEL_HIGH(PC04_ETH_RMII_RXD0) | \
691 PIN_ODR_LEVEL_HIGH(PC05_ETH_RMII_RXD1) | \
692 PIN_ODR_LEVEL_HIGH(PC06_UART6_TX) | \
693 PIN_ODR_LEVEL_HIGH(PC07_UART6_RX) | \
694 PIN_ODR_LEVEL_HIGH(PC08_UART5_RTS) | \
695 PIN_ODR_LEVEL_HIGH(PC09_UART5_CTS) | \
696 PIN_ODR_LEVEL_HIGH(PC10_SPI3_SCK) | \
697 PIN_ODR_LEVEL_HIGH(PC11_SPI3_MISO) | \
698 PIN_ODR_LEVEL_HIGH(PC12_UART5_TX) | \
699 PIN_ODR_LEVEL_HIGH(PC13_VDD_3V3_SD_CARD_EN) | \
700 PIN_ODR_LEVEL_LOW(PC14) | \
701 PIN_ODR_LEVEL_LOW(PC15))
702
703#define VAL_GPIOC_AFRL (PIN_AFIO_AF(PC00_NFC_GPIO, 0) | \
704 PIN_AFIO_AF(PC01_ETH_MDC, 0) | \
705 PIN_AFIO_AF(PC02_ADC6, 0) | \
706 PIN_AFIO_AF(PC03_ADC7, 0) | \
707 PIN_AFIO_AF(PC04_ETH_RMII_RXD0, 0) | \
708 PIN_AFIO_AF(PC05_ETH_RMII_RXD1, 0) | \
709 PIN_AFIO_AF(PC06_UART6_TX, 7) | \
710 PIN_AFIO_AF(PC07_UART6_RX, 7))
711
712#define VAL_GPIOC_AFRH (PIN_AFIO_AF(PC08_UART5_RTS, 0) | \
713 PIN_AFIO_AF(PC09_UART5_CTS, 0) | \
714 PIN_AFIO_AF(PC10_SPI3_SCK, 6) | \
715 PIN_AFIO_AF(PC11_SPI3_MISO, 6) | \
716 PIN_AFIO_AF(PC12_UART5_TX, 8) | \
717 PIN_AFIO_AF(PC13_VDD_3V3_SD_CARD_EN, 0) | \
718 PIN_AFIO_AF(PC14, 0) | \
719 PIN_AFIO_AF(PC15, 0))
720
721#define VAL_GPIOD_MODER (PIN_MODE_ALTERNATE(PD00_CAN1_RX) | \
722 PIN_MODE_ALTERNATE(PD01_CAN1_TX) | \
723 PIN_MODE_ALTERNATE(PD02_UART5_RX) | \
724 PIN_MODE_INPUT(PD03_UART2_CTS) | \
725 PIN_MODE_INPUT(PD04_UART2_RTS) | \
726 PIN_MODE_ALTERNATE(PD05_UART2_TX) | \
727 PIN_MODE_ALTERNATE(PD06_SDIO_CK) | \
728 PIN_MODE_ALTERNATE(PD07_SDIO_CMD) | \
729 PIN_MODE_ALTERNATE(PD08_UART3_TX) | \
730 PIN_MODE_ALTERNATE(PD09_UART3_RX) | \
731 PIN_MODE_OUTPUT(PD10_LED4) | \
732 PIN_MODE_INPUT(PD11) | \
733 PIN_MODE_INPUT(PD12) | \
734 PIN_MODE_ALTERNATE(PD13_SERVO5) | \
735 PIN_MODE_ALTERNATE(PD14_SERVO6) | \
736 PIN_MODE_INPUT(PD15))
737
738#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(PD00_CAN1_RX) | \
739 PIN_OTYPE_PUSHPULL(PD01_CAN1_TX) | \
740 PIN_OTYPE_PUSHPULL(PD02_UART5_RX) | \
741 PIN_OTYPE_OPENDRAIN(PD03_UART2_CTS) | \
742 PIN_OTYPE_OPENDRAIN(PD04_UART2_RTS) | \
743 PIN_OTYPE_PUSHPULL(PD05_UART2_TX) | \
744 PIN_OTYPE_PUSHPULL(PD06_SDIO_CK) | \
745 PIN_OTYPE_PUSHPULL(PD07_SDIO_CMD) | \
746 PIN_OTYPE_PUSHPULL(PD08_UART3_TX) | \
747 PIN_OTYPE_PUSHPULL(PD09_UART3_RX) | \
748 PIN_OTYPE_PUSHPULL(PD10_LED4) | \
749 PIN_OTYPE_PUSHPULL(PD11) | \
750 PIN_OTYPE_PUSHPULL(PD12) | \
751 PIN_OTYPE_PUSHPULL(PD13_SERVO5) | \
752 PIN_OTYPE_PUSHPULL(PD14_SERVO6) | \
753 PIN_OTYPE_PUSHPULL(PD15))
754
755#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PD00_CAN1_RX) | \
756 PIN_OSPEED_SPEED_HIGH(PD01_CAN1_TX) | \
757 PIN_OSPEED_SPEED_HIGH(PD02_UART5_RX) | \
758 PIN_OSPEED_SPEED_VERYLOW(PD03_UART2_CTS) | \
759 PIN_OSPEED_SPEED_VERYLOW(PD04_UART2_RTS) | \
760 PIN_OSPEED_SPEED_HIGH(PD05_UART2_TX) | \
761 PIN_OSPEED_SPEED_HIGH(PD06_SDIO_CK) | \
762 PIN_OSPEED_SPEED_HIGH(PD07_SDIO_CMD) | \
763 PIN_OSPEED_SPEED_HIGH(PD08_UART3_TX) | \
764 PIN_OSPEED_SPEED_HIGH(PD09_UART3_RX) | \
765 PIN_OSPEED_SPEED_VERYLOW(PD10_LED4) | \
766 PIN_OSPEED_SPEED_VERYLOW(PD11) | \
767 PIN_OSPEED_SPEED_VERYLOW(PD12) | \
768 PIN_OSPEED_SPEED_HIGH(PD13_SERVO5) | \
769 PIN_OSPEED_SPEED_HIGH(PD14_SERVO6) | \
770 PIN_OSPEED_SPEED_VERYLOW(PD15))
771
772#define VAL_GPIOD_PUPDR (PIN_PUPDR_FLOATING(PD00_CAN1_RX) | \
773 PIN_PUPDR_FLOATING(PD01_CAN1_TX) | \
774 PIN_PUPDR_FLOATING(PD02_UART5_RX) | \
775 PIN_PUPDR_PULLDOWN(PD03_UART2_CTS) | \
776 PIN_PUPDR_PULLDOWN(PD04_UART2_RTS) | \
777 PIN_PUPDR_FLOATING(PD05_UART2_TX) | \
778 PIN_PUPDR_PULLUP(PD06_SDIO_CK) | \
779 PIN_PUPDR_PULLUP(PD07_SDIO_CMD) | \
780 PIN_PUPDR_FLOATING(PD08_UART3_TX) | \
781 PIN_PUPDR_FLOATING(PD09_UART3_RX) | \
782 PIN_PUPDR_FLOATING(PD10_LED4) | \
783 PIN_PUPDR_PULLDOWN(PD11) | \
784 PIN_PUPDR_PULLDOWN(PD12) | \
785 PIN_PUPDR_FLOATING(PD13_SERVO5) | \
786 PIN_PUPDR_FLOATING(PD14_SERVO6) | \
787 PIN_PUPDR_PULLDOWN(PD15))
788
789#define VAL_GPIOD_ODR (PIN_ODR_LEVEL_HIGH(PD00_CAN1_RX) | \
790 PIN_ODR_LEVEL_HIGH(PD01_CAN1_TX) | \
791 PIN_ODR_LEVEL_HIGH(PD02_UART5_RX) | \
792 PIN_ODR_LEVEL_HIGH(PD03_UART2_CTS) | \
793 PIN_ODR_LEVEL_HIGH(PD04_UART2_RTS) | \
794 PIN_ODR_LEVEL_HIGH(PD05_UART2_TX) | \
795 PIN_ODR_LEVEL_HIGH(PD06_SDIO_CK) | \
796 PIN_ODR_LEVEL_HIGH(PD07_SDIO_CMD) | \
797 PIN_ODR_LEVEL_HIGH(PD08_UART3_TX) | \
798 PIN_ODR_LEVEL_HIGH(PD09_UART3_RX) | \
799 PIN_ODR_LEVEL_LOW(PD10_LED4) | \
800 PIN_ODR_LEVEL_LOW(PD11) | \
801 PIN_ODR_LEVEL_LOW(PD12) | \
802 PIN_ODR_LEVEL_LOW(PD13_SERVO5) | \
803 PIN_ODR_LEVEL_LOW(PD14_SERVO6) | \
804 PIN_ODR_LEVEL_LOW(PD15))
805
806#define VAL_GPIOD_AFRL (PIN_AFIO_AF(PD00_CAN1_RX, 9) | \
807 PIN_AFIO_AF(PD01_CAN1_TX, 9) | \
808 PIN_AFIO_AF(PD02_UART5_RX, 8) | \
809 PIN_AFIO_AF(PD03_UART2_CTS, 0) | \
810 PIN_AFIO_AF(PD04_UART2_RTS, 0) | \
811 PIN_AFIO_AF(PD05_UART2_TX, 7) | \
812 PIN_AFIO_AF(PD06_SDIO_CK, 11) | \
813 PIN_AFIO_AF(PD07_SDIO_CMD, 11))
814
815#define VAL_GPIOD_AFRH (PIN_AFIO_AF(PD08_UART3_TX, 7) | \
816 PIN_AFIO_AF(PD09_UART3_RX, 7) | \
817 PIN_AFIO_AF(PD10_LED4, 0) | \
818 PIN_AFIO_AF(PD11, 0) | \
819 PIN_AFIO_AF(PD12, 0) | \
820 PIN_AFIO_AF(PD13_SERVO5, 2) | \
821 PIN_AFIO_AF(PD14_SERVO6, 2) | \
822 PIN_AFIO_AF(PD15, 0))
823
824#define VAL_GPIOE_MODER (PIN_MODE_ALTERNATE(PE00_UART8_RX) | \
825 PIN_MODE_ALTERNATE(PE01_UART8_TX) | \
826 PIN_MODE_INPUT(PE02) | \
827 PIN_MODE_OUTPUT(PE03_LED1) | \
828 PIN_MODE_OUTPUT(PE04_LED2) | \
829 PIN_MODE_OUTPUT(PE05_LED3) | \
830 PIN_MODE_INPUT(PE06_NARMED) | \
831 PIN_MODE_OUTPUT(PE07_VDD_3V3_SENSORS3_EN) | \
832 PIN_MODE_ALTERNATE(PE08_UART7_TX) | \
833 PIN_MODE_INPUT(PE09) | \
834 PIN_MODE_INPUT(PE10_UART7_CTS) | \
835 PIN_MODE_INPUT(PE11_FMU_CAP1) | \
836 PIN_MODE_ALTERNATE(PE12_SPI4_SCK) | \
837 PIN_MODE_ALTERNATE(PE13_SPI4_MISO) | \
838 PIN_MODE_ALTERNATE(PE14_SPI4_MOSI) | \
839 PIN_MODE_INPUT(PE15_VDD_5V_PERIPH_OC))
840
841#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(PE00_UART8_RX) | \
842 PIN_OTYPE_PUSHPULL(PE01_UART8_TX) | \
843 PIN_OTYPE_PUSHPULL(PE02) | \
844 PIN_OTYPE_PUSHPULL(PE03_LED1) | \
845 PIN_OTYPE_PUSHPULL(PE04_LED2) | \
846 PIN_OTYPE_PUSHPULL(PE05_LED3) | \
847 PIN_OTYPE_OPENDRAIN(PE06_NARMED) | \
848 PIN_OTYPE_PUSHPULL(PE07_VDD_3V3_SENSORS3_EN) | \
849 PIN_OTYPE_PUSHPULL(PE08_UART7_TX) | \
850 PIN_OTYPE_PUSHPULL(PE09) | \
851 PIN_OTYPE_OPENDRAIN(PE10_UART7_CTS) | \
852 PIN_OTYPE_OPENDRAIN(PE11_FMU_CAP1) | \
853 PIN_OTYPE_PUSHPULL(PE12_SPI4_SCK) | \
854 PIN_OTYPE_PUSHPULL(PE13_SPI4_MISO) | \
855 PIN_OTYPE_PUSHPULL(PE14_SPI4_MOSI) | \
856 PIN_OTYPE_OPENDRAIN(PE15_VDD_5V_PERIPH_OC))
857
858#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PE00_UART8_RX) | \
859 PIN_OSPEED_SPEED_HIGH(PE01_UART8_TX) | \
860 PIN_OSPEED_SPEED_VERYLOW(PE02) | \
861 PIN_OSPEED_SPEED_VERYLOW(PE03_LED1) | \
862 PIN_OSPEED_SPEED_VERYLOW(PE04_LED2) | \
863 PIN_OSPEED_SPEED_VERYLOW(PE05_LED3) | \
864 PIN_OSPEED_SPEED_VERYLOW(PE06_NARMED) | \
865 PIN_OSPEED_SPEED_VERYLOW(PE07_VDD_3V3_SENSORS3_EN) | \
866 PIN_OSPEED_SPEED_HIGH(PE08_UART7_TX) | \
867 PIN_OSPEED_SPEED_VERYLOW(PE09) | \
868 PIN_OSPEED_SPEED_VERYLOW(PE10_UART7_CTS) | \
869 PIN_OSPEED_SPEED_VERYLOW(PE11_FMU_CAP1) | \
870 PIN_OSPEED_SPEED_HIGH(PE12_SPI4_SCK) | \
871 PIN_OSPEED_SPEED_HIGH(PE13_SPI4_MISO) | \
872 PIN_OSPEED_SPEED_HIGH(PE14_SPI4_MOSI) | \
873 PIN_OSPEED_SPEED_VERYLOW(PE15_VDD_5V_PERIPH_OC))
874
875#define VAL_GPIOE_PUPDR (PIN_PUPDR_FLOATING(PE00_UART8_RX) | \
876 PIN_PUPDR_FLOATING(PE01_UART8_TX) | \
877 PIN_PUPDR_PULLDOWN(PE02) | \
878 PIN_PUPDR_FLOATING(PE03_LED1) | \
879 PIN_PUPDR_FLOATING(PE04_LED2) | \
880 PIN_PUPDR_FLOATING(PE05_LED3) | \
881 PIN_PUPDR_PULLDOWN(PE06_NARMED) | \
882 PIN_PUPDR_FLOATING(PE07_VDD_3V3_SENSORS3_EN) | \
883 PIN_PUPDR_FLOATING(PE08_UART7_TX) | \
884 PIN_PUPDR_PULLDOWN(PE09) | \
885 PIN_PUPDR_PULLDOWN(PE10_UART7_CTS) | \
886 PIN_PUPDR_PULLDOWN(PE11_FMU_CAP1) | \
887 PIN_PUPDR_FLOATING(PE12_SPI4_SCK) | \
888 PIN_PUPDR_FLOATING(PE13_SPI4_MISO) | \
889 PIN_PUPDR_FLOATING(PE14_SPI4_MOSI) | \
890 PIN_PUPDR_PULLDOWN(PE15_VDD_5V_PERIPH_OC))
891
892#define VAL_GPIOE_ODR (PIN_ODR_LEVEL_HIGH(PE00_UART8_RX) | \
893 PIN_ODR_LEVEL_HIGH(PE01_UART8_TX) | \
894 PIN_ODR_LEVEL_LOW(PE02) | \
895 PIN_ODR_LEVEL_LOW(PE03_LED1) | \
896 PIN_ODR_LEVEL_LOW(PE04_LED2) | \
897 PIN_ODR_LEVEL_LOW(PE05_LED3) | \
898 PIN_ODR_LEVEL_HIGH(PE06_NARMED) | \
899 PIN_ODR_LEVEL_HIGH(PE07_VDD_3V3_SENSORS3_EN) | \
900 PIN_ODR_LEVEL_HIGH(PE08_UART7_TX) | \
901 PIN_ODR_LEVEL_LOW(PE09) | \
902 PIN_ODR_LEVEL_HIGH(PE10_UART7_CTS) | \
903 PIN_ODR_LEVEL_HIGH(PE11_FMU_CAP1) | \
904 PIN_ODR_LEVEL_HIGH(PE12_SPI4_SCK) | \
905 PIN_ODR_LEVEL_HIGH(PE13_SPI4_MISO) | \
906 PIN_ODR_LEVEL_HIGH(PE14_SPI4_MOSI) | \
907 PIN_ODR_LEVEL_HIGH(PE15_VDD_5V_PERIPH_OC))
908
909#define VAL_GPIOE_AFRL (PIN_AFIO_AF(PE00_UART8_RX, 8) | \
910 PIN_AFIO_AF(PE01_UART8_TX, 8) | \
911 PIN_AFIO_AF(PE02, 0) | \
912 PIN_AFIO_AF(PE03_LED1, 0) | \
913 PIN_AFIO_AF(PE04_LED2, 0) | \
914 PIN_AFIO_AF(PE05_LED3, 0) | \
915 PIN_AFIO_AF(PE06_NARMED, 0) | \
916 PIN_AFIO_AF(PE07_VDD_3V3_SENSORS3_EN, 0))
917
918#define VAL_GPIOE_AFRH (PIN_AFIO_AF(PE08_UART7_TX, 7) | \
919 PIN_AFIO_AF(PE09, 0) | \
920 PIN_AFIO_AF(PE10_UART7_CTS, 0) | \
921 PIN_AFIO_AF(PE11_FMU_CAP1, 0) | \
922 PIN_AFIO_AF(PE12_SPI4_SCK, 5) | \
923 PIN_AFIO_AF(PE13_SPI4_MISO, 5) | \
924 PIN_AFIO_AF(PE14_SPI4_MOSI, 5) | \
925 PIN_AFIO_AF(PE15_VDD_5V_PERIPH_OC, 0))
926
927#define VAL_GPIOF_MODER (PIN_MODE_ALTERNATE(PF00_I2C2_SDA) | \
928 PIN_MODE_ALTERNATE(PF01_I2C2_SCL) | \
929 PIN_MODE_INPUT(PF02) | \
930 PIN_MODE_INPUT(PF03_SPI4_DRDY1) | \
931 PIN_MODE_OUTPUT(PF04_VDD_3V3_SENSORS2_EN) | \
932 PIN_MODE_INPUT(PF05_SAFETY_IN) | \
933 PIN_MODE_ALTERNATE(PF06_UART7_RX) | \
934 PIN_MODE_ALTERNATE(PF07_SPI5_SCK) | \
935 PIN_MODE_INPUT(PF08_UART7_RTS) | \
936 PIN_MODE_ALTERNATE(PF09_ALARM) | \
937 PIN_MODE_INPUT(PF10) | \
938 PIN_MODE_ALTERNATE(PF11_SPI5_MOSI) | \
939 PIN_MODE_ANALOG(PF12_ADC4) | \
940 PIN_MODE_INPUT(PF13_VDD_5V_HIPOWER_OC) | \
941 PIN_MODE_ALTERNATE(PF14_I2C4_SCL) | \
942 PIN_MODE_ALTERNATE(PF15_I2C4_SDA))
943
944#define VAL_GPIOF_OTYPER (PIN_OTYPE_OPENDRAIN(PF00_I2C2_SDA) | \
945 PIN_OTYPE_OPENDRAIN(PF01_I2C2_SCL) | \
946 PIN_OTYPE_PUSHPULL(PF02) | \
947 PIN_OTYPE_OPENDRAIN(PF03_SPI4_DRDY1) | \
948 PIN_OTYPE_PUSHPULL(PF04_VDD_3V3_SENSORS2_EN) | \
949 PIN_OTYPE_OPENDRAIN(PF05_SAFETY_IN) | \
950 PIN_OTYPE_PUSHPULL(PF06_UART7_RX) | \
951 PIN_OTYPE_PUSHPULL(PF07_SPI5_SCK) | \
952 PIN_OTYPE_OPENDRAIN(PF08_UART7_RTS) | \
953 PIN_OTYPE_PUSHPULL(PF09_ALARM) | \
954 PIN_OTYPE_PUSHPULL(PF10) | \
955 PIN_OTYPE_PUSHPULL(PF11_SPI5_MOSI) | \
956 PIN_OTYPE_PUSHPULL(PF12_ADC4) | \
957 PIN_OTYPE_OPENDRAIN(PF13_VDD_5V_HIPOWER_OC) | \
958 PIN_OTYPE_OPENDRAIN(PF14_I2C4_SCL) | \
959 PIN_OTYPE_OPENDRAIN(PF15_I2C4_SDA))
960
961#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PF00_I2C2_SDA) | \
962 PIN_OSPEED_SPEED_HIGH(PF01_I2C2_SCL) | \
963 PIN_OSPEED_SPEED_VERYLOW(PF02) | \
964 PIN_OSPEED_SPEED_VERYLOW(PF03_SPI4_DRDY1) | \
965 PIN_OSPEED_SPEED_VERYLOW(PF04_VDD_3V3_SENSORS2_EN) | \
966 PIN_OSPEED_SPEED_VERYLOW(PF05_SAFETY_IN) | \
967 PIN_OSPEED_SPEED_HIGH(PF06_UART7_RX) | \
968 PIN_OSPEED_SPEED_HIGH(PF07_SPI5_SCK) | \
969 PIN_OSPEED_SPEED_VERYLOW(PF08_UART7_RTS) | \
970 PIN_OSPEED_SPEED_HIGH(PF09_ALARM) | \
971 PIN_OSPEED_SPEED_VERYLOW(PF10) | \
972 PIN_OSPEED_SPEED_HIGH(PF11_SPI5_MOSI) | \
973 PIN_OSPEED_SPEED_VERYLOW(PF12_ADC4) | \
974 PIN_OSPEED_SPEED_VERYLOW(PF13_VDD_5V_HIPOWER_OC) | \
975 PIN_OSPEED_SPEED_HIGH(PF14_I2C4_SCL) | \
976 PIN_OSPEED_SPEED_HIGH(PF15_I2C4_SDA))
977
978#define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLUP(PF00_I2C2_SDA) | \
979 PIN_PUPDR_PULLUP(PF01_I2C2_SCL) | \
980 PIN_PUPDR_PULLDOWN(PF02) | \
981 PIN_PUPDR_PULLDOWN(PF03_SPI4_DRDY1) | \
982 PIN_PUPDR_FLOATING(PF04_VDD_3V3_SENSORS2_EN) | \
983 PIN_PUPDR_PULLDOWN(PF05_SAFETY_IN) | \
984 PIN_PUPDR_FLOATING(PF06_UART7_RX) | \
985 PIN_PUPDR_FLOATING(PF07_SPI5_SCK) | \
986 PIN_PUPDR_PULLDOWN(PF08_UART7_RTS) | \
987 PIN_PUPDR_FLOATING(PF09_ALARM) | \
988 PIN_PUPDR_PULLDOWN(PF10) | \
989 PIN_PUPDR_FLOATING(PF11_SPI5_MOSI) | \
990 PIN_PUPDR_FLOATING(PF12_ADC4) | \
991 PIN_PUPDR_PULLDOWN(PF13_VDD_5V_HIPOWER_OC) | \
992 PIN_PUPDR_PULLUP(PF14_I2C4_SCL) | \
993 PIN_PUPDR_PULLUP(PF15_I2C4_SDA))
994
995#define VAL_GPIOF_ODR (PIN_ODR_LEVEL_HIGH(PF00_I2C2_SDA) | \
996 PIN_ODR_LEVEL_HIGH(PF01_I2C2_SCL) | \
997 PIN_ODR_LEVEL_LOW(PF02) | \
998 PIN_ODR_LEVEL_HIGH(PF03_SPI4_DRDY1) | \
999 PIN_ODR_LEVEL_HIGH(PF04_VDD_3V3_SENSORS2_EN) | \
1000 PIN_ODR_LEVEL_LOW(PF05_SAFETY_IN) | \
1001 PIN_ODR_LEVEL_HIGH(PF06_UART7_RX) | \
1002 PIN_ODR_LEVEL_HIGH(PF07_SPI5_SCK) | \
1003 PIN_ODR_LEVEL_HIGH(PF08_UART7_RTS) | \
1004 PIN_ODR_LEVEL_LOW(PF09_ALARM) | \
1005 PIN_ODR_LEVEL_LOW(PF10) | \
1006 PIN_ODR_LEVEL_HIGH(PF11_SPI5_MOSI) | \
1007 PIN_ODR_LEVEL_LOW(PF12_ADC4) | \
1008 PIN_ODR_LEVEL_HIGH(PF13_VDD_5V_HIPOWER_OC) | \
1009 PIN_ODR_LEVEL_HIGH(PF14_I2C4_SCL) | \
1010 PIN_ODR_LEVEL_HIGH(PF15_I2C4_SDA))
1011
1012#define VAL_GPIOF_AFRL (PIN_AFIO_AF(PF00_I2C2_SDA, 4) | \
1013 PIN_AFIO_AF(PF01_I2C2_SCL, 4) | \
1014 PIN_AFIO_AF(PF02, 0) | \
1015 PIN_AFIO_AF(PF03_SPI4_DRDY1, 0) | \
1016 PIN_AFIO_AF(PF04_VDD_3V3_SENSORS2_EN, 0) | \
1017 PIN_AFIO_AF(PF05_SAFETY_IN, 0) | \
1018 PIN_AFIO_AF(PF06_UART7_RX, 7) | \
1019 PIN_AFIO_AF(PF07_SPI5_SCK, 5))
1020
1021#define VAL_GPIOF_AFRH (PIN_AFIO_AF(PF08_UART7_RTS, 0) | \
1022 PIN_AFIO_AF(PF09_ALARM, 1) | \
1023 PIN_AFIO_AF(PF10, 0) | \
1024 PIN_AFIO_AF(PF11_SPI5_MOSI, 5) | \
1025 PIN_AFIO_AF(PF12_ADC4, 0) | \
1026 PIN_AFIO_AF(PF13_VDD_5V_HIPOWER_OC, 0) | \
1027 PIN_AFIO_AF(PF14_I2C4_SCL, 4) | \
1028 PIN_AFIO_AF(PF15_I2C4_SDA, 4))
1029
1030#define VAL_GPIOG_MODER (PIN_MODE_INPUT(PG00_HW_VER_REV_DRIVE) | \
1031 PIN_MODE_INPUT(PG01_VDD_BRICK_VALID) | \
1032 PIN_MODE_INPUT(PG02_VDD_BRICK2_VALID) | \
1033 PIN_MODE_INPUT(PG03_VDD_BRICK3_VALID) | \
1034 PIN_MODE_OUTPUT(PG04_VDD_5V_PERIPH_EN) | \
1035 PIN_MODE_INPUT(PG05_DRDY1_BMP388) | \
1036 PIN_MODE_INPUT(PG06) | \
1037 PIN_MODE_INPUT(PG07_SPI_SLAVE6) | \
1038 PIN_MODE_OUTPUT(PG08_VDD_3V3_SENSORS4_EN) | \
1039 PIN_MODE_ALTERNATE(PG09_SPI1_MISO) | \
1040 PIN_MODE_OUTPUT(PG10_VDD_5V_HIPOWER_EN) | \
1041 PIN_MODE_ALTERNATE(PG11_SDIO_D2) | \
1042 PIN_MODE_INPUT(PG12_ETH_RMII_TXD1) | \
1043 PIN_MODE_INPUT(PG13_ETH_RMII_TXD0) | \
1044 PIN_MODE_ALTERNATE(PG14_SPI6_MOSI) | \
1045 PIN_MODE_OUTPUT(PG15_ETH_POWER_EN))
1046
1047#define VAL_GPIOG_OTYPER (PIN_OTYPE_OPENDRAIN(PG00_HW_VER_REV_DRIVE) | \
1048 PIN_OTYPE_OPENDRAIN(PG01_VDD_BRICK_VALID) | \
1049 PIN_OTYPE_OPENDRAIN(PG02_VDD_BRICK2_VALID) | \
1050 PIN_OTYPE_OPENDRAIN(PG03_VDD_BRICK3_VALID) | \
1051 PIN_OTYPE_PUSHPULL(PG04_VDD_5V_PERIPH_EN) | \
1052 PIN_OTYPE_OPENDRAIN(PG05_DRDY1_BMP388) | \
1053 PIN_OTYPE_PUSHPULL(PG06) | \
1054 PIN_OTYPE_OPENDRAIN(PG07_SPI_SLAVE6) | \
1055 PIN_OTYPE_PUSHPULL(PG08_VDD_3V3_SENSORS4_EN) | \
1056 PIN_OTYPE_PUSHPULL(PG09_SPI1_MISO) | \
1057 PIN_OTYPE_PUSHPULL(PG10_VDD_5V_HIPOWER_EN) | \
1058 PIN_OTYPE_PUSHPULL(PG11_SDIO_D2) | \
1059 PIN_OTYPE_OPENDRAIN(PG12_ETH_RMII_TXD1) | \
1060 PIN_OTYPE_OPENDRAIN(PG13_ETH_RMII_TXD0) | \
1061 PIN_OTYPE_PUSHPULL(PG14_SPI6_MOSI) | \
1062 PIN_OTYPE_PUSHPULL(PG15_ETH_POWER_EN))
1063
1064#define VAL_GPIOG_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PG00_HW_VER_REV_DRIVE) | \
1065 PIN_OSPEED_SPEED_VERYLOW(PG01_VDD_BRICK_VALID) | \
1066 PIN_OSPEED_SPEED_VERYLOW(PG02_VDD_BRICK2_VALID) | \
1067 PIN_OSPEED_SPEED_VERYLOW(PG03_VDD_BRICK3_VALID) | \
1068 PIN_OSPEED_SPEED_VERYLOW(PG04_VDD_5V_PERIPH_EN) | \
1069 PIN_OSPEED_SPEED_VERYLOW(PG05_DRDY1_BMP388) | \
1070 PIN_OSPEED_SPEED_VERYLOW(PG06) | \
1071 PIN_OSPEED_SPEED_VERYLOW(PG07_SPI_SLAVE6) | \
1072 PIN_OSPEED_SPEED_VERYLOW(PG08_VDD_3V3_SENSORS4_EN) | \
1073 PIN_OSPEED_SPEED_HIGH(PG09_SPI1_MISO) | \
1074 PIN_OSPEED_SPEED_VERYLOW(PG10_VDD_5V_HIPOWER_EN) | \
1075 PIN_OSPEED_SPEED_HIGH(PG11_SDIO_D2) | \
1076 PIN_OSPEED_SPEED_VERYLOW(PG12_ETH_RMII_TXD1) | \
1077 PIN_OSPEED_SPEED_VERYLOW(PG13_ETH_RMII_TXD0) | \
1078 PIN_OSPEED_SPEED_HIGH(PG14_SPI6_MOSI) | \
1079 PIN_OSPEED_SPEED_VERYLOW(PG15_ETH_POWER_EN))
1080
1081#define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLDOWN(PG00_HW_VER_REV_DRIVE) | \
1082 PIN_PUPDR_PULLDOWN(PG01_VDD_BRICK_VALID) | \
1083 PIN_PUPDR_PULLDOWN(PG02_VDD_BRICK2_VALID) | \
1084 PIN_PUPDR_PULLDOWN(PG03_VDD_BRICK3_VALID) | \
1085 PIN_PUPDR_FLOATING(PG04_VDD_5V_PERIPH_EN) | \
1086 PIN_PUPDR_PULLDOWN(PG05_DRDY1_BMP388) | \
1087 PIN_PUPDR_PULLDOWN(PG06) | \
1088 PIN_PUPDR_PULLDOWN(PG07_SPI_SLAVE6) | \
1089 PIN_PUPDR_FLOATING(PG08_VDD_3V3_SENSORS4_EN) | \
1090 PIN_PUPDR_FLOATING(PG09_SPI1_MISO) | \
1091 PIN_PUPDR_FLOATING(PG10_VDD_5V_HIPOWER_EN) | \
1092 PIN_PUPDR_PULLUP(PG11_SDIO_D2) | \
1093 PIN_PUPDR_PULLDOWN(PG12_ETH_RMII_TXD1) | \
1094 PIN_PUPDR_PULLDOWN(PG13_ETH_RMII_TXD0) | \
1095 PIN_PUPDR_FLOATING(PG14_SPI6_MOSI) | \
1096 PIN_PUPDR_FLOATING(PG15_ETH_POWER_EN))
1097
1098#define VAL_GPIOG_ODR (PIN_ODR_LEVEL_HIGH(PG00_HW_VER_REV_DRIVE) | \
1099 PIN_ODR_LEVEL_HIGH(PG01_VDD_BRICK_VALID) | \
1100 PIN_ODR_LEVEL_HIGH(PG02_VDD_BRICK2_VALID) | \
1101 PIN_ODR_LEVEL_HIGH(PG03_VDD_BRICK3_VALID) | \
1102 PIN_ODR_LEVEL_LOW(PG04_VDD_5V_PERIPH_EN) | \
1103 PIN_ODR_LEVEL_HIGH(PG05_DRDY1_BMP388) | \
1104 PIN_ODR_LEVEL_LOW(PG06) | \
1105 PIN_ODR_LEVEL_HIGH(PG07_SPI_SLAVE6) | \
1106 PIN_ODR_LEVEL_HIGH(PG08_VDD_3V3_SENSORS4_EN) | \
1107 PIN_ODR_LEVEL_HIGH(PG09_SPI1_MISO) | \
1108 PIN_ODR_LEVEL_LOW(PG10_VDD_5V_HIPOWER_EN) | \
1109 PIN_ODR_LEVEL_HIGH(PG11_SDIO_D2) | \
1110 PIN_ODR_LEVEL_HIGH(PG12_ETH_RMII_TXD1) | \
1111 PIN_ODR_LEVEL_HIGH(PG13_ETH_RMII_TXD0) | \
1112 PIN_ODR_LEVEL_HIGH(PG14_SPI6_MOSI) | \
1113 PIN_ODR_LEVEL_HIGH(PG15_ETH_POWER_EN))
1114
1115#define VAL_GPIOG_AFRL (PIN_AFIO_AF(PG00_HW_VER_REV_DRIVE, 0) | \
1116 PIN_AFIO_AF(PG01_VDD_BRICK_VALID, 0) | \
1117 PIN_AFIO_AF(PG02_VDD_BRICK2_VALID, 0) | \
1118 PIN_AFIO_AF(PG03_VDD_BRICK3_VALID, 0) | \
1119 PIN_AFIO_AF(PG04_VDD_5V_PERIPH_EN, 0) | \
1120 PIN_AFIO_AF(PG05_DRDY1_BMP388, 0) | \
1121 PIN_AFIO_AF(PG06, 0) | \
1122 PIN_AFIO_AF(PG07_SPI_SLAVE6, 0))
1123
1124#define VAL_GPIOG_AFRH (PIN_AFIO_AF(PG08_VDD_3V3_SENSORS4_EN, 0) | \
1125 PIN_AFIO_AF(PG09_SPI1_MISO, 5) | \
1126 PIN_AFIO_AF(PG10_VDD_5V_HIPOWER_EN, 0) | \
1127 PIN_AFIO_AF(PG11_SDIO_D2, 10) | \
1128 PIN_AFIO_AF(PG12_ETH_RMII_TXD1, 0) | \
1129 PIN_AFIO_AF(PG13_ETH_RMII_TXD0, 0) | \
1130 PIN_AFIO_AF(PG14_SPI6_MOSI, 5) | \
1131 PIN_AFIO_AF(PG15_ETH_POWER_EN, 0))
1132
1133#define VAL_GPIOH_MODER (PIN_MODE_ALTERNATE(PH00_OSC_IN) | \
1134 PIN_MODE_ALTERNATE(PH01_OSC_OUT) | \
1135 PIN_MODE_OUTPUT(PH02_SPEKTRUM_PWR_EN) | \
1136 PIN_MODE_INPUT(PH03_HW_VER_SENS) | \
1137 PIN_MODE_INPUT(PH04_HW_REV_SENS) | \
1138 PIN_MODE_INPUT(PH05_SPI_SLAVE2) | \
1139 PIN_MODE_INPUT(PH06) | \
1140 PIN_MODE_ALTERNATE(PH07_SPI5_MISO) | \
1141 PIN_MODE_ALTERNATE(PH08_I2C3_SDA) | \
1142 PIN_MODE_INPUT(PH09) | \
1143 PIN_MODE_ALTERNATE(PH10_SERVO4) | \
1144 PIN_MODE_ALTERNATE(PH11_SERVO3) | \
1145 PIN_MODE_ALTERNATE(PH12_SERVO2) | \
1146 PIN_MODE_ALTERNATE(PH13_UART4_TX) | \
1147 PIN_MODE_ALTERNATE(PH14_UART4_RX) | \
1148 PIN_MODE_INPUT(PH15_SPI_SLAVE5))
1149
1150#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(PH00_OSC_IN) | \
1151 PIN_OTYPE_PUSHPULL(PH01_OSC_OUT) | \
1152 PIN_OTYPE_PUSHPULL(PH02_SPEKTRUM_PWR_EN) | \
1153 PIN_OTYPE_OPENDRAIN(PH03_HW_VER_SENS) | \
1154 PIN_OTYPE_OPENDRAIN(PH04_HW_REV_SENS) | \
1155 PIN_OTYPE_OPENDRAIN(PH05_SPI_SLAVE2) | \
1156 PIN_OTYPE_PUSHPULL(PH06) | \
1157 PIN_OTYPE_PUSHPULL(PH07_SPI5_MISO) | \
1158 PIN_OTYPE_OPENDRAIN(PH08_I2C3_SDA) | \
1159 PIN_OTYPE_PUSHPULL(PH09) | \
1160 PIN_OTYPE_PUSHPULL(PH10_SERVO4) | \
1161 PIN_OTYPE_PUSHPULL(PH11_SERVO3) | \
1162 PIN_OTYPE_PUSHPULL(PH12_SERVO2) | \
1163 PIN_OTYPE_PUSHPULL(PH13_UART4_TX) | \
1164 PIN_OTYPE_PUSHPULL(PH14_UART4_RX) | \
1165 PIN_OTYPE_OPENDRAIN(PH15_SPI_SLAVE5))
1166
1167#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PH00_OSC_IN) | \
1168 PIN_OSPEED_SPEED_HIGH(PH01_OSC_OUT) | \
1169 PIN_OSPEED_SPEED_VERYLOW(PH02_SPEKTRUM_PWR_EN) | \
1170 PIN_OSPEED_SPEED_VERYLOW(PH03_HW_VER_SENS) | \
1171 PIN_OSPEED_SPEED_VERYLOW(PH04_HW_REV_SENS) | \
1172 PIN_OSPEED_SPEED_VERYLOW(PH05_SPI_SLAVE2) | \
1173 PIN_OSPEED_SPEED_VERYLOW(PH06) | \
1174 PIN_OSPEED_SPEED_HIGH(PH07_SPI5_MISO) | \
1175 PIN_OSPEED_SPEED_HIGH(PH08_I2C3_SDA) | \
1176 PIN_OSPEED_SPEED_VERYLOW(PH09) | \
1177 PIN_OSPEED_SPEED_HIGH(PH10_SERVO4) | \
1178 PIN_OSPEED_SPEED_HIGH(PH11_SERVO3) | \
1179 PIN_OSPEED_SPEED_HIGH(PH12_SERVO2) | \
1180 PIN_OSPEED_SPEED_HIGH(PH13_UART4_TX) | \
1181 PIN_OSPEED_SPEED_HIGH(PH14_UART4_RX) | \
1182 PIN_OSPEED_SPEED_VERYLOW(PH15_SPI_SLAVE5))
1183
1184#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(PH00_OSC_IN) | \
1185 PIN_PUPDR_FLOATING(PH01_OSC_OUT) | \
1186 PIN_PUPDR_FLOATING(PH02_SPEKTRUM_PWR_EN) | \
1187 PIN_PUPDR_PULLDOWN(PH03_HW_VER_SENS) | \
1188 PIN_PUPDR_PULLDOWN(PH04_HW_REV_SENS) | \
1189 PIN_PUPDR_PULLDOWN(PH05_SPI_SLAVE2) | \
1190 PIN_PUPDR_PULLDOWN(PH06) | \
1191 PIN_PUPDR_FLOATING(PH07_SPI5_MISO) | \
1192 PIN_PUPDR_PULLUP(PH08_I2C3_SDA) | \
1193 PIN_PUPDR_PULLDOWN(PH09) | \
1194 PIN_PUPDR_FLOATING(PH10_SERVO4) | \
1195 PIN_PUPDR_FLOATING(PH11_SERVO3) | \
1196 PIN_PUPDR_FLOATING(PH12_SERVO2) | \
1197 PIN_PUPDR_FLOATING(PH13_UART4_TX) | \
1198 PIN_PUPDR_FLOATING(PH14_UART4_RX) | \
1199 PIN_PUPDR_PULLDOWN(PH15_SPI_SLAVE5))
1200
1201#define VAL_GPIOH_ODR (PIN_ODR_LEVEL_HIGH(PH00_OSC_IN) | \
1202 PIN_ODR_LEVEL_HIGH(PH01_OSC_OUT) | \
1203 PIN_ODR_LEVEL_HIGH(PH02_SPEKTRUM_PWR_EN) | \
1204 PIN_ODR_LEVEL_HIGH(PH03_HW_VER_SENS) | \
1205 PIN_ODR_LEVEL_HIGH(PH04_HW_REV_SENS) | \
1206 PIN_ODR_LEVEL_HIGH(PH05_SPI_SLAVE2) | \
1207 PIN_ODR_LEVEL_LOW(PH06) | \
1208 PIN_ODR_LEVEL_HIGH(PH07_SPI5_MISO) | \
1209 PIN_ODR_LEVEL_HIGH(PH08_I2C3_SDA) | \
1210 PIN_ODR_LEVEL_LOW(PH09) | \
1211 PIN_ODR_LEVEL_LOW(PH10_SERVO4) | \
1212 PIN_ODR_LEVEL_LOW(PH11_SERVO3) | \
1213 PIN_ODR_LEVEL_LOW(PH12_SERVO2) | \
1214 PIN_ODR_LEVEL_HIGH(PH13_UART4_TX) | \
1215 PIN_ODR_LEVEL_HIGH(PH14_UART4_RX) | \
1216 PIN_ODR_LEVEL_HIGH(PH15_SPI_SLAVE5))
1217
1218#define VAL_GPIOH_AFRL (PIN_AFIO_AF(PH00_OSC_IN, 0) | \
1219 PIN_AFIO_AF(PH01_OSC_OUT, 0) | \
1220 PIN_AFIO_AF(PH02_SPEKTRUM_PWR_EN, 0) | \
1221 PIN_AFIO_AF(PH03_HW_VER_SENS, 0) | \
1222 PIN_AFIO_AF(PH04_HW_REV_SENS, 0) | \
1223 PIN_AFIO_AF(PH05_SPI_SLAVE2, 0) | \
1224 PIN_AFIO_AF(PH06, 0) | \
1225 PIN_AFIO_AF(PH07_SPI5_MISO, 5))
1226
1227#define VAL_GPIOH_AFRH (PIN_AFIO_AF(PH08_I2C3_SDA, 4) | \
1228 PIN_AFIO_AF(PH09, 0) | \
1229 PIN_AFIO_AF(PH10_SERVO4, 2) | \
1230 PIN_AFIO_AF(PH11_SERVO3, 2) | \
1231 PIN_AFIO_AF(PH12_SERVO2, 2) | \
1232 PIN_AFIO_AF(PH13_UART4_TX, 8) | \
1233 PIN_AFIO_AF(PH14_UART4_RX, 8) | \
1234 PIN_AFIO_AF(PH15_SPI_SLAVE5, 0))
1235
1236#define VAL_GPIOI_MODER (PIN_MODE_ALTERNATE(PI00_SERVO1) | \
1237 PIN_MODE_ALTERNATE(PI01_SPI2_SCK) | \
1238 PIN_MODE_ALTERNATE(PI02_SPI2_MISO) | \
1239 PIN_MODE_ALTERNATE(PI03_SPI2_MOSI) | \
1240 PIN_MODE_INPUT(PI04_SPI_SLAVE3) | \
1241 PIN_MODE_ALTERNATE(PI05_PWM_INPUT1) | \
1242 PIN_MODE_INPUT(PI06_SPI3_DRDY1) | \
1243 PIN_MODE_INPUT(PI07_SPI3_DRDY2) | \
1244 PIN_MODE_INPUT(PI08_SPI_SLAVE4) | \
1245 PIN_MODE_INPUT(PI09_SPI_SLAVE1) | \
1246 PIN_MODE_INPUT(PI10_SPI_SLAVE7) | \
1247 PIN_MODE_OUTPUT(PI11_VDD_3V3_SENSORS1_EN) | \
1248 PIN_MODE_INPUT(PI12) | \
1249 PIN_MODE_INPUT(PI13) | \
1250 PIN_MODE_INPUT(PI14) | \
1251 PIN_MODE_INPUT(PI15))
1252
1253#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(PI00_SERVO1) | \
1254 PIN_OTYPE_PUSHPULL(PI01_SPI2_SCK) | \
1255 PIN_OTYPE_PUSHPULL(PI02_SPI2_MISO) | \
1256 PIN_OTYPE_PUSHPULL(PI03_SPI2_MOSI) | \
1257 PIN_OTYPE_OPENDRAIN(PI04_SPI_SLAVE3) | \
1258 PIN_OTYPE_PUSHPULL(PI05_PWM_INPUT1) | \
1259 PIN_OTYPE_OPENDRAIN(PI06_SPI3_DRDY1) | \
1260 PIN_OTYPE_OPENDRAIN(PI07_SPI3_DRDY2) | \
1261 PIN_OTYPE_OPENDRAIN(PI08_SPI_SLAVE4) | \
1262 PIN_OTYPE_OPENDRAIN(PI09_SPI_SLAVE1) | \
1263 PIN_OTYPE_OPENDRAIN(PI10_SPI_SLAVE7) | \
1264 PIN_OTYPE_PUSHPULL(PI11_VDD_3V3_SENSORS1_EN) | \
1265 PIN_OTYPE_PUSHPULL(PI12) | \
1266 PIN_OTYPE_PUSHPULL(PI13) | \
1267 PIN_OTYPE_PUSHPULL(PI14) | \
1268 PIN_OTYPE_PUSHPULL(PI15))
1269
1270#define VAL_GPIOI_OSPEEDR (PIN_OSPEED_SPEED_HIGH(PI00_SERVO1) | \
1271 PIN_OSPEED_SPEED_HIGH(PI01_SPI2_SCK) | \
1272 PIN_OSPEED_SPEED_HIGH(PI02_SPI2_MISO) | \
1273 PIN_OSPEED_SPEED_HIGH(PI03_SPI2_MOSI) | \
1274 PIN_OSPEED_SPEED_VERYLOW(PI04_SPI_SLAVE3) | \
1275 PIN_OSPEED_SPEED_HIGH(PI05_PWM_INPUT1) | \
1276 PIN_OSPEED_SPEED_VERYLOW(PI06_SPI3_DRDY1) | \
1277 PIN_OSPEED_SPEED_VERYLOW(PI07_SPI3_DRDY2) | \
1278 PIN_OSPEED_SPEED_VERYLOW(PI08_SPI_SLAVE4) | \
1279 PIN_OSPEED_SPEED_VERYLOW(PI09_SPI_SLAVE1) | \
1280 PIN_OSPEED_SPEED_VERYLOW(PI10_SPI_SLAVE7) | \
1281 PIN_OSPEED_SPEED_VERYLOW(PI11_VDD_3V3_SENSORS1_EN) | \
1282 PIN_OSPEED_SPEED_VERYLOW(PI12) | \
1283 PIN_OSPEED_SPEED_VERYLOW(PI13) | \
1284 PIN_OSPEED_SPEED_VERYLOW(PI14) | \
1285 PIN_OSPEED_SPEED_VERYLOW(PI15))
1286
1287#define VAL_GPIOI_PUPDR (PIN_PUPDR_FLOATING(PI00_SERVO1) | \
1288 PIN_PUPDR_FLOATING(PI01_SPI2_SCK) | \
1289 PIN_PUPDR_FLOATING(PI02_SPI2_MISO) | \
1290 PIN_PUPDR_FLOATING(PI03_SPI2_MOSI) | \
1291 PIN_PUPDR_PULLDOWN(PI04_SPI_SLAVE3) | \
1292 PIN_PUPDR_FLOATING(PI05_PWM_INPUT1) | \
1293 PIN_PUPDR_PULLDOWN(PI06_SPI3_DRDY1) | \
1294 PIN_PUPDR_PULLDOWN(PI07_SPI3_DRDY2) | \
1295 PIN_PUPDR_PULLDOWN(PI08_SPI_SLAVE4) | \
1296 PIN_PUPDR_PULLDOWN(PI09_SPI_SLAVE1) | \
1297 PIN_PUPDR_PULLDOWN(PI10_SPI_SLAVE7) | \
1298 PIN_PUPDR_FLOATING(PI11_VDD_3V3_SENSORS1_EN) | \
1299 PIN_PUPDR_PULLDOWN(PI12) | \
1300 PIN_PUPDR_PULLDOWN(PI13) | \
1301 PIN_PUPDR_PULLDOWN(PI14) | \
1302 PIN_PUPDR_PULLDOWN(PI15))
1303
1304#define VAL_GPIOI_ODR (PIN_ODR_LEVEL_LOW(PI00_SERVO1) | \
1305 PIN_ODR_LEVEL_HIGH(PI01_SPI2_SCK) | \
1306 PIN_ODR_LEVEL_HIGH(PI02_SPI2_MISO) | \
1307 PIN_ODR_LEVEL_HIGH(PI03_SPI2_MOSI) | \
1308 PIN_ODR_LEVEL_HIGH(PI04_SPI_SLAVE3) | \
1309 PIN_ODR_LEVEL_HIGH(PI05_PWM_INPUT1) | \
1310 PIN_ODR_LEVEL_HIGH(PI06_SPI3_DRDY1) | \
1311 PIN_ODR_LEVEL_HIGH(PI07_SPI3_DRDY2) | \
1312 PIN_ODR_LEVEL_HIGH(PI08_SPI_SLAVE4) | \
1313 PIN_ODR_LEVEL_HIGH(PI09_SPI_SLAVE1) | \
1314 PIN_ODR_LEVEL_HIGH(PI10_SPI_SLAVE7) | \
1315 PIN_ODR_LEVEL_HIGH(PI11_VDD_3V3_SENSORS1_EN) | \
1316 PIN_ODR_LEVEL_LOW(PI12) | \
1317 PIN_ODR_LEVEL_LOW(PI13) | \
1318 PIN_ODR_LEVEL_LOW(PI14) | \
1319 PIN_ODR_LEVEL_LOW(PI15))
1320
1321#define VAL_GPIOI_AFRL (PIN_AFIO_AF(PI00_SERVO1, 2) | \
1322 PIN_AFIO_AF(PI01_SPI2_SCK, 5) | \
1323 PIN_AFIO_AF(PI02_SPI2_MISO, 5) | \
1324 PIN_AFIO_AF(PI03_SPI2_MOSI, 5) | \
1325 PIN_AFIO_AF(PI04_SPI_SLAVE3, 0) | \
1326 PIN_AFIO_AF(PI05_PWM_INPUT1, 3) | \
1327 PIN_AFIO_AF(PI06_SPI3_DRDY1, 0) | \
1328 PIN_AFIO_AF(PI07_SPI3_DRDY2, 0))
1329
1330#define VAL_GPIOI_AFRH (PIN_AFIO_AF(PI08_SPI_SLAVE4, 0) | \
1331 PIN_AFIO_AF(PI09_SPI_SLAVE1, 0) | \
1332 PIN_AFIO_AF(PI10_SPI_SLAVE7, 0) | \
1333 PIN_AFIO_AF(PI11_VDD_3V3_SENSORS1_EN, 0) | \
1334 PIN_AFIO_AF(PI12, 0) | \
1335 PIN_AFIO_AF(PI13, 0) | \
1336 PIN_AFIO_AF(PI14, 0) | \
1337 PIN_AFIO_AF(PI15, 0))
1338
1339#define VAL_GPIOJ_MODER (PIN_MODE_INPUT(PJ00) | \
1340 PIN_MODE_INPUT(PJ01) | \
1341 PIN_MODE_INPUT(PJ02) | \
1342 PIN_MODE_INPUT(PJ03) | \
1343 PIN_MODE_INPUT(PJ04) | \
1344 PIN_MODE_INPUT(PJ05) | \
1345 PIN_MODE_INPUT(PJ06) | \
1346 PIN_MODE_INPUT(PJ07) | \
1347 PIN_MODE_INPUT(PJ08) | \
1348 PIN_MODE_INPUT(PJ09) | \
1349 PIN_MODE_INPUT(PJ10) | \
1350 PIN_MODE_INPUT(PJ11) | \
1351 PIN_MODE_INPUT(PJ12) | \
1352 PIN_MODE_INPUT(PJ13) | \
1353 PIN_MODE_INPUT(PJ14) | \
1354 PIN_MODE_INPUT(PJ15))
1355
1356#define VAL_GPIOJ_OTYPER (PIN_OTYPE_PUSHPULL(PJ00) | \
1357 PIN_OTYPE_PUSHPULL(PJ01) | \
1358 PIN_OTYPE_PUSHPULL(PJ02) | \
1359 PIN_OTYPE_PUSHPULL(PJ03) | \
1360 PIN_OTYPE_PUSHPULL(PJ04) | \
1361 PIN_OTYPE_PUSHPULL(PJ05) | \
1362 PIN_OTYPE_PUSHPULL(PJ06) | \
1363 PIN_OTYPE_PUSHPULL(PJ07) | \
1364 PIN_OTYPE_PUSHPULL(PJ08) | \
1365 PIN_OTYPE_PUSHPULL(PJ09) | \
1366 PIN_OTYPE_PUSHPULL(PJ10) | \
1367 PIN_OTYPE_PUSHPULL(PJ11) | \
1368 PIN_OTYPE_PUSHPULL(PJ12) | \
1369 PIN_OTYPE_PUSHPULL(PJ13) | \
1370 PIN_OTYPE_PUSHPULL(PJ14) | \
1371 PIN_OTYPE_PUSHPULL(PJ15))
1372
1373#define VAL_GPIOJ_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PJ00) | \
1374 PIN_OSPEED_SPEED_VERYLOW(PJ01) | \
1375 PIN_OSPEED_SPEED_VERYLOW(PJ02) | \
1376 PIN_OSPEED_SPEED_VERYLOW(PJ03) | \
1377 PIN_OSPEED_SPEED_VERYLOW(PJ04) | \
1378 PIN_OSPEED_SPEED_VERYLOW(PJ05) | \
1379 PIN_OSPEED_SPEED_VERYLOW(PJ06) | \
1380 PIN_OSPEED_SPEED_VERYLOW(PJ07) | \
1381 PIN_OSPEED_SPEED_VERYLOW(PJ08) | \
1382 PIN_OSPEED_SPEED_VERYLOW(PJ09) | \
1383 PIN_OSPEED_SPEED_VERYLOW(PJ10) | \
1384 PIN_OSPEED_SPEED_VERYLOW(PJ11) | \
1385 PIN_OSPEED_SPEED_VERYLOW(PJ12) | \
1386 PIN_OSPEED_SPEED_VERYLOW(PJ13) | \
1387 PIN_OSPEED_SPEED_VERYLOW(PJ14) | \
1388 PIN_OSPEED_SPEED_VERYLOW(PJ15))
1389
1390#define VAL_GPIOJ_PUPDR (PIN_PUPDR_PULLDOWN(PJ00) | \
1391 PIN_PUPDR_PULLDOWN(PJ01) | \
1392 PIN_PUPDR_PULLDOWN(PJ02) | \
1393 PIN_PUPDR_PULLDOWN(PJ03) | \
1394 PIN_PUPDR_PULLDOWN(PJ04) | \
1395 PIN_PUPDR_PULLDOWN(PJ05) | \
1396 PIN_PUPDR_PULLDOWN(PJ06) | \
1397 PIN_PUPDR_PULLDOWN(PJ07) | \
1398 PIN_PUPDR_PULLDOWN(PJ08) | \
1399 PIN_PUPDR_PULLDOWN(PJ09) | \
1400 PIN_PUPDR_PULLDOWN(PJ10) | \
1401 PIN_PUPDR_PULLDOWN(PJ11) | \
1402 PIN_PUPDR_PULLDOWN(PJ12) | \
1403 PIN_PUPDR_PULLDOWN(PJ13) | \
1404 PIN_PUPDR_PULLDOWN(PJ14) | \
1405 PIN_PUPDR_PULLDOWN(PJ15))
1406
1407#define VAL_GPIOJ_ODR (PIN_ODR_LEVEL_LOW(PJ00) | \
1408 PIN_ODR_LEVEL_LOW(PJ01) | \
1409 PIN_ODR_LEVEL_LOW(PJ02) | \
1410 PIN_ODR_LEVEL_LOW(PJ03) | \
1411 PIN_ODR_LEVEL_LOW(PJ04) | \
1412 PIN_ODR_LEVEL_LOW(PJ05) | \
1413 PIN_ODR_LEVEL_LOW(PJ06) | \
1414 PIN_ODR_LEVEL_LOW(PJ07) | \
1415 PIN_ODR_LEVEL_LOW(PJ08) | \
1416 PIN_ODR_LEVEL_LOW(PJ09) | \
1417 PIN_ODR_LEVEL_LOW(PJ10) | \
1418 PIN_ODR_LEVEL_LOW(PJ11) | \
1419 PIN_ODR_LEVEL_LOW(PJ12) | \
1420 PIN_ODR_LEVEL_LOW(PJ13) | \
1421 PIN_ODR_LEVEL_LOW(PJ14) | \
1422 PIN_ODR_LEVEL_LOW(PJ15))
1423
1424#define VAL_GPIOJ_AFRL (PIN_AFIO_AF(PJ00, 0) | \
1425 PIN_AFIO_AF(PJ01, 0) | \
1426 PIN_AFIO_AF(PJ02, 0) | \
1427 PIN_AFIO_AF(PJ03, 0) | \
1428 PIN_AFIO_AF(PJ04, 0) | \
1429 PIN_AFIO_AF(PJ05, 0) | \
1430 PIN_AFIO_AF(PJ06, 0) | \
1431 PIN_AFIO_AF(PJ07, 0))
1432
1433#define VAL_GPIOJ_AFRH (PIN_AFIO_AF(PJ08, 0) | \
1434 PIN_AFIO_AF(PJ09, 0) | \
1435 PIN_AFIO_AF(PJ10, 0) | \
1436 PIN_AFIO_AF(PJ11, 0) | \
1437 PIN_AFIO_AF(PJ12, 0) | \
1438 PIN_AFIO_AF(PJ13, 0) | \
1439 PIN_AFIO_AF(PJ14, 0) | \
1440 PIN_AFIO_AF(PJ15, 0))
1441
1442#define VAL_GPIOK_MODER (PIN_MODE_INPUT(PK00) | \
1443 PIN_MODE_INPUT(PK01) | \
1444 PIN_MODE_INPUT(PK02) | \
1445 PIN_MODE_INPUT(PK03) | \
1446 PIN_MODE_INPUT(PK04) | \
1447 PIN_MODE_INPUT(PK05) | \
1448 PIN_MODE_INPUT(PK06) | \
1449 PIN_MODE_INPUT(PK07) | \
1450 PIN_MODE_INPUT(PK08) | \
1451 PIN_MODE_INPUT(PK09) | \
1452 PIN_MODE_INPUT(PK10) | \
1453 PIN_MODE_INPUT(PK11) | \
1454 PIN_MODE_INPUT(PK12) | \
1455 PIN_MODE_INPUT(PK13) | \
1456 PIN_MODE_INPUT(PK14) | \
1457 PIN_MODE_INPUT(PK15))
1458
1459#define VAL_GPIOK_OTYPER (PIN_OTYPE_PUSHPULL(PK00) | \
1460 PIN_OTYPE_PUSHPULL(PK01) | \
1461 PIN_OTYPE_PUSHPULL(PK02) | \
1462 PIN_OTYPE_PUSHPULL(PK03) | \
1463 PIN_OTYPE_PUSHPULL(PK04) | \
1464 PIN_OTYPE_PUSHPULL(PK05) | \
1465 PIN_OTYPE_PUSHPULL(PK06) | \
1466 PIN_OTYPE_PUSHPULL(PK07) | \
1467 PIN_OTYPE_PUSHPULL(PK08) | \
1468 PIN_OTYPE_PUSHPULL(PK09) | \
1469 PIN_OTYPE_PUSHPULL(PK10) | \
1470 PIN_OTYPE_PUSHPULL(PK11) | \
1471 PIN_OTYPE_PUSHPULL(PK12) | \
1472 PIN_OTYPE_PUSHPULL(PK13) | \
1473 PIN_OTYPE_PUSHPULL(PK14) | \
1474 PIN_OTYPE_PUSHPULL(PK15))
1475
1476#define VAL_GPIOK_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PK00) | \
1477 PIN_OSPEED_SPEED_VERYLOW(PK01) | \
1478 PIN_OSPEED_SPEED_VERYLOW(PK02) | \
1479 PIN_OSPEED_SPEED_VERYLOW(PK03) | \
1480 PIN_OSPEED_SPEED_VERYLOW(PK04) | \
1481 PIN_OSPEED_SPEED_VERYLOW(PK05) | \
1482 PIN_OSPEED_SPEED_VERYLOW(PK06) | \
1483 PIN_OSPEED_SPEED_VERYLOW(PK07) | \
1484 PIN_OSPEED_SPEED_VERYLOW(PK08) | \
1485 PIN_OSPEED_SPEED_VERYLOW(PK09) | \
1486 PIN_OSPEED_SPEED_VERYLOW(PK10) | \
1487 PIN_OSPEED_SPEED_VERYLOW(PK11) | \
1488 PIN_OSPEED_SPEED_VERYLOW(PK12) | \
1489 PIN_OSPEED_SPEED_VERYLOW(PK13) | \
1490 PIN_OSPEED_SPEED_VERYLOW(PK14) | \
1491 PIN_OSPEED_SPEED_VERYLOW(PK15))
1492
1493#define VAL_GPIOK_PUPDR (PIN_PUPDR_PULLDOWN(PK00) | \
1494 PIN_PUPDR_PULLDOWN(PK01) | \
1495 PIN_PUPDR_PULLDOWN(PK02) | \
1496 PIN_PUPDR_PULLDOWN(PK03) | \
1497 PIN_PUPDR_PULLDOWN(PK04) | \
1498 PIN_PUPDR_PULLDOWN(PK05) | \
1499 PIN_PUPDR_PULLDOWN(PK06) | \
1500 PIN_PUPDR_PULLDOWN(PK07) | \
1501 PIN_PUPDR_PULLDOWN(PK08) | \
1502 PIN_PUPDR_PULLDOWN(PK09) | \
1503 PIN_PUPDR_PULLDOWN(PK10) | \
1504 PIN_PUPDR_PULLDOWN(PK11) | \
1505 PIN_PUPDR_PULLDOWN(PK12) | \
1506 PIN_PUPDR_PULLDOWN(PK13) | \
1507 PIN_PUPDR_PULLDOWN(PK14) | \
1508 PIN_PUPDR_PULLDOWN(PK15))
1509
1510#define VAL_GPIOK_ODR (PIN_ODR_LEVEL_LOW(PK00) | \
1511 PIN_ODR_LEVEL_LOW(PK01) | \
1512 PIN_ODR_LEVEL_LOW(PK02) | \
1513 PIN_ODR_LEVEL_LOW(PK03) | \
1514 PIN_ODR_LEVEL_LOW(PK04) | \
1515 PIN_ODR_LEVEL_LOW(PK05) | \
1516 PIN_ODR_LEVEL_LOW(PK06) | \
1517 PIN_ODR_LEVEL_LOW(PK07) | \
1518 PIN_ODR_LEVEL_LOW(PK08) | \
1519 PIN_ODR_LEVEL_LOW(PK09) | \
1520 PIN_ODR_LEVEL_LOW(PK10) | \
1521 PIN_ODR_LEVEL_LOW(PK11) | \
1522 PIN_ODR_LEVEL_LOW(PK12) | \
1523 PIN_ODR_LEVEL_LOW(PK13) | \
1524 PIN_ODR_LEVEL_LOW(PK14) | \
1525 PIN_ODR_LEVEL_LOW(PK15))
1526
1527#define VAL_GPIOK_AFRL (PIN_AFIO_AF(PK00, 0) | \
1528 PIN_AFIO_AF(PK01, 0) | \
1529 PIN_AFIO_AF(PK02, 0) | \
1530 PIN_AFIO_AF(PK03, 0) | \
1531 PIN_AFIO_AF(PK04, 0) | \
1532 PIN_AFIO_AF(PK05, 0) | \
1533 PIN_AFIO_AF(PK06, 0) | \
1534 PIN_AFIO_AF(PK07, 0))
1535
1536#define VAL_GPIOK_AFRH (PIN_AFIO_AF(PK08, 0) | \
1537 PIN_AFIO_AF(PK09, 0) | \
1538 PIN_AFIO_AF(PK10, 0) | \
1539 PIN_AFIO_AF(PK11, 0) | \
1540 PIN_AFIO_AF(PK12, 0) | \
1541 PIN_AFIO_AF(PK13, 0) | \
1542 PIN_AFIO_AF(PK14, 0) | \
1543 PIN_AFIO_AF(PK15, 0))
1544
1545#define AF_PA03_UART2 7U
1546#define AF_LINE_UART2 7U
1547#define AF_PA05_SPI1_SCK 5U
1548#define AF_LINE_SPI1_SCK 5U
1549#define AF_PA06_SPI6_MISO 8U
1550#define AF_LINE_SPI6_MISO 8U
1551#define AF_PA08_I2C3_SCL 4U
1552#define AF_LINE_I2C3_SCL 4U
1553#define AF_PA11_USB_DM 10U
1554#define AF_LINE_USB_DM 10U
1555#define AF_PA12_USB_DP 10U
1556#define AF_LINE_USB_DP 10U
1557#define AF_PA13_SWDIO 0U
1558#define AF_LINE_SWDIO 0U
1559#define AF_PA14_SWCLK 0U
1560#define AF_LINE_SWCLK 0U
1561#define AF_PB02_SPI3_MOSI 7U
1562#define AF_LINE_SPI3_MOSI 7U
1563#define AF_PB03_SPI6_SCK 8U
1564#define AF_LINE_SPI6_SCK 8U
1565#define AF_PB04_SDIO_D3 9U
1566#define AF_LINE_SDIO_D3 9U
1567#define AF_PB05_SPI1_MOSI 5U
1568#define AF_LINE_SPI1_MOSI 5U
1569#define AF_PB06_UART1_TX 7U
1570#define AF_LINE_UART1_TX 7U
1571#define AF_PB07_UART1_RX 7U
1572#define AF_LINE_UART1_RX 7U
1573#define AF_PB08_I2C1_SCL 4U
1574#define AF_LINE_I2C1_SCL 4U
1575#define AF_PB09_I2C1_SDA 4U
1576#define AF_LINE_I2C1_SDA 4U
1577#define AF_PB12_CAN2_RX 9U
1578#define AF_LINE_CAN2_RX 9U
1579#define AF_PB13_CAN2_TX 9U
1580#define AF_LINE_CAN2_TX 9U
1581#define AF_PB14_SDIO_D0 9U
1582#define AF_LINE_SDIO_D0 9U
1583#define AF_PB15_SDIO_D1 9U
1584#define AF_LINE_SDIO_D1 9U
1585#define AF_PC06_UART6_TX 7U
1586#define AF_LINE_UART6_TX 7U
1587#define AF_PC07_UART6_RX 7U
1588#define AF_LINE_UART6_RX 7U
1589#define AF_PC10_SPI3_SCK 6U
1590#define AF_LINE_SPI3_SCK 6U
1591#define AF_PC11_SPI3_MISO 6U
1592#define AF_LINE_SPI3_MISO 6U
1593#define AF_PC12_UART5_TX 8U
1594#define AF_LINE_UART5_TX 8U
1595#define AF_PD00_CAN1_RX 9U
1596#define AF_LINE_CAN1_RX 9U
1597#define AF_PD01_CAN1_TX 9U
1598#define AF_LINE_CAN1_TX 9U
1599#define AF_PD02_UART5_RX 8U
1600#define AF_LINE_UART5_RX 8U
1601#define AF_PD05_UART2_TX 7U
1602#define AF_LINE_UART2_TX 7U
1603#define AF_PD06_SDIO_CK 11U
1604#define AF_LINE_SDIO_CK 11U
1605#define AF_PD07_SDIO_CMD 11U
1606#define AF_LINE_SDIO_CMD 11U
1607#define AF_PD08_UART3_TX 7U
1608#define AF_LINE_UART3_TX 7U
1609#define AF_PD09_UART3_RX 7U
1610#define AF_LINE_UART3_RX 7U
1611#define AF_PD13_SERVO5 2U
1612#define AF_LINE_SERVO5 2U
1613#define AF_PD14_SERVO6 2U
1614#define AF_LINE_SERVO6 2U
1615#define AF_PE00_UART8_RX 8U
1616#define AF_LINE_UART8_RX 8U
1617#define AF_PE01_UART8_TX 8U
1618#define AF_LINE_UART8_TX 8U
1619#define AF_PE08_UART7_TX 7U
1620#define AF_LINE_UART7_TX 7U
1621#define AF_PE12_SPI4_SCK 5U
1622#define AF_LINE_SPI4_SCK 5U
1623#define AF_PE13_SPI4_MISO 5U
1624#define AF_LINE_SPI4_MISO 5U
1625#define AF_PE14_SPI4_MOSI 5U
1626#define AF_LINE_SPI4_MOSI 5U
1627#define AF_PF00_I2C2_SDA 4U
1628#define AF_LINE_I2C2_SDA 4U
1629#define AF_PF01_I2C2_SCL 4U
1630#define AF_LINE_I2C2_SCL 4U
1631#define AF_PF06_UART7_RX 7U
1632#define AF_LINE_UART7_RX 7U
1633#define AF_PF07_SPI5_SCK 5U
1634#define AF_LINE_SPI5_SCK 5U
1635#define AF_PF09_ALARM 1U
1636#define AF_LINE_ALARM 1U
1637#define AF_PF11_SPI5_MOSI 5U
1638#define AF_LINE_SPI5_MOSI 5U
1639#define AF_PF14_I2C4_SCL 4U
1640#define AF_LINE_I2C4_SCL 4U
1641#define AF_PF15_I2C4_SDA 4U
1642#define AF_LINE_I2C4_SDA 4U
1643#define AF_PG09_SPI1_MISO 5U
1644#define AF_LINE_SPI1_MISO 5U
1645#define AF_PG11_SDIO_D2 10U
1646#define AF_LINE_SDIO_D2 10U
1647#define AF_PG14_SPI6_MOSI 5U
1648#define AF_LINE_SPI6_MOSI 5U
1649#define AF_PH00_OSC_IN 0U
1650#define AF_LINE_OSC_IN 0U
1651#define AF_PH01_OSC_OUT 0U
1652#define AF_LINE_OSC_OUT 0U
1653#define AF_PH07_SPI5_MISO 5U
1654#define AF_LINE_SPI5_MISO 5U
1655#define AF_PH08_I2C3_SDA 4U
1656#define AF_LINE_I2C3_SDA 4U
1657#define AF_PH10_SERVO4 2U
1658#define AF_LINE_SERVO4 2U
1659#define AF_PH11_SERVO3 2U
1660#define AF_LINE_SERVO3 2U
1661#define AF_PH12_SERVO2 2U
1662#define AF_LINE_SERVO2 2U
1663#define AF_PH13_UART4_TX 8U
1664#define AF_LINE_UART4_TX 8U
1665#define AF_PH14_UART4_RX 8U
1666#define AF_LINE_UART4_RX 8U
1667#define AF_PI00_SERVO1 2U
1668#define AF_LINE_SERVO1 2U
1669#define AF_PI01_SPI2_SCK 5U
1670#define AF_LINE_SPI2_SCK 5U
1671#define AF_PI02_SPI2_MISO 5U
1672#define AF_LINE_SPI2_MISO 5U
1673#define AF_PI03_SPI2_MOSI 5U
1674#define AF_LINE_SPI2_MOSI 5U
1675#define AF_PI05_PWM_INPUT1 3U
1676#define AF_LINE_PWM_INPUT1 3U
1677
1678
1679#define ADC1_ADC 1
1680#define ADC1_ADC_FN INP
1681#define ADC1_ADC_INP 16
1682#define UART2_USART 2
1683#define UART2_USART_FN RX
1684#define UART2_USART_AF 7
1685#define ADC2_ADC 1
1686#define ADC2_ADC_FN INP
1687#define ADC2_ADC_INP 18
1688#define ADC3_ADC 1
1689#define ADC3_ADC_FN INP
1690#define ADC3_ADC_INP 9
1691#define ADC5_ADC 1
1692#define ADC5_ADC_FN INP
1693#define ADC5_ADC_INP 5
1694#define ADC6_ADC 3
1695#define ADC6_ADC_FN INP
1696#define ADC6_ADC_INP 0
1697#define ADC7_ADC 3
1698#define ADC7_ADC_FN INP
1699#define ADC7_ADC_INP 1
1700#define SERVO5_TIM 4
1701#define SERVO5_TIM_FN CH
1702#define SERVO5_TIM_CH 2
1703#define SERVO5_TIM_AF 2
1704#define SERVO6_TIM 4
1705#define SERVO6_TIM_FN CH
1706#define SERVO6_TIM_CH 3
1707#define SERVO6_TIM_AF 2
1708#define ALARM_TIM 17
1709#define ALARM_TIM_FN CH
1710#define ALARM_TIM_CH 1
1711#define ALARM_TIM_AF 1
1712#define ADC4_ADC 1
1713#define ADC4_ADC_FN INP
1714#define ADC4_ADC_INP 6
1715#define SERVO4_TIM 5
1716#define SERVO4_TIM_FN CH
1717#define SERVO4_TIM_CH 1
1718#define SERVO4_TIM_AF 2
1719#define SERVO3_TIM 5
1720#define SERVO3_TIM_FN CH
1721#define SERVO3_TIM_CH 2
1722#define SERVO3_TIM_AF 2
1723#define SERVO2_TIM 5
1724#define SERVO2_TIM_FN CH
1725#define SERVO2_TIM_CH 3
1726#define SERVO2_TIM_AF 2
1727#define SERVO1_TIM 5
1728#define SERVO1_TIM_FN CH
1729#define SERVO1_TIM_CH 4
1730#define SERVO1_TIM_AF 2
1731#define PWM_INPUT1_TIM 8
1732#define PWM_INPUT1_TIM_FN CH
1733#define PWM_INPUT1_TIM_CH 1
1734#define PWM_INPUT1_TIM_AF 3
1735
1736#define BOARD_GROUP_DECLFOREACH(line, group) \
1737 static const ioline_t group ## _ARRAY[] = {group}; \
1738 for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1739
1740#define BOARD_GROUP_FOREACH(line, group) \
1741 for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1742
1743
1744#define BOARD_GROUP_DECLFOR(array, index, group) \
1745 static const ioline_t group ## _ARRAY[] = {group}; \
1746 for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1747
1748#define BOARD_GROUP_FOR(array, index, group) \
1749 for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1750
1751#define ENERGY_SAVE_INPUTS \
1752 LINE_LED4, \
1753 LINE_SERVO5, \
1754 LINE_SERVO6, \
1755 LINE_LED1, \
1756 LINE_LED2, \
1757 LINE_LED3, \
1758 LINE_SPI_SLAVE6, \
1759 LINE_SPI_SLAVE2, \
1760 LINE_SERVO4, \
1761 LINE_SERVO3, \
1762 LINE_SERVO2, \
1763 LINE_SPI_SLAVE5, \
1764 LINE_SERVO1, \
1765 LINE_SPI_SLAVE3, \
1766 LINE_SPI_SLAVE4, \
1767 LINE_SPI_SLAVE1, \
1768 LINE_SPI_SLAVE7
1769#define ENERGY_SAVE_INPUTS_SIZE 17
1770
1771#define ENERGY_SAVE_LOWS \
1772 LINE_VDD_3V3_SENSORS3_EN, \
1773 LINE_VDD_3V3_SENSORS2_EN, \
1774 LINE_ALARM, \
1775 LINE_VDD_3V3_SENSORS4_EN, \
1776 LINE_ETH_POWER_EN, \
1777 LINE_VDD_3V3_SENSORS1_EN
1778#define ENERGY_SAVE_LOWS_SIZE 6
1779
1780#if !defined(_FROM_ASM_)
1781#ifdef __cplusplus
1782extern "C" {
1783#endif
1784 void boardInit(void);
1785#ifdef __cplusplus
1786}
1787#endif
1788#endif /* _FROM_ASM_ */
1789
void boardInit(void)
Board-specific initialization code.
Definition board.c:317