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