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