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