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