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