Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
board.h
Go to the documentation of this file.
1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#pragma once
18
19/*
20 * Board identifier.
21 */
22#define BOARD_ST_CRAZYFLIE
23#define BOARD_NAME "Bitcraze Crazyflie 2.1"
24
25/*
26 * Board oscillators-related settings.
27 * NOTE: LSE fitted.
28 */
29#if !defined(STM32_LSECLK)
30#define STM32_LSECLK 32768
31#endif
32
33#if !defined(STM32_HSECLK)
34#define STM32_HSECLK 8000000
35#endif
36
37/*
38 * Board voltages.
39 * Required for performance limits calculation.
40 */
41#define STM32_VDD 300
42
43/*
44 * MCU type as defined in the ST header file stm32f4xx.h.
45 */
46#define STM32F405xx
47
48/*
49 * AHB_CLK
50 */
51#define AHB_CLK STM32_HCLK
52
53
54/*
55 * IO pins assignments.
56 */
57#define PA00 0U
58#define MOTOR1 1U
59#define E_TX2 2U
60#define E_RX2 3U
61#define NRF_FLOW_CTRL 4U
62#define E_SCK 5U
63#define E_MISO 6U
64#define E_MOSI 7U
65#define I2C3_SCL 8U
66#define PA09 9U
67#define USB_ID 10U
68#define USB_DM 11U
69#define USB_DP 12U
70#define STM_SWIO 13U
71#define STM_SWCLK 14U
72#define MOTOR3 15U
73
74#define PB00 0U
75#define PB01 1U
76#define BOOT1 2U
77#define PB03 3U
78#define E_CS1 4U
79#define E_CS2 5U
80#define I2C1_SCL 6U
81#define I2C1_SDA 7U
82#define E_CS3 8U
83#define MOTOR4 9U
84#define PB10 10U
85#define MOTOR2 11U
86#define PB12 12U
87#define NRF_SWCLK 13U
88#define PB14 14U
89#define NRF_SWIO 15U
90
91#define LED_RED_L 0U
92#define LED_GREEN_L 1U
93#define LED_GREEN_R 2U
94#define LED_RED_R 3U
95#define PC04 4U
96#define PC05 5U
97#define NRF_TX 6U
98#define NRF_RX 7U
99#define PC08 8U
100#define I2C3_SDA 9U
101#define E_TX1 10U
102#define E_RX1 11U
103#define E_CS0 12U
104#define PC13 13U
105#define PC14 14U
106#define PC15 15U
107
108#define PD00 0U
109#define PD01 1U
110#define LED_BLUE_L 2U
111#define PD03 3U
112#define PD04 4U
113#define PD05 5U
114#define PD06 6U
115#define PD07 7U
116#define PD08 8U
117#define PD09 9U
118#define PD10 10U
119#define PD11 11U
120#define PD12 12U
121#define PD13 13U
122#define PD14 14U
123#define PD15 15U
124
125#define PE00 0U
126#define PE01 1U
127#define PE02 2U
128#define PE03 3U
129#define PE04 4U
130#define PE05 5U
131#define PE06 6U
132#define PE07 7U
133#define PE08 8U
134#define PE09 9U
135#define PE10 10U
136#define PE11 11U
137#define PE12 12U
138#define PE13 13U
139#define PE14 14U
140#define PE15 15U
141
142#define PF00 0U
143#define PF01 1U
144#define PF02 2U
145#define PF03 3U
146#define PF04 4U
147#define PF05 5U
148#define PF06 6U
149#define PF07 7U
150#define PF08 8U
151#define PF09 9U
152#define PF10 10U
153#define PF11 11U
154#define PF12 12U
155#define PF13 13U
156#define PF14 14U
157#define PF15 15U
158
159#define PG00 0U
160#define PG01 1U
161#define PG02 2U
162#define PG03 3U
163#define PG04 4U
164#define PG05 5U
165#define PG06 6U
166#define PG07 7U
167#define PG08 8U
168#define PG09 9U
169#define PG10 10U
170#define PG11 11U
171#define PG12 12U
172#define PG13 13U
173#define PG14 14U
174#define PG15 15U
175
176#define OSC_IN 0U
177#define OSC_OUT 1U
178#define PH02 2U
179#define PH03 3U
180#define PH04 4U
181#define PH05 5U
182#define PH06 6U
183#define PH07 7U
184#define PH08 8U
185#define PH09 9U
186#define PH10 10U
187#define PH11 11U
188#define PH12 12U
189#define PH13 13U
190#define PH14 14U
191#define PH15 15U
192
193#define PI00 0U
194#define PI01 1U
195#define PI02 2U
196#define PI03 3U
197#define PI04 4U
198#define PI05 5U
199#define PI06 6U
200#define PI07 7U
201#define PI08 8U
202#define PI09 9U
203#define PI10 10U
204#define PI11 11U
205#define PI12 12U
206#define PI13 13U
207#define PI14 14U
208#define PI15 15U
209
210#define PJ00 0U
211#define PJ01 1U
212#define PJ02 2U
213#define PJ03 3U
214#define PJ04 4U
215#define PJ05 5U
216#define PJ06 6U
217#define PJ07 7U
218#define PJ08 8U
219#define PJ09 9U
220#define PJ10 10U
221#define PJ11 11U
222#define PJ12 12U
223#define PJ13 13U
224#define PJ14 14U
225#define PJ15 15U
226
227#define PK00 0U
228#define PK01 1U
229#define PK02 2U
230#define PK03 3U
231#define PK04 4U
232#define PK05 5U
233#define PK06 6U
234#define PK07 7U
235#define PK08 8U
236#define PK09 9U
237#define PK10 10U
238#define PK11 11U
239#define PK12 12U
240#define PK13 13U
241#define PK14 14U
242#define PK15 15U
243
244/*
245 * IO lines assignments.
246 */
247#define LINE_MOTOR1 PAL_LINE(GPIOA, 1U)
248#define LINE_E_TX2 PAL_LINE(GPIOA, 2U)
249#define LINE_E_RX2 PAL_LINE(GPIOA, 3U)
250#define LINE_NRF_FLOW_CTRL PAL_LINE(GPIOA, 4U)
251#define LINE_E_SCK PAL_LINE(GPIOA, 5U)
252#define LINE_E_MISO PAL_LINE(GPIOA, 6U)
253#define LINE_E_MOSI PAL_LINE(GPIOA, 7U)
254#define LINE_I2C3_SCL PAL_LINE(GPIOA, 8U)
255#define LINE_USB_ID PAL_LINE(GPIOA, 10U)
256#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
257#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
258#define LINE_STM_SWIO PAL_LINE(GPIOA, 13U)
259#define LINE_STM_SWCLK PAL_LINE(GPIOA, 14U)
260#define LINE_MOTOR3 PAL_LINE(GPIOA, 15U)
261
262#define LINE_BOOT1 PAL_LINE(GPIOB, 2U)
263#define LINE_E_CS1 PAL_LINE(GPIOB, 4U)
264#define LINE_E_CS2 PAL_LINE(GPIOB, 5U)
265#define LINE_I2C1_SCL PAL_LINE(GPIOB, 6U)
266#define LINE_I2C1_SDA PAL_LINE(GPIOB, 7U)
267#define LINE_E_CS3 PAL_LINE(GPIOB, 8U)
268#define LINE_MOTOR4 PAL_LINE(GPIOB, 9U)
269#define LINE_MOTOR2 PAL_LINE(GPIOB, 11U)
270#define LINE_NRF_SWCLK PAL_LINE(GPIOB, 13U)
271#define LINE_NRF_SWIO PAL_LINE(GPIOB, 15U)
272
273#define LINE_LED_RED_L PAL_LINE(GPIOC, 0U)
274#define LINE_LED_GREEN_L PAL_LINE(GPIOC, 1U)
275#define LINE_LED_GREEN_R PAL_LINE(GPIOC, 2U)
276#define LINE_LED_RED_R PAL_LINE(GPIOC, 3U)
277#define LINE_NRF_TX PAL_LINE(GPIOC, 6U)
278#define LINE_NRF_RX PAL_LINE(GPIOC, 7U)
279#define LINE_I2C3_SDA PAL_LINE(GPIOC, 9U)
280#define LINE_E_TX1 PAL_LINE(GPIOC, 10U)
281#define LINE_E_RX1 PAL_LINE(GPIOC, 11U)
282#define LINE_E_CS0 PAL_LINE(GPIOC, 12U)
283
284#define LINE_LED_BLUE_L PAL_LINE(GPIOD, 2U)
285
286#define LINE_OSC_IN PAL_LINE(GPIOH, 0U)
287#define LINE_OSC_OUT PAL_LINE(GPIOH, 1U)
288
289
290/*
291 * I/O ports initial setup, this configuration is established soon after reset
292 * in the initialization code.
293 * Please refer to the STM32 Reference Manual for details.
294 */
295#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
296#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
297#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
298#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
299#define PIN_ODR_LEVEL_LOW(n) (0U << (n))
300#define PIN_ODR_LEVEL_HIGH(n) (1U << (n))
301#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
302#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
303#define PIN_OSPEED_SPEED_VERYLOW(n) (0U << ((n) * 2U))
304#define PIN_OSPEED_SPEED_LOW(n) (1U << ((n) * 2U))
305#define PIN_OSPEED_SPEED_MEDIUM(n) (2U << ((n) * 2U))
306#define PIN_OSPEED_SPEED_HIGH(n) (3U << ((n) * 2U))
307#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
308#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
309#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
310#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
311
312#define VAL_GPIOA_MODER (PIN_MODE_INPUT(PA00) | \
313 PIN_MODE_ALTERNATE(MOTOR1) | \
314 PIN_MODE_ALTERNATE(E_TX2) | \
315 PIN_MODE_ALTERNATE(E_RX2) | \
316 PIN_MODE_INPUT(NRF_FLOW_CTRL) | \
317 PIN_MODE_ALTERNATE(E_SCK) | \
318 PIN_MODE_ALTERNATE(E_MISO) | \
319 PIN_MODE_ALTERNATE(E_MOSI) | \
320 PIN_MODE_ALTERNATE(I2C3_SCL) | \
321 PIN_MODE_INPUT(PA09) | \
322 PIN_MODE_ALTERNATE(USB_ID) | \
323 PIN_MODE_ALTERNATE(USB_DM) | \
324 PIN_MODE_ALTERNATE(USB_DP) | \
325 PIN_MODE_ALTERNATE(STM_SWIO) | \
326 PIN_MODE_ALTERNATE(STM_SWCLK) | \
327 PIN_MODE_ALTERNATE(MOTOR3))
328
329#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(PA00) | \
330 PIN_OTYPE_PUSHPULL(MOTOR1) | \
331 PIN_OTYPE_PUSHPULL(E_TX2) | \
332 PIN_OTYPE_PUSHPULL(E_RX2) | \
333 PIN_OTYPE_OPENDRAIN(NRF_FLOW_CTRL) | \
334 PIN_OTYPE_PUSHPULL(E_SCK) | \
335 PIN_OTYPE_PUSHPULL(E_MISO) | \
336 PIN_OTYPE_PUSHPULL(E_MOSI) | \
337 PIN_OTYPE_OPENDRAIN(I2C3_SCL) | \
338 PIN_OTYPE_PUSHPULL(PA09) | \
339 PIN_OTYPE_PUSHPULL(USB_ID) | \
340 PIN_OTYPE_PUSHPULL(USB_DM) | \
341 PIN_OTYPE_PUSHPULL(USB_DP) | \
342 PIN_OTYPE_PUSHPULL(STM_SWIO) | \
343 PIN_OTYPE_PUSHPULL(STM_SWCLK) | \
344 PIN_OTYPE_PUSHPULL(MOTOR3))
345
346#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PA00) | \
347 PIN_OSPEED_SPEED_HIGH(MOTOR1) | \
348 PIN_OSPEED_SPEED_HIGH(E_TX2) | \
349 PIN_OSPEED_SPEED_HIGH(E_RX2) | \
350 PIN_OSPEED_SPEED_VERYLOW(NRF_FLOW_CTRL) | \
351 PIN_OSPEED_SPEED_HIGH(E_SCK) | \
352 PIN_OSPEED_SPEED_HIGH(E_MISO) | \
353 PIN_OSPEED_SPEED_HIGH(E_MOSI) | \
354 PIN_OSPEED_SPEED_HIGH(I2C3_SCL) | \
355 PIN_OSPEED_SPEED_VERYLOW(PA09) | \
356 PIN_OSPEED_SPEED_HIGH(USB_ID) | \
357 PIN_OSPEED_SPEED_HIGH(USB_DM) | \
358 PIN_OSPEED_SPEED_HIGH(USB_DP) | \
359 PIN_OSPEED_SPEED_HIGH(STM_SWIO) | \
360 PIN_OSPEED_SPEED_HIGH(STM_SWCLK) | \
361 PIN_OSPEED_SPEED_HIGH(MOTOR3))
362
363#define VAL_GPIOA_PUPDR (PIN_PUPDR_PULLDOWN(PA00) | \
364 PIN_PUPDR_FLOATING(MOTOR1) | \
365 PIN_PUPDR_FLOATING(E_TX2) | \
366 PIN_PUPDR_FLOATING(E_RX2) | \
367 PIN_PUPDR_FLOATING(NRF_FLOW_CTRL) | \
368 PIN_PUPDR_FLOATING(E_SCK) | \
369 PIN_PUPDR_FLOATING(E_MISO) | \
370 PIN_PUPDR_FLOATING(E_MOSI) | \
371 PIN_PUPDR_PULLUP(I2C3_SCL) | \
372 PIN_PUPDR_PULLDOWN(PA09) | \
373 PIN_PUPDR_FLOATING(USB_ID) | \
374 PIN_PUPDR_FLOATING(USB_DM) | \
375 PIN_PUPDR_FLOATING(USB_DP) | \
376 PIN_PUPDR_FLOATING(STM_SWIO) | \
377 PIN_PUPDR_FLOATING(STM_SWCLK) | \
378 PIN_PUPDR_FLOATING(MOTOR3))
379
380#define VAL_GPIOA_ODR (PIN_ODR_LEVEL_LOW(PA00) | \
381 PIN_ODR_LEVEL_LOW(MOTOR1) | \
382 PIN_ODR_LEVEL_HIGH(E_TX2) | \
383 PIN_ODR_LEVEL_HIGH(E_RX2) | \
384 PIN_ODR_LEVEL_LOW(NRF_FLOW_CTRL) | \
385 PIN_ODR_LEVEL_HIGH(E_SCK) | \
386 PIN_ODR_LEVEL_HIGH(E_MISO) | \
387 PIN_ODR_LEVEL_HIGH(E_MOSI) | \
388 PIN_ODR_LEVEL_HIGH(I2C3_SCL) | \
389 PIN_ODR_LEVEL_LOW(PA09) | \
390 PIN_ODR_LEVEL_HIGH(USB_ID) | \
391 PIN_ODR_LEVEL_HIGH(USB_DM) | \
392 PIN_ODR_LEVEL_HIGH(USB_DP) | \
393 PIN_ODR_LEVEL_HIGH(STM_SWIO) | \
394 PIN_ODR_LEVEL_HIGH(STM_SWCLK) | \
395 PIN_ODR_LEVEL_LOW(MOTOR3))
396
397#define VAL_GPIOA_AFRL (PIN_AFIO_AF(PA00, 0) | \
398 PIN_AFIO_AF(MOTOR1, 1) | \
399 PIN_AFIO_AF(E_TX2, 7) | \
400 PIN_AFIO_AF(E_RX2, 7) | \
401 PIN_AFIO_AF(NRF_FLOW_CTRL, 0) | \
402 PIN_AFIO_AF(E_SCK, 5) | \
403 PIN_AFIO_AF(E_MISO, 5) | \
404 PIN_AFIO_AF(E_MOSI, 5))
405
406#define VAL_GPIOA_AFRH (PIN_AFIO_AF(I2C3_SCL, 4) | \
407 PIN_AFIO_AF(PA09, 0) | \
408 PIN_AFIO_AF(USB_ID, 10) | \
409 PIN_AFIO_AF(USB_DM, 10) | \
410 PIN_AFIO_AF(USB_DP, 10) | \
411 PIN_AFIO_AF(STM_SWIO, 0) | \
412 PIN_AFIO_AF(STM_SWCLK, 0) | \
413 PIN_AFIO_AF(MOTOR3, 1))
414
415#define VAL_GPIOB_MODER (PIN_MODE_INPUT(PB00) | \
416 PIN_MODE_INPUT(PB01) | \
417 PIN_MODE_INPUT(BOOT1) | \
418 PIN_MODE_INPUT(PB03) | \
419 PIN_MODE_INPUT(E_CS1) | \
420 PIN_MODE_INPUT(E_CS2) | \
421 PIN_MODE_ALTERNATE(I2C1_SCL) | \
422 PIN_MODE_ALTERNATE(I2C1_SDA) | \
423 PIN_MODE_INPUT(E_CS3) | \
424 PIN_MODE_ALTERNATE(MOTOR4) | \
425 PIN_MODE_INPUT(PB10) | \
426 PIN_MODE_ALTERNATE(MOTOR2) | \
427 PIN_MODE_INPUT(PB12) | \
428 PIN_MODE_INPUT(NRF_SWCLK) | \
429 PIN_MODE_INPUT(PB14) | \
430 PIN_MODE_INPUT(NRF_SWIO))
431
432#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(PB00) | \
433 PIN_OTYPE_PUSHPULL(PB01) | \
434 PIN_OTYPE_OPENDRAIN(BOOT1) | \
435 PIN_OTYPE_PUSHPULL(PB03) | \
436 PIN_OTYPE_OPENDRAIN(E_CS1) | \
437 PIN_OTYPE_OPENDRAIN(E_CS2) | \
438 PIN_OTYPE_OPENDRAIN(I2C1_SCL) | \
439 PIN_OTYPE_OPENDRAIN(I2C1_SDA) | \
440 PIN_OTYPE_OPENDRAIN(E_CS3) | \
441 PIN_OTYPE_PUSHPULL(MOTOR4) | \
442 PIN_OTYPE_PUSHPULL(PB10) | \
443 PIN_OTYPE_PUSHPULL(MOTOR2) | \
444 PIN_OTYPE_PUSHPULL(PB12) | \
445 PIN_OTYPE_OPENDRAIN(NRF_SWCLK) | \
446 PIN_OTYPE_PUSHPULL(PB14) | \
447 PIN_OTYPE_OPENDRAIN(NRF_SWIO))
448
449#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PB00) | \
450 PIN_OSPEED_SPEED_VERYLOW(PB01) | \
451 PIN_OSPEED_SPEED_VERYLOW(BOOT1) | \
452 PIN_OSPEED_SPEED_VERYLOW(PB03) | \
453 PIN_OSPEED_SPEED_VERYLOW(E_CS1) | \
454 PIN_OSPEED_SPEED_VERYLOW(E_CS2) | \
455 PIN_OSPEED_SPEED_HIGH(I2C1_SCL) | \
456 PIN_OSPEED_SPEED_HIGH(I2C1_SDA) | \
457 PIN_OSPEED_SPEED_VERYLOW(E_CS3) | \
458 PIN_OSPEED_SPEED_HIGH(MOTOR4) | \
459 PIN_OSPEED_SPEED_VERYLOW(PB10) | \
460 PIN_OSPEED_SPEED_HIGH(MOTOR2) | \
461 PIN_OSPEED_SPEED_VERYLOW(PB12) | \
462 PIN_OSPEED_SPEED_VERYLOW(NRF_SWCLK) | \
463 PIN_OSPEED_SPEED_VERYLOW(PB14) | \
464 PIN_OSPEED_SPEED_VERYLOW(NRF_SWIO))
465
466#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLDOWN(PB00) | \
467 PIN_PUPDR_PULLDOWN(PB01) | \
468 PIN_PUPDR_FLOATING(BOOT1) | \
469 PIN_PUPDR_PULLDOWN(PB03) | \
470 PIN_PUPDR_FLOATING(E_CS1) | \
471 PIN_PUPDR_FLOATING(E_CS2) | \
472 PIN_PUPDR_PULLUP(I2C1_SCL) | \
473 PIN_PUPDR_PULLUP(I2C1_SDA) | \
474 PIN_PUPDR_FLOATING(E_CS3) | \
475 PIN_PUPDR_FLOATING(MOTOR4) | \
476 PIN_PUPDR_PULLDOWN(PB10) | \
477 PIN_PUPDR_FLOATING(MOTOR2) | \
478 PIN_PUPDR_PULLDOWN(PB12) | \
479 PIN_PUPDR_FLOATING(NRF_SWCLK) | \
480 PIN_PUPDR_PULLDOWN(PB14) | \
481 PIN_PUPDR_FLOATING(NRF_SWIO))
482
483#define VAL_GPIOB_ODR (PIN_ODR_LEVEL_LOW(PB00) | \
484 PIN_ODR_LEVEL_LOW(PB01) | \
485 PIN_ODR_LEVEL_LOW(BOOT1) | \
486 PIN_ODR_LEVEL_LOW(PB03) | \
487 PIN_ODR_LEVEL_LOW(E_CS1) | \
488 PIN_ODR_LEVEL_LOW(E_CS2) | \
489 PIN_ODR_LEVEL_HIGH(I2C1_SCL) | \
490 PIN_ODR_LEVEL_HIGH(I2C1_SDA) | \
491 PIN_ODR_LEVEL_LOW(E_CS3) | \
492 PIN_ODR_LEVEL_LOW(MOTOR4) | \
493 PIN_ODR_LEVEL_LOW(PB10) | \
494 PIN_ODR_LEVEL_LOW(MOTOR2) | \
495 PIN_ODR_LEVEL_LOW(PB12) | \
496 PIN_ODR_LEVEL_LOW(NRF_SWCLK) | \
497 PIN_ODR_LEVEL_LOW(PB14) | \
498 PIN_ODR_LEVEL_LOW(NRF_SWIO))
499
500#define VAL_GPIOB_AFRL (PIN_AFIO_AF(PB00, 0) | \
501 PIN_AFIO_AF(PB01, 0) | \
502 PIN_AFIO_AF(BOOT1, 0) | \
503 PIN_AFIO_AF(PB03, 0) | \
504 PIN_AFIO_AF(E_CS1, 0) | \
505 PIN_AFIO_AF(E_CS2, 0) | \
506 PIN_AFIO_AF(I2C1_SCL, 4) | \
507 PIN_AFIO_AF(I2C1_SDA, 4))
508
509#define VAL_GPIOB_AFRH (PIN_AFIO_AF(E_CS3, 0) | \
510 PIN_AFIO_AF(MOTOR4, 2) | \
511 PIN_AFIO_AF(PB10, 0) | \
512 PIN_AFIO_AF(MOTOR2, 1) | \
513 PIN_AFIO_AF(PB12, 0) | \
514 PIN_AFIO_AF(NRF_SWCLK, 0) | \
515 PIN_AFIO_AF(PB14, 0) | \
516 PIN_AFIO_AF(NRF_SWIO, 0))
517
518#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(LED_RED_L) | \
519 PIN_MODE_OUTPUT(LED_GREEN_L) | \
520 PIN_MODE_OUTPUT(LED_GREEN_R) | \
521 PIN_MODE_OUTPUT(LED_RED_R) | \
522 PIN_MODE_INPUT(PC04) | \
523 PIN_MODE_INPUT(PC05) | \
524 PIN_MODE_ALTERNATE(NRF_TX) | \
525 PIN_MODE_ALTERNATE(NRF_RX) | \
526 PIN_MODE_INPUT(PC08) | \
527 PIN_MODE_ALTERNATE(I2C3_SDA) | \
528 PIN_MODE_ALTERNATE(E_TX1) | \
529 PIN_MODE_ALTERNATE(E_RX1) | \
530 PIN_MODE_INPUT(E_CS0) | \
531 PIN_MODE_INPUT(PC13) | \
532 PIN_MODE_INPUT(PC14) | \
533 PIN_MODE_INPUT(PC15))
534
535#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(LED_RED_L) | \
536 PIN_OTYPE_PUSHPULL(LED_GREEN_L) | \
537 PIN_OTYPE_PUSHPULL(LED_GREEN_R) | \
538 PIN_OTYPE_PUSHPULL(LED_RED_R) | \
539 PIN_OTYPE_PUSHPULL(PC04) | \
540 PIN_OTYPE_PUSHPULL(PC05) | \
541 PIN_OTYPE_PUSHPULL(NRF_TX) | \
542 PIN_OTYPE_PUSHPULL(NRF_RX) | \
543 PIN_OTYPE_PUSHPULL(PC08) | \
544 PIN_OTYPE_OPENDRAIN(I2C3_SDA) | \
545 PIN_OTYPE_PUSHPULL(E_TX1) | \
546 PIN_OTYPE_PUSHPULL(E_RX1) | \
547 PIN_OTYPE_OPENDRAIN(E_CS0) | \
548 PIN_OTYPE_PUSHPULL(PC13) | \
549 PIN_OTYPE_PUSHPULL(PC14) | \
550 PIN_OTYPE_PUSHPULL(PC15))
551
552#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(LED_RED_L) | \
553 PIN_OSPEED_SPEED_VERYLOW(LED_GREEN_L) | \
554 PIN_OSPEED_SPEED_VERYLOW(LED_GREEN_R) | \
555 PIN_OSPEED_SPEED_VERYLOW(LED_RED_R) | \
556 PIN_OSPEED_SPEED_VERYLOW(PC04) | \
557 PIN_OSPEED_SPEED_VERYLOW(PC05) | \
558 PIN_OSPEED_SPEED_HIGH(NRF_TX) | \
559 PIN_OSPEED_SPEED_HIGH(NRF_RX) | \
560 PIN_OSPEED_SPEED_VERYLOW(PC08) | \
561 PIN_OSPEED_SPEED_HIGH(I2C3_SDA) | \
562 PIN_OSPEED_SPEED_HIGH(E_TX1) | \
563 PIN_OSPEED_SPEED_HIGH(E_RX1) | \
564 PIN_OSPEED_SPEED_VERYLOW(E_CS0) | \
565 PIN_OSPEED_SPEED_VERYLOW(PC13) | \
566 PIN_OSPEED_SPEED_VERYLOW(PC14) | \
567 PIN_OSPEED_SPEED_VERYLOW(PC15))
568
569#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(LED_RED_L) | \
570 PIN_PUPDR_FLOATING(LED_GREEN_L) | \
571 PIN_PUPDR_FLOATING(LED_GREEN_R) | \
572 PIN_PUPDR_FLOATING(LED_RED_R) | \
573 PIN_PUPDR_PULLDOWN(PC04) | \
574 PIN_PUPDR_PULLDOWN(PC05) | \
575 PIN_PUPDR_FLOATING(NRF_TX) | \
576 PIN_PUPDR_FLOATING(NRF_RX) | \
577 PIN_PUPDR_PULLDOWN(PC08) | \
578 PIN_PUPDR_PULLUP(I2C3_SDA) | \
579 PIN_PUPDR_FLOATING(E_TX1) | \
580 PIN_PUPDR_FLOATING(E_RX1) | \
581 PIN_PUPDR_FLOATING(E_CS0) | \
582 PIN_PUPDR_PULLDOWN(PC13) | \
583 PIN_PUPDR_PULLDOWN(PC14) | \
584 PIN_PUPDR_PULLDOWN(PC15))
585
586#define VAL_GPIOC_ODR (PIN_ODR_LEVEL_LOW(LED_RED_L) | \
587 PIN_ODR_LEVEL_LOW(LED_GREEN_L) | \
588 PIN_ODR_LEVEL_LOW(LED_GREEN_R) | \
589 PIN_ODR_LEVEL_LOW(LED_RED_R) | \
590 PIN_ODR_LEVEL_LOW(PC04) | \
591 PIN_ODR_LEVEL_LOW(PC05) | \
592 PIN_ODR_LEVEL_HIGH(NRF_TX) | \
593 PIN_ODR_LEVEL_HIGH(NRF_RX) | \
594 PIN_ODR_LEVEL_LOW(PC08) | \
595 PIN_ODR_LEVEL_HIGH(I2C3_SDA) | \
596 PIN_ODR_LEVEL_HIGH(E_TX1) | \
597 PIN_ODR_LEVEL_HIGH(E_RX1) | \
598 PIN_ODR_LEVEL_LOW(E_CS0) | \
599 PIN_ODR_LEVEL_LOW(PC13) | \
600 PIN_ODR_LEVEL_LOW(PC14) | \
601 PIN_ODR_LEVEL_LOW(PC15))
602
603#define VAL_GPIOC_AFRL (PIN_AFIO_AF(LED_RED_L, 0) | \
604 PIN_AFIO_AF(LED_GREEN_L, 0) | \
605 PIN_AFIO_AF(LED_GREEN_R, 0) | \
606 PIN_AFIO_AF(LED_RED_R, 0) | \
607 PIN_AFIO_AF(PC04, 0) | \
608 PIN_AFIO_AF(PC05, 0) | \
609 PIN_AFIO_AF(NRF_TX, 8) | \
610 PIN_AFIO_AF(NRF_RX, 8))
611
612#define VAL_GPIOC_AFRH (PIN_AFIO_AF(PC08, 0) | \
613 PIN_AFIO_AF(I2C3_SDA, 4) | \
614 PIN_AFIO_AF(E_TX1, 7) | \
615 PIN_AFIO_AF(E_RX1, 7) | \
616 PIN_AFIO_AF(E_CS0, 0) | \
617 PIN_AFIO_AF(PC13, 0) | \
618 PIN_AFIO_AF(PC14, 0) | \
619 PIN_AFIO_AF(PC15, 0))
620
621#define VAL_GPIOD_MODER (PIN_MODE_INPUT(PD00) | \
622 PIN_MODE_INPUT(PD01) | \
623 PIN_MODE_OUTPUT(LED_BLUE_L) | \
624 PIN_MODE_INPUT(PD03) | \
625 PIN_MODE_INPUT(PD04) | \
626 PIN_MODE_INPUT(PD05) | \
627 PIN_MODE_INPUT(PD06) | \
628 PIN_MODE_INPUT(PD07) | \
629 PIN_MODE_INPUT(PD08) | \
630 PIN_MODE_INPUT(PD09) | \
631 PIN_MODE_INPUT(PD10) | \
632 PIN_MODE_INPUT(PD11) | \
633 PIN_MODE_INPUT(PD12) | \
634 PIN_MODE_INPUT(PD13) | \
635 PIN_MODE_INPUT(PD14) | \
636 PIN_MODE_INPUT(PD15))
637
638#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(PD00) | \
639 PIN_OTYPE_PUSHPULL(PD01) | \
640 PIN_OTYPE_PUSHPULL(LED_BLUE_L) | \
641 PIN_OTYPE_PUSHPULL(PD03) | \
642 PIN_OTYPE_PUSHPULL(PD04) | \
643 PIN_OTYPE_PUSHPULL(PD05) | \
644 PIN_OTYPE_PUSHPULL(PD06) | \
645 PIN_OTYPE_PUSHPULL(PD07) | \
646 PIN_OTYPE_PUSHPULL(PD08) | \
647 PIN_OTYPE_PUSHPULL(PD09) | \
648 PIN_OTYPE_PUSHPULL(PD10) | \
649 PIN_OTYPE_PUSHPULL(PD11) | \
650 PIN_OTYPE_PUSHPULL(PD12) | \
651 PIN_OTYPE_PUSHPULL(PD13) | \
652 PIN_OTYPE_PUSHPULL(PD14) | \
653 PIN_OTYPE_PUSHPULL(PD15))
654
655#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PD00) | \
656 PIN_OSPEED_SPEED_VERYLOW(PD01) | \
657 PIN_OSPEED_SPEED_VERYLOW(LED_BLUE_L) | \
658 PIN_OSPEED_SPEED_VERYLOW(PD03) | \
659 PIN_OSPEED_SPEED_VERYLOW(PD04) | \
660 PIN_OSPEED_SPEED_VERYLOW(PD05) | \
661 PIN_OSPEED_SPEED_VERYLOW(PD06) | \
662 PIN_OSPEED_SPEED_VERYLOW(PD07) | \
663 PIN_OSPEED_SPEED_VERYLOW(PD08) | \
664 PIN_OSPEED_SPEED_VERYLOW(PD09) | \
665 PIN_OSPEED_SPEED_VERYLOW(PD10) | \
666 PIN_OSPEED_SPEED_VERYLOW(PD11) | \
667 PIN_OSPEED_SPEED_VERYLOW(PD12) | \
668 PIN_OSPEED_SPEED_VERYLOW(PD13) | \
669 PIN_OSPEED_SPEED_VERYLOW(PD14) | \
670 PIN_OSPEED_SPEED_VERYLOW(PD15))
671
672#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLDOWN(PD00) | \
673 PIN_PUPDR_PULLDOWN(PD01) | \
674 PIN_PUPDR_FLOATING(LED_BLUE_L) | \
675 PIN_PUPDR_PULLDOWN(PD03) | \
676 PIN_PUPDR_PULLDOWN(PD04) | \
677 PIN_PUPDR_PULLDOWN(PD05) | \
678 PIN_PUPDR_PULLDOWN(PD06) | \
679 PIN_PUPDR_PULLDOWN(PD07) | \
680 PIN_PUPDR_PULLDOWN(PD08) | \
681 PIN_PUPDR_PULLDOWN(PD09) | \
682 PIN_PUPDR_PULLDOWN(PD10) | \
683 PIN_PUPDR_PULLDOWN(PD11) | \
684 PIN_PUPDR_PULLDOWN(PD12) | \
685 PIN_PUPDR_PULLDOWN(PD13) | \
686 PIN_PUPDR_PULLDOWN(PD14) | \
687 PIN_PUPDR_PULLDOWN(PD15))
688
689#define VAL_GPIOD_ODR (PIN_ODR_LEVEL_LOW(PD00) | \
690 PIN_ODR_LEVEL_LOW(PD01) | \
691 PIN_ODR_LEVEL_LOW(LED_BLUE_L) | \
692 PIN_ODR_LEVEL_LOW(PD03) | \
693 PIN_ODR_LEVEL_LOW(PD04) | \
694 PIN_ODR_LEVEL_LOW(PD05) | \
695 PIN_ODR_LEVEL_LOW(PD06) | \
696 PIN_ODR_LEVEL_LOW(PD07) | \
697 PIN_ODR_LEVEL_LOW(PD08) | \
698 PIN_ODR_LEVEL_LOW(PD09) | \
699 PIN_ODR_LEVEL_LOW(PD10) | \
700 PIN_ODR_LEVEL_LOW(PD11) | \
701 PIN_ODR_LEVEL_LOW(PD12) | \
702 PIN_ODR_LEVEL_LOW(PD13) | \
703 PIN_ODR_LEVEL_LOW(PD14) | \
704 PIN_ODR_LEVEL_LOW(PD15))
705
706#define VAL_GPIOD_AFRL (PIN_AFIO_AF(PD00, 0) | \
707 PIN_AFIO_AF(PD01, 0) | \
708 PIN_AFIO_AF(LED_BLUE_L, 0) | \
709 PIN_AFIO_AF(PD03, 0) | \
710 PIN_AFIO_AF(PD04, 0) | \
711 PIN_AFIO_AF(PD05, 0) | \
712 PIN_AFIO_AF(PD06, 0) | \
713 PIN_AFIO_AF(PD07, 0))
714
715#define VAL_GPIOD_AFRH (PIN_AFIO_AF(PD08, 0) | \
716 PIN_AFIO_AF(PD09, 0) | \
717 PIN_AFIO_AF(PD10, 0) | \
718 PIN_AFIO_AF(PD11, 0) | \
719 PIN_AFIO_AF(PD12, 0) | \
720 PIN_AFIO_AF(PD13, 0) | \
721 PIN_AFIO_AF(PD14, 0) | \
722 PIN_AFIO_AF(PD15, 0))
723
724#define VAL_GPIOE_MODER (PIN_MODE_INPUT(PE00) | \
725 PIN_MODE_INPUT(PE01) | \
726 PIN_MODE_INPUT(PE02) | \
727 PIN_MODE_INPUT(PE03) | \
728 PIN_MODE_INPUT(PE04) | \
729 PIN_MODE_INPUT(PE05) | \
730 PIN_MODE_INPUT(PE06) | \
731 PIN_MODE_INPUT(PE07) | \
732 PIN_MODE_INPUT(PE08) | \
733 PIN_MODE_INPUT(PE09) | \
734 PIN_MODE_INPUT(PE10) | \
735 PIN_MODE_INPUT(PE11) | \
736 PIN_MODE_INPUT(PE12) | \
737 PIN_MODE_INPUT(PE13) | \
738 PIN_MODE_INPUT(PE14) | \
739 PIN_MODE_INPUT(PE15))
740
741#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(PE00) | \
742 PIN_OTYPE_PUSHPULL(PE01) | \
743 PIN_OTYPE_PUSHPULL(PE02) | \
744 PIN_OTYPE_PUSHPULL(PE03) | \
745 PIN_OTYPE_PUSHPULL(PE04) | \
746 PIN_OTYPE_PUSHPULL(PE05) | \
747 PIN_OTYPE_PUSHPULL(PE06) | \
748 PIN_OTYPE_PUSHPULL(PE07) | \
749 PIN_OTYPE_PUSHPULL(PE08) | \
750 PIN_OTYPE_PUSHPULL(PE09) | \
751 PIN_OTYPE_PUSHPULL(PE10) | \
752 PIN_OTYPE_PUSHPULL(PE11) | \
753 PIN_OTYPE_PUSHPULL(PE12) | \
754 PIN_OTYPE_PUSHPULL(PE13) | \
755 PIN_OTYPE_PUSHPULL(PE14) | \
756 PIN_OTYPE_PUSHPULL(PE15))
757
758#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PE00) | \
759 PIN_OSPEED_SPEED_VERYLOW(PE01) | \
760 PIN_OSPEED_SPEED_VERYLOW(PE02) | \
761 PIN_OSPEED_SPEED_VERYLOW(PE03) | \
762 PIN_OSPEED_SPEED_VERYLOW(PE04) | \
763 PIN_OSPEED_SPEED_VERYLOW(PE05) | \
764 PIN_OSPEED_SPEED_VERYLOW(PE06) | \
765 PIN_OSPEED_SPEED_VERYLOW(PE07) | \
766 PIN_OSPEED_SPEED_VERYLOW(PE08) | \
767 PIN_OSPEED_SPEED_VERYLOW(PE09) | \
768 PIN_OSPEED_SPEED_VERYLOW(PE10) | \
769 PIN_OSPEED_SPEED_VERYLOW(PE11) | \
770 PIN_OSPEED_SPEED_VERYLOW(PE12) | \
771 PIN_OSPEED_SPEED_VERYLOW(PE13) | \
772 PIN_OSPEED_SPEED_VERYLOW(PE14) | \
773 PIN_OSPEED_SPEED_VERYLOW(PE15))
774
775#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLDOWN(PE00) | \
776 PIN_PUPDR_PULLDOWN(PE01) | \
777 PIN_PUPDR_PULLDOWN(PE02) | \
778 PIN_PUPDR_PULLDOWN(PE03) | \
779 PIN_PUPDR_PULLDOWN(PE04) | \
780 PIN_PUPDR_PULLDOWN(PE05) | \
781 PIN_PUPDR_PULLDOWN(PE06) | \
782 PIN_PUPDR_PULLDOWN(PE07) | \
783 PIN_PUPDR_PULLDOWN(PE08) | \
784 PIN_PUPDR_PULLDOWN(PE09) | \
785 PIN_PUPDR_PULLDOWN(PE10) | \
786 PIN_PUPDR_PULLDOWN(PE11) | \
787 PIN_PUPDR_PULLDOWN(PE12) | \
788 PIN_PUPDR_PULLDOWN(PE13) | \
789 PIN_PUPDR_PULLDOWN(PE14) | \
790 PIN_PUPDR_PULLDOWN(PE15))
791
792#define VAL_GPIOE_ODR (PIN_ODR_LEVEL_LOW(PE00) | \
793 PIN_ODR_LEVEL_LOW(PE01) | \
794 PIN_ODR_LEVEL_LOW(PE02) | \
795 PIN_ODR_LEVEL_LOW(PE03) | \
796 PIN_ODR_LEVEL_LOW(PE04) | \
797 PIN_ODR_LEVEL_LOW(PE05) | \
798 PIN_ODR_LEVEL_LOW(PE06) | \
799 PIN_ODR_LEVEL_LOW(PE07) | \
800 PIN_ODR_LEVEL_LOW(PE08) | \
801 PIN_ODR_LEVEL_LOW(PE09) | \
802 PIN_ODR_LEVEL_LOW(PE10) | \
803 PIN_ODR_LEVEL_LOW(PE11) | \
804 PIN_ODR_LEVEL_LOW(PE12) | \
805 PIN_ODR_LEVEL_LOW(PE13) | \
806 PIN_ODR_LEVEL_LOW(PE14) | \
807 PIN_ODR_LEVEL_LOW(PE15))
808
809#define VAL_GPIOE_AFRL (PIN_AFIO_AF(PE00, 0) | \
810 PIN_AFIO_AF(PE01, 0) | \
811 PIN_AFIO_AF(PE02, 0) | \
812 PIN_AFIO_AF(PE03, 0) | \
813 PIN_AFIO_AF(PE04, 0) | \
814 PIN_AFIO_AF(PE05, 0) | \
815 PIN_AFIO_AF(PE06, 0) | \
816 PIN_AFIO_AF(PE07, 0))
817
818#define VAL_GPIOE_AFRH (PIN_AFIO_AF(PE08, 0) | \
819 PIN_AFIO_AF(PE09, 0) | \
820 PIN_AFIO_AF(PE10, 0) | \
821 PIN_AFIO_AF(PE11, 0) | \
822 PIN_AFIO_AF(PE12, 0) | \
823 PIN_AFIO_AF(PE13, 0) | \
824 PIN_AFIO_AF(PE14, 0) | \
825 PIN_AFIO_AF(PE15, 0))
826
827#define VAL_GPIOF_MODER (PIN_MODE_INPUT(PF00) | \
828 PIN_MODE_INPUT(PF01) | \
829 PIN_MODE_INPUT(PF02) | \
830 PIN_MODE_INPUT(PF03) | \
831 PIN_MODE_INPUT(PF04) | \
832 PIN_MODE_INPUT(PF05) | \
833 PIN_MODE_INPUT(PF06) | \
834 PIN_MODE_INPUT(PF07) | \
835 PIN_MODE_INPUT(PF08) | \
836 PIN_MODE_INPUT(PF09) | \
837 PIN_MODE_INPUT(PF10) | \
838 PIN_MODE_INPUT(PF11) | \
839 PIN_MODE_INPUT(PF12) | \
840 PIN_MODE_INPUT(PF13) | \
841 PIN_MODE_INPUT(PF14) | \
842 PIN_MODE_INPUT(PF15))
843
844#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(PF00) | \
845 PIN_OTYPE_PUSHPULL(PF01) | \
846 PIN_OTYPE_PUSHPULL(PF02) | \
847 PIN_OTYPE_PUSHPULL(PF03) | \
848 PIN_OTYPE_PUSHPULL(PF04) | \
849 PIN_OTYPE_PUSHPULL(PF05) | \
850 PIN_OTYPE_PUSHPULL(PF06) | \
851 PIN_OTYPE_PUSHPULL(PF07) | \
852 PIN_OTYPE_PUSHPULL(PF08) | \
853 PIN_OTYPE_PUSHPULL(PF09) | \
854 PIN_OTYPE_PUSHPULL(PF10) | \
855 PIN_OTYPE_PUSHPULL(PF11) | \
856 PIN_OTYPE_PUSHPULL(PF12) | \
857 PIN_OTYPE_PUSHPULL(PF13) | \
858 PIN_OTYPE_PUSHPULL(PF14) | \
859 PIN_OTYPE_PUSHPULL(PF15))
860
861#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PF00) | \
862 PIN_OSPEED_SPEED_VERYLOW(PF01) | \
863 PIN_OSPEED_SPEED_VERYLOW(PF02) | \
864 PIN_OSPEED_SPEED_VERYLOW(PF03) | \
865 PIN_OSPEED_SPEED_VERYLOW(PF04) | \
866 PIN_OSPEED_SPEED_VERYLOW(PF05) | \
867 PIN_OSPEED_SPEED_VERYLOW(PF06) | \
868 PIN_OSPEED_SPEED_VERYLOW(PF07) | \
869 PIN_OSPEED_SPEED_VERYLOW(PF08) | \
870 PIN_OSPEED_SPEED_VERYLOW(PF09) | \
871 PIN_OSPEED_SPEED_VERYLOW(PF10) | \
872 PIN_OSPEED_SPEED_VERYLOW(PF11) | \
873 PIN_OSPEED_SPEED_VERYLOW(PF12) | \
874 PIN_OSPEED_SPEED_VERYLOW(PF13) | \
875 PIN_OSPEED_SPEED_VERYLOW(PF14) | \
876 PIN_OSPEED_SPEED_VERYLOW(PF15))
877
878#define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLDOWN(PF00) | \
879 PIN_PUPDR_PULLDOWN(PF01) | \
880 PIN_PUPDR_PULLDOWN(PF02) | \
881 PIN_PUPDR_PULLDOWN(PF03) | \
882 PIN_PUPDR_PULLDOWN(PF04) | \
883 PIN_PUPDR_PULLDOWN(PF05) | \
884 PIN_PUPDR_PULLDOWN(PF06) | \
885 PIN_PUPDR_PULLDOWN(PF07) | \
886 PIN_PUPDR_PULLDOWN(PF08) | \
887 PIN_PUPDR_PULLDOWN(PF09) | \
888 PIN_PUPDR_PULLDOWN(PF10) | \
889 PIN_PUPDR_PULLDOWN(PF11) | \
890 PIN_PUPDR_PULLDOWN(PF12) | \
891 PIN_PUPDR_PULLDOWN(PF13) | \
892 PIN_PUPDR_PULLDOWN(PF14) | \
893 PIN_PUPDR_PULLDOWN(PF15))
894
895#define VAL_GPIOF_ODR (PIN_ODR_LEVEL_LOW(PF00) | \
896 PIN_ODR_LEVEL_LOW(PF01) | \
897 PIN_ODR_LEVEL_LOW(PF02) | \
898 PIN_ODR_LEVEL_LOW(PF03) | \
899 PIN_ODR_LEVEL_LOW(PF04) | \
900 PIN_ODR_LEVEL_LOW(PF05) | \
901 PIN_ODR_LEVEL_LOW(PF06) | \
902 PIN_ODR_LEVEL_LOW(PF07) | \
903 PIN_ODR_LEVEL_LOW(PF08) | \
904 PIN_ODR_LEVEL_LOW(PF09) | \
905 PIN_ODR_LEVEL_LOW(PF10) | \
906 PIN_ODR_LEVEL_LOW(PF11) | \
907 PIN_ODR_LEVEL_LOW(PF12) | \
908 PIN_ODR_LEVEL_LOW(PF13) | \
909 PIN_ODR_LEVEL_LOW(PF14) | \
910 PIN_ODR_LEVEL_LOW(PF15))
911
912#define VAL_GPIOF_AFRL (PIN_AFIO_AF(PF00, 0) | \
913 PIN_AFIO_AF(PF01, 0) | \
914 PIN_AFIO_AF(PF02, 0) | \
915 PIN_AFIO_AF(PF03, 0) | \
916 PIN_AFIO_AF(PF04, 0) | \
917 PIN_AFIO_AF(PF05, 0) | \
918 PIN_AFIO_AF(PF06, 0) | \
919 PIN_AFIO_AF(PF07, 0))
920
921#define VAL_GPIOF_AFRH (PIN_AFIO_AF(PF08, 0) | \
922 PIN_AFIO_AF(PF09, 0) | \
923 PIN_AFIO_AF(PF10, 0) | \
924 PIN_AFIO_AF(PF11, 0) | \
925 PIN_AFIO_AF(PF12, 0) | \
926 PIN_AFIO_AF(PF13, 0) | \
927 PIN_AFIO_AF(PF14, 0) | \
928 PIN_AFIO_AF(PF15, 0))
929
930#define VAL_GPIOG_MODER (PIN_MODE_INPUT(PG00) | \
931 PIN_MODE_INPUT(PG01) | \
932 PIN_MODE_INPUT(PG02) | \
933 PIN_MODE_INPUT(PG03) | \
934 PIN_MODE_INPUT(PG04) | \
935 PIN_MODE_INPUT(PG05) | \
936 PIN_MODE_INPUT(PG06) | \
937 PIN_MODE_INPUT(PG07) | \
938 PIN_MODE_INPUT(PG08) | \
939 PIN_MODE_INPUT(PG09) | \
940 PIN_MODE_INPUT(PG10) | \
941 PIN_MODE_INPUT(PG11) | \
942 PIN_MODE_INPUT(PG12) | \
943 PIN_MODE_INPUT(PG13) | \
944 PIN_MODE_INPUT(PG14) | \
945 PIN_MODE_INPUT(PG15))
946
947#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(PG00) | \
948 PIN_OTYPE_PUSHPULL(PG01) | \
949 PIN_OTYPE_PUSHPULL(PG02) | \
950 PIN_OTYPE_PUSHPULL(PG03) | \
951 PIN_OTYPE_PUSHPULL(PG04) | \
952 PIN_OTYPE_PUSHPULL(PG05) | \
953 PIN_OTYPE_PUSHPULL(PG06) | \
954 PIN_OTYPE_PUSHPULL(PG07) | \
955 PIN_OTYPE_PUSHPULL(PG08) | \
956 PIN_OTYPE_PUSHPULL(PG09) | \
957 PIN_OTYPE_PUSHPULL(PG10) | \
958 PIN_OTYPE_PUSHPULL(PG11) | \
959 PIN_OTYPE_PUSHPULL(PG12) | \
960 PIN_OTYPE_PUSHPULL(PG13) | \
961 PIN_OTYPE_PUSHPULL(PG14) | \
962 PIN_OTYPE_PUSHPULL(PG15))
963
964#define VAL_GPIOG_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PG00) | \
965 PIN_OSPEED_SPEED_VERYLOW(PG01) | \
966 PIN_OSPEED_SPEED_VERYLOW(PG02) | \
967 PIN_OSPEED_SPEED_VERYLOW(PG03) | \
968 PIN_OSPEED_SPEED_VERYLOW(PG04) | \
969 PIN_OSPEED_SPEED_VERYLOW(PG05) | \
970 PIN_OSPEED_SPEED_VERYLOW(PG06) | \
971 PIN_OSPEED_SPEED_VERYLOW(PG07) | \
972 PIN_OSPEED_SPEED_VERYLOW(PG08) | \
973 PIN_OSPEED_SPEED_VERYLOW(PG09) | \
974 PIN_OSPEED_SPEED_VERYLOW(PG10) | \
975 PIN_OSPEED_SPEED_VERYLOW(PG11) | \
976 PIN_OSPEED_SPEED_VERYLOW(PG12) | \
977 PIN_OSPEED_SPEED_VERYLOW(PG13) | \
978 PIN_OSPEED_SPEED_VERYLOW(PG14) | \
979 PIN_OSPEED_SPEED_VERYLOW(PG15))
980
981#define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLDOWN(PG00) | \
982 PIN_PUPDR_PULLDOWN(PG01) | \
983 PIN_PUPDR_PULLDOWN(PG02) | \
984 PIN_PUPDR_PULLDOWN(PG03) | \
985 PIN_PUPDR_PULLDOWN(PG04) | \
986 PIN_PUPDR_PULLDOWN(PG05) | \
987 PIN_PUPDR_PULLDOWN(PG06) | \
988 PIN_PUPDR_PULLDOWN(PG07) | \
989 PIN_PUPDR_PULLDOWN(PG08) | \
990 PIN_PUPDR_PULLDOWN(PG09) | \
991 PIN_PUPDR_PULLDOWN(PG10) | \
992 PIN_PUPDR_PULLDOWN(PG11) | \
993 PIN_PUPDR_PULLDOWN(PG12) | \
994 PIN_PUPDR_PULLDOWN(PG13) | \
995 PIN_PUPDR_PULLDOWN(PG14) | \
996 PIN_PUPDR_PULLDOWN(PG15))
997
998#define VAL_GPIOG_ODR (PIN_ODR_LEVEL_LOW(PG00) | \
999 PIN_ODR_LEVEL_LOW(PG01) | \
1000 PIN_ODR_LEVEL_LOW(PG02) | \
1001 PIN_ODR_LEVEL_LOW(PG03) | \
1002 PIN_ODR_LEVEL_LOW(PG04) | \
1003 PIN_ODR_LEVEL_LOW(PG05) | \
1004 PIN_ODR_LEVEL_LOW(PG06) | \
1005 PIN_ODR_LEVEL_LOW(PG07) | \
1006 PIN_ODR_LEVEL_LOW(PG08) | \
1007 PIN_ODR_LEVEL_LOW(PG09) | \
1008 PIN_ODR_LEVEL_LOW(PG10) | \
1009 PIN_ODR_LEVEL_LOW(PG11) | \
1010 PIN_ODR_LEVEL_LOW(PG12) | \
1011 PIN_ODR_LEVEL_LOW(PG13) | \
1012 PIN_ODR_LEVEL_LOW(PG14) | \
1013 PIN_ODR_LEVEL_LOW(PG15))
1014
1015#define VAL_GPIOG_AFRL (PIN_AFIO_AF(PG00, 0) | \
1016 PIN_AFIO_AF(PG01, 0) | \
1017 PIN_AFIO_AF(PG02, 0) | \
1018 PIN_AFIO_AF(PG03, 0) | \
1019 PIN_AFIO_AF(PG04, 0) | \
1020 PIN_AFIO_AF(PG05, 0) | \
1021 PIN_AFIO_AF(PG06, 0) | \
1022 PIN_AFIO_AF(PG07, 0))
1023
1024#define VAL_GPIOG_AFRH (PIN_AFIO_AF(PG08, 0) | \
1025 PIN_AFIO_AF(PG09, 0) | \
1026 PIN_AFIO_AF(PG10, 0) | \
1027 PIN_AFIO_AF(PG11, 0) | \
1028 PIN_AFIO_AF(PG12, 0) | \
1029 PIN_AFIO_AF(PG13, 0) | \
1030 PIN_AFIO_AF(PG14, 0) | \
1031 PIN_AFIO_AF(PG15, 0))
1032
1033#define VAL_GPIOH_MODER (PIN_MODE_ALTERNATE(OSC_IN) | \
1034 PIN_MODE_ALTERNATE(OSC_OUT) | \
1035 PIN_MODE_INPUT(PH02) | \
1036 PIN_MODE_INPUT(PH03) | \
1037 PIN_MODE_INPUT(PH04) | \
1038 PIN_MODE_INPUT(PH05) | \
1039 PIN_MODE_INPUT(PH06) | \
1040 PIN_MODE_INPUT(PH07) | \
1041 PIN_MODE_INPUT(PH08) | \
1042 PIN_MODE_INPUT(PH09) | \
1043 PIN_MODE_INPUT(PH10) | \
1044 PIN_MODE_INPUT(PH11) | \
1045 PIN_MODE_INPUT(PH12) | \
1046 PIN_MODE_INPUT(PH13) | \
1047 PIN_MODE_INPUT(PH14) | \
1048 PIN_MODE_INPUT(PH15))
1049
1050#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(OSC_IN) | \
1051 PIN_OTYPE_PUSHPULL(OSC_OUT) | \
1052 PIN_OTYPE_PUSHPULL(PH02) | \
1053 PIN_OTYPE_PUSHPULL(PH03) | \
1054 PIN_OTYPE_PUSHPULL(PH04) | \
1055 PIN_OTYPE_PUSHPULL(PH05) | \
1056 PIN_OTYPE_PUSHPULL(PH06) | \
1057 PIN_OTYPE_PUSHPULL(PH07) | \
1058 PIN_OTYPE_PUSHPULL(PH08) | \
1059 PIN_OTYPE_PUSHPULL(PH09) | \
1060 PIN_OTYPE_PUSHPULL(PH10) | \
1061 PIN_OTYPE_PUSHPULL(PH11) | \
1062 PIN_OTYPE_PUSHPULL(PH12) | \
1063 PIN_OTYPE_PUSHPULL(PH13) | \
1064 PIN_OTYPE_PUSHPULL(PH14) | \
1065 PIN_OTYPE_PUSHPULL(PH15))
1066
1067#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_SPEED_HIGH(OSC_IN) | \
1068 PIN_OSPEED_SPEED_HIGH(OSC_OUT) | \
1069 PIN_OSPEED_SPEED_VERYLOW(PH02) | \
1070 PIN_OSPEED_SPEED_VERYLOW(PH03) | \
1071 PIN_OSPEED_SPEED_VERYLOW(PH04) | \
1072 PIN_OSPEED_SPEED_VERYLOW(PH05) | \
1073 PIN_OSPEED_SPEED_VERYLOW(PH06) | \
1074 PIN_OSPEED_SPEED_VERYLOW(PH07) | \
1075 PIN_OSPEED_SPEED_VERYLOW(PH08) | \
1076 PIN_OSPEED_SPEED_VERYLOW(PH09) | \
1077 PIN_OSPEED_SPEED_VERYLOW(PH10) | \
1078 PIN_OSPEED_SPEED_VERYLOW(PH11) | \
1079 PIN_OSPEED_SPEED_VERYLOW(PH12) | \
1080 PIN_OSPEED_SPEED_VERYLOW(PH13) | \
1081 PIN_OSPEED_SPEED_VERYLOW(PH14) | \
1082 PIN_OSPEED_SPEED_VERYLOW(PH15))
1083
1084#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(OSC_IN) | \
1085 PIN_PUPDR_FLOATING(OSC_OUT) | \
1086 PIN_PUPDR_PULLDOWN(PH02) | \
1087 PIN_PUPDR_PULLDOWN(PH03) | \
1088 PIN_PUPDR_PULLDOWN(PH04) | \
1089 PIN_PUPDR_PULLDOWN(PH05) | \
1090 PIN_PUPDR_PULLDOWN(PH06) | \
1091 PIN_PUPDR_PULLDOWN(PH07) | \
1092 PIN_PUPDR_PULLDOWN(PH08) | \
1093 PIN_PUPDR_PULLDOWN(PH09) | \
1094 PIN_PUPDR_PULLDOWN(PH10) | \
1095 PIN_PUPDR_PULLDOWN(PH11) | \
1096 PIN_PUPDR_PULLDOWN(PH12) | \
1097 PIN_PUPDR_PULLDOWN(PH13) | \
1098 PIN_PUPDR_PULLDOWN(PH14) | \
1099 PIN_PUPDR_PULLDOWN(PH15))
1100
1101#define VAL_GPIOH_ODR (PIN_ODR_LEVEL_HIGH(OSC_IN) | \
1102 PIN_ODR_LEVEL_HIGH(OSC_OUT) | \
1103 PIN_ODR_LEVEL_LOW(PH02) | \
1104 PIN_ODR_LEVEL_LOW(PH03) | \
1105 PIN_ODR_LEVEL_LOW(PH04) | \
1106 PIN_ODR_LEVEL_LOW(PH05) | \
1107 PIN_ODR_LEVEL_LOW(PH06) | \
1108 PIN_ODR_LEVEL_LOW(PH07) | \
1109 PIN_ODR_LEVEL_LOW(PH08) | \
1110 PIN_ODR_LEVEL_LOW(PH09) | \
1111 PIN_ODR_LEVEL_LOW(PH10) | \
1112 PIN_ODR_LEVEL_LOW(PH11) | \
1113 PIN_ODR_LEVEL_LOW(PH12) | \
1114 PIN_ODR_LEVEL_LOW(PH13) | \
1115 PIN_ODR_LEVEL_LOW(PH14) | \
1116 PIN_ODR_LEVEL_LOW(PH15))
1117
1118#define VAL_GPIOH_AFRL (PIN_AFIO_AF(OSC_IN, 0) | \
1119 PIN_AFIO_AF(OSC_OUT, 0) | \
1120 PIN_AFIO_AF(PH02, 0) | \
1121 PIN_AFIO_AF(PH03, 0) | \
1122 PIN_AFIO_AF(PH04, 0) | \
1123 PIN_AFIO_AF(PH05, 0) | \
1124 PIN_AFIO_AF(PH06, 0) | \
1125 PIN_AFIO_AF(PH07, 0))
1126
1127#define VAL_GPIOH_AFRH (PIN_AFIO_AF(PH08, 0) | \
1128 PIN_AFIO_AF(PH09, 0) | \
1129 PIN_AFIO_AF(PH10, 0) | \
1130 PIN_AFIO_AF(PH11, 0) | \
1131 PIN_AFIO_AF(PH12, 0) | \
1132 PIN_AFIO_AF(PH13, 0) | \
1133 PIN_AFIO_AF(PH14, 0) | \
1134 PIN_AFIO_AF(PH15, 0))
1135
1136#define VAL_GPIOI_MODER (PIN_MODE_INPUT(PI00) | \
1137 PIN_MODE_INPUT(PI01) | \
1138 PIN_MODE_INPUT(PI02) | \
1139 PIN_MODE_INPUT(PI03) | \
1140 PIN_MODE_INPUT(PI04) | \
1141 PIN_MODE_INPUT(PI05) | \
1142 PIN_MODE_INPUT(PI06) | \
1143 PIN_MODE_INPUT(PI07) | \
1144 PIN_MODE_INPUT(PI08) | \
1145 PIN_MODE_INPUT(PI09) | \
1146 PIN_MODE_INPUT(PI10) | \
1147 PIN_MODE_INPUT(PI11) | \
1148 PIN_MODE_INPUT(PI12) | \
1149 PIN_MODE_INPUT(PI13) | \
1150 PIN_MODE_INPUT(PI14) | \
1151 PIN_MODE_INPUT(PI15))
1152
1153#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(PI00) | \
1154 PIN_OTYPE_PUSHPULL(PI01) | \
1155 PIN_OTYPE_PUSHPULL(PI02) | \
1156 PIN_OTYPE_PUSHPULL(PI03) | \
1157 PIN_OTYPE_PUSHPULL(PI04) | \
1158 PIN_OTYPE_PUSHPULL(PI05) | \
1159 PIN_OTYPE_PUSHPULL(PI06) | \
1160 PIN_OTYPE_PUSHPULL(PI07) | \
1161 PIN_OTYPE_PUSHPULL(PI08) | \
1162 PIN_OTYPE_PUSHPULL(PI09) | \
1163 PIN_OTYPE_PUSHPULL(PI10) | \
1164 PIN_OTYPE_PUSHPULL(PI11) | \
1165 PIN_OTYPE_PUSHPULL(PI12) | \
1166 PIN_OTYPE_PUSHPULL(PI13) | \
1167 PIN_OTYPE_PUSHPULL(PI14) | \
1168 PIN_OTYPE_PUSHPULL(PI15))
1169
1170#define VAL_GPIOI_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PI00) | \
1171 PIN_OSPEED_SPEED_VERYLOW(PI01) | \
1172 PIN_OSPEED_SPEED_VERYLOW(PI02) | \
1173 PIN_OSPEED_SPEED_VERYLOW(PI03) | \
1174 PIN_OSPEED_SPEED_VERYLOW(PI04) | \
1175 PIN_OSPEED_SPEED_VERYLOW(PI05) | \
1176 PIN_OSPEED_SPEED_VERYLOW(PI06) | \
1177 PIN_OSPEED_SPEED_VERYLOW(PI07) | \
1178 PIN_OSPEED_SPEED_VERYLOW(PI08) | \
1179 PIN_OSPEED_SPEED_VERYLOW(PI09) | \
1180 PIN_OSPEED_SPEED_VERYLOW(PI10) | \
1181 PIN_OSPEED_SPEED_VERYLOW(PI11) | \
1182 PIN_OSPEED_SPEED_VERYLOW(PI12) | \
1183 PIN_OSPEED_SPEED_VERYLOW(PI13) | \
1184 PIN_OSPEED_SPEED_VERYLOW(PI14) | \
1185 PIN_OSPEED_SPEED_VERYLOW(PI15))
1186
1187#define VAL_GPIOI_PUPDR (PIN_PUPDR_PULLDOWN(PI00) | \
1188 PIN_PUPDR_PULLDOWN(PI01) | \
1189 PIN_PUPDR_PULLDOWN(PI02) | \
1190 PIN_PUPDR_PULLDOWN(PI03) | \
1191 PIN_PUPDR_PULLDOWN(PI04) | \
1192 PIN_PUPDR_PULLDOWN(PI05) | \
1193 PIN_PUPDR_PULLDOWN(PI06) | \
1194 PIN_PUPDR_PULLDOWN(PI07) | \
1195 PIN_PUPDR_PULLDOWN(PI08) | \
1196 PIN_PUPDR_PULLDOWN(PI09) | \
1197 PIN_PUPDR_PULLDOWN(PI10) | \
1198 PIN_PUPDR_PULLDOWN(PI11) | \
1199 PIN_PUPDR_PULLDOWN(PI12) | \
1200 PIN_PUPDR_PULLDOWN(PI13) | \
1201 PIN_PUPDR_PULLDOWN(PI14) | \
1202 PIN_PUPDR_PULLDOWN(PI15))
1203
1204#define VAL_GPIOI_ODR (PIN_ODR_LEVEL_LOW(PI00) | \
1205 PIN_ODR_LEVEL_LOW(PI01) | \
1206 PIN_ODR_LEVEL_LOW(PI02) | \
1207 PIN_ODR_LEVEL_LOW(PI03) | \
1208 PIN_ODR_LEVEL_LOW(PI04) | \
1209 PIN_ODR_LEVEL_LOW(PI05) | \
1210 PIN_ODR_LEVEL_LOW(PI06) | \
1211 PIN_ODR_LEVEL_LOW(PI07) | \
1212 PIN_ODR_LEVEL_LOW(PI08) | \
1213 PIN_ODR_LEVEL_LOW(PI09) | \
1214 PIN_ODR_LEVEL_LOW(PI10) | \
1215 PIN_ODR_LEVEL_LOW(PI11) | \
1216 PIN_ODR_LEVEL_LOW(PI12) | \
1217 PIN_ODR_LEVEL_LOW(PI13) | \
1218 PIN_ODR_LEVEL_LOW(PI14) | \
1219 PIN_ODR_LEVEL_LOW(PI15))
1220
1221#define VAL_GPIOI_AFRL (PIN_AFIO_AF(PI00, 0) | \
1222 PIN_AFIO_AF(PI01, 0) | \
1223 PIN_AFIO_AF(PI02, 0) | \
1224 PIN_AFIO_AF(PI03, 0) | \
1225 PIN_AFIO_AF(PI04, 0) | \
1226 PIN_AFIO_AF(PI05, 0) | \
1227 PIN_AFIO_AF(PI06, 0) | \
1228 PIN_AFIO_AF(PI07, 0))
1229
1230#define VAL_GPIOI_AFRH (PIN_AFIO_AF(PI08, 0) | \
1231 PIN_AFIO_AF(PI09, 0) | \
1232 PIN_AFIO_AF(PI10, 0) | \
1233 PIN_AFIO_AF(PI11, 0) | \
1234 PIN_AFIO_AF(PI12, 0) | \
1235 PIN_AFIO_AF(PI13, 0) | \
1236 PIN_AFIO_AF(PI14, 0) | \
1237 PIN_AFIO_AF(PI15, 0))
1238
1239#define VAL_GPIOJ_MODER (PIN_MODE_INPUT(PJ00) | \
1240 PIN_MODE_INPUT(PJ01) | \
1241 PIN_MODE_INPUT(PJ02) | \
1242 PIN_MODE_INPUT(PJ03) | \
1243 PIN_MODE_INPUT(PJ04) | \
1244 PIN_MODE_INPUT(PJ05) | \
1245 PIN_MODE_INPUT(PJ06) | \
1246 PIN_MODE_INPUT(PJ07) | \
1247 PIN_MODE_INPUT(PJ08) | \
1248 PIN_MODE_INPUT(PJ09) | \
1249 PIN_MODE_INPUT(PJ10) | \
1250 PIN_MODE_INPUT(PJ11) | \
1251 PIN_MODE_INPUT(PJ12) | \
1252 PIN_MODE_INPUT(PJ13) | \
1253 PIN_MODE_INPUT(PJ14) | \
1254 PIN_MODE_INPUT(PJ15))
1255
1256#define VAL_GPIOJ_OTYPER (PIN_OTYPE_PUSHPULL(PJ00) | \
1257 PIN_OTYPE_PUSHPULL(PJ01) | \
1258 PIN_OTYPE_PUSHPULL(PJ02) | \
1259 PIN_OTYPE_PUSHPULL(PJ03) | \
1260 PIN_OTYPE_PUSHPULL(PJ04) | \
1261 PIN_OTYPE_PUSHPULL(PJ05) | \
1262 PIN_OTYPE_PUSHPULL(PJ06) | \
1263 PIN_OTYPE_PUSHPULL(PJ07) | \
1264 PIN_OTYPE_PUSHPULL(PJ08) | \
1265 PIN_OTYPE_PUSHPULL(PJ09) | \
1266 PIN_OTYPE_PUSHPULL(PJ10) | \
1267 PIN_OTYPE_PUSHPULL(PJ11) | \
1268 PIN_OTYPE_PUSHPULL(PJ12) | \
1269 PIN_OTYPE_PUSHPULL(PJ13) | \
1270 PIN_OTYPE_PUSHPULL(PJ14) | \
1271 PIN_OTYPE_PUSHPULL(PJ15))
1272
1273#define VAL_GPIOJ_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PJ00) | \
1274 PIN_OSPEED_SPEED_VERYLOW(PJ01) | \
1275 PIN_OSPEED_SPEED_VERYLOW(PJ02) | \
1276 PIN_OSPEED_SPEED_VERYLOW(PJ03) | \
1277 PIN_OSPEED_SPEED_VERYLOW(PJ04) | \
1278 PIN_OSPEED_SPEED_VERYLOW(PJ05) | \
1279 PIN_OSPEED_SPEED_VERYLOW(PJ06) | \
1280 PIN_OSPEED_SPEED_VERYLOW(PJ07) | \
1281 PIN_OSPEED_SPEED_VERYLOW(PJ08) | \
1282 PIN_OSPEED_SPEED_VERYLOW(PJ09) | \
1283 PIN_OSPEED_SPEED_VERYLOW(PJ10) | \
1284 PIN_OSPEED_SPEED_VERYLOW(PJ11) | \
1285 PIN_OSPEED_SPEED_VERYLOW(PJ12) | \
1286 PIN_OSPEED_SPEED_VERYLOW(PJ13) | \
1287 PIN_OSPEED_SPEED_VERYLOW(PJ14) | \
1288 PIN_OSPEED_SPEED_VERYLOW(PJ15))
1289
1290#define VAL_GPIOJ_PUPDR (PIN_PUPDR_PULLDOWN(PJ00) | \
1291 PIN_PUPDR_PULLDOWN(PJ01) | \
1292 PIN_PUPDR_PULLDOWN(PJ02) | \
1293 PIN_PUPDR_PULLDOWN(PJ03) | \
1294 PIN_PUPDR_PULLDOWN(PJ04) | \
1295 PIN_PUPDR_PULLDOWN(PJ05) | \
1296 PIN_PUPDR_PULLDOWN(PJ06) | \
1297 PIN_PUPDR_PULLDOWN(PJ07) | \
1298 PIN_PUPDR_PULLDOWN(PJ08) | \
1299 PIN_PUPDR_PULLDOWN(PJ09) | \
1300 PIN_PUPDR_PULLDOWN(PJ10) | \
1301 PIN_PUPDR_PULLDOWN(PJ11) | \
1302 PIN_PUPDR_PULLDOWN(PJ12) | \
1303 PIN_PUPDR_PULLDOWN(PJ13) | \
1304 PIN_PUPDR_PULLDOWN(PJ14) | \
1305 PIN_PUPDR_PULLDOWN(PJ15))
1306
1307#define VAL_GPIOJ_ODR (PIN_ODR_LEVEL_LOW(PJ00) | \
1308 PIN_ODR_LEVEL_LOW(PJ01) | \
1309 PIN_ODR_LEVEL_LOW(PJ02) | \
1310 PIN_ODR_LEVEL_LOW(PJ03) | \
1311 PIN_ODR_LEVEL_LOW(PJ04) | \
1312 PIN_ODR_LEVEL_LOW(PJ05) | \
1313 PIN_ODR_LEVEL_LOW(PJ06) | \
1314 PIN_ODR_LEVEL_LOW(PJ07) | \
1315 PIN_ODR_LEVEL_LOW(PJ08) | \
1316 PIN_ODR_LEVEL_LOW(PJ09) | \
1317 PIN_ODR_LEVEL_LOW(PJ10) | \
1318 PIN_ODR_LEVEL_LOW(PJ11) | \
1319 PIN_ODR_LEVEL_LOW(PJ12) | \
1320 PIN_ODR_LEVEL_LOW(PJ13) | \
1321 PIN_ODR_LEVEL_LOW(PJ14) | \
1322 PIN_ODR_LEVEL_LOW(PJ15))
1323
1324#define VAL_GPIOJ_AFRL (PIN_AFIO_AF(PJ00, 0) | \
1325 PIN_AFIO_AF(PJ01, 0) | \
1326 PIN_AFIO_AF(PJ02, 0) | \
1327 PIN_AFIO_AF(PJ03, 0) | \
1328 PIN_AFIO_AF(PJ04, 0) | \
1329 PIN_AFIO_AF(PJ05, 0) | \
1330 PIN_AFIO_AF(PJ06, 0) | \
1331 PIN_AFIO_AF(PJ07, 0))
1332
1333#define VAL_GPIOJ_AFRH (PIN_AFIO_AF(PJ08, 0) | \
1334 PIN_AFIO_AF(PJ09, 0) | \
1335 PIN_AFIO_AF(PJ10, 0) | \
1336 PIN_AFIO_AF(PJ11, 0) | \
1337 PIN_AFIO_AF(PJ12, 0) | \
1338 PIN_AFIO_AF(PJ13, 0) | \
1339 PIN_AFIO_AF(PJ14, 0) | \
1340 PIN_AFIO_AF(PJ15, 0))
1341
1342#define VAL_GPIOK_MODER (PIN_MODE_INPUT(PK00) | \
1343 PIN_MODE_INPUT(PK01) | \
1344 PIN_MODE_INPUT(PK02) | \
1345 PIN_MODE_INPUT(PK03) | \
1346 PIN_MODE_INPUT(PK04) | \
1347 PIN_MODE_INPUT(PK05) | \
1348 PIN_MODE_INPUT(PK06) | \
1349 PIN_MODE_INPUT(PK07) | \
1350 PIN_MODE_INPUT(PK08) | \
1351 PIN_MODE_INPUT(PK09) | \
1352 PIN_MODE_INPUT(PK10) | \
1353 PIN_MODE_INPUT(PK11) | \
1354 PIN_MODE_INPUT(PK12) | \
1355 PIN_MODE_INPUT(PK13) | \
1356 PIN_MODE_INPUT(PK14) | \
1357 PIN_MODE_INPUT(PK15))
1358
1359#define VAL_GPIOK_OTYPER (PIN_OTYPE_PUSHPULL(PK00) | \
1360 PIN_OTYPE_PUSHPULL(PK01) | \
1361 PIN_OTYPE_PUSHPULL(PK02) | \
1362 PIN_OTYPE_PUSHPULL(PK03) | \
1363 PIN_OTYPE_PUSHPULL(PK04) | \
1364 PIN_OTYPE_PUSHPULL(PK05) | \
1365 PIN_OTYPE_PUSHPULL(PK06) | \
1366 PIN_OTYPE_PUSHPULL(PK07) | \
1367 PIN_OTYPE_PUSHPULL(PK08) | \
1368 PIN_OTYPE_PUSHPULL(PK09) | \
1369 PIN_OTYPE_PUSHPULL(PK10) | \
1370 PIN_OTYPE_PUSHPULL(PK11) | \
1371 PIN_OTYPE_PUSHPULL(PK12) | \
1372 PIN_OTYPE_PUSHPULL(PK13) | \
1373 PIN_OTYPE_PUSHPULL(PK14) | \
1374 PIN_OTYPE_PUSHPULL(PK15))
1375
1376#define VAL_GPIOK_OSPEEDR (PIN_OSPEED_SPEED_VERYLOW(PK00) | \
1377 PIN_OSPEED_SPEED_VERYLOW(PK01) | \
1378 PIN_OSPEED_SPEED_VERYLOW(PK02) | \
1379 PIN_OSPEED_SPEED_VERYLOW(PK03) | \
1380 PIN_OSPEED_SPEED_VERYLOW(PK04) | \
1381 PIN_OSPEED_SPEED_VERYLOW(PK05) | \
1382 PIN_OSPEED_SPEED_VERYLOW(PK06) | \
1383 PIN_OSPEED_SPEED_VERYLOW(PK07) | \
1384 PIN_OSPEED_SPEED_VERYLOW(PK08) | \
1385 PIN_OSPEED_SPEED_VERYLOW(PK09) | \
1386 PIN_OSPEED_SPEED_VERYLOW(PK10) | \
1387 PIN_OSPEED_SPEED_VERYLOW(PK11) | \
1388 PIN_OSPEED_SPEED_VERYLOW(PK12) | \
1389 PIN_OSPEED_SPEED_VERYLOW(PK13) | \
1390 PIN_OSPEED_SPEED_VERYLOW(PK14) | \
1391 PIN_OSPEED_SPEED_VERYLOW(PK15))
1392
1393#define VAL_GPIOK_PUPDR (PIN_PUPDR_PULLDOWN(PK00) | \
1394 PIN_PUPDR_PULLDOWN(PK01) | \
1395 PIN_PUPDR_PULLDOWN(PK02) | \
1396 PIN_PUPDR_PULLDOWN(PK03) | \
1397 PIN_PUPDR_PULLDOWN(PK04) | \
1398 PIN_PUPDR_PULLDOWN(PK05) | \
1399 PIN_PUPDR_PULLDOWN(PK06) | \
1400 PIN_PUPDR_PULLDOWN(PK07) | \
1401 PIN_PUPDR_PULLDOWN(PK08) | \
1402 PIN_PUPDR_PULLDOWN(PK09) | \
1403 PIN_PUPDR_PULLDOWN(PK10) | \
1404 PIN_PUPDR_PULLDOWN(PK11) | \
1405 PIN_PUPDR_PULLDOWN(PK12) | \
1406 PIN_PUPDR_PULLDOWN(PK13) | \
1407 PIN_PUPDR_PULLDOWN(PK14) | \
1408 PIN_PUPDR_PULLDOWN(PK15))
1409
1410#define VAL_GPIOK_ODR (PIN_ODR_LEVEL_LOW(PK00) | \
1411 PIN_ODR_LEVEL_LOW(PK01) | \
1412 PIN_ODR_LEVEL_LOW(PK02) | \
1413 PIN_ODR_LEVEL_LOW(PK03) | \
1414 PIN_ODR_LEVEL_LOW(PK04) | \
1415 PIN_ODR_LEVEL_LOW(PK05) | \
1416 PIN_ODR_LEVEL_LOW(PK06) | \
1417 PIN_ODR_LEVEL_LOW(PK07) | \
1418 PIN_ODR_LEVEL_LOW(PK08) | \
1419 PIN_ODR_LEVEL_LOW(PK09) | \
1420 PIN_ODR_LEVEL_LOW(PK10) | \
1421 PIN_ODR_LEVEL_LOW(PK11) | \
1422 PIN_ODR_LEVEL_LOW(PK12) | \
1423 PIN_ODR_LEVEL_LOW(PK13) | \
1424 PIN_ODR_LEVEL_LOW(PK14) | \
1425 PIN_ODR_LEVEL_LOW(PK15))
1426
1427#define VAL_GPIOK_AFRL (PIN_AFIO_AF(PK00, 0) | \
1428 PIN_AFIO_AF(PK01, 0) | \
1429 PIN_AFIO_AF(PK02, 0) | \
1430 PIN_AFIO_AF(PK03, 0) | \
1431 PIN_AFIO_AF(PK04, 0) | \
1432 PIN_AFIO_AF(PK05, 0) | \
1433 PIN_AFIO_AF(PK06, 0) | \
1434 PIN_AFIO_AF(PK07, 0))
1435
1436#define VAL_GPIOK_AFRH (PIN_AFIO_AF(PK08, 0) | \
1437 PIN_AFIO_AF(PK09, 0) | \
1438 PIN_AFIO_AF(PK10, 0) | \
1439 PIN_AFIO_AF(PK11, 0) | \
1440 PIN_AFIO_AF(PK12, 0) | \
1441 PIN_AFIO_AF(PK13, 0) | \
1442 PIN_AFIO_AF(PK14, 0) | \
1443 PIN_AFIO_AF(PK15, 0))
1444
1445#define AF_MOTOR1 1U
1446#define AF_LINE_MOTOR1 1U
1447#define AF_E_TX2 7U
1448#define AF_LINE_E_TX2 7U
1449#define AF_E_RX2 7U
1450#define AF_LINE_E_RX2 7U
1451#define AF_E_SCK 5U
1452#define AF_LINE_E_SCK 5U
1453#define AF_E_MISO 5U
1454#define AF_LINE_E_MISO 5U
1455#define AF_E_MOSI 5U
1456#define AF_LINE_E_MOSI 5U
1457#define AF_I2C3_SCL 4U
1458#define AF_LINE_I2C3_SCL 4U
1459#define AF_USB_ID 10U
1460#define AF_LINE_USB_ID 10U
1461#define AF_USB_DM 10U
1462#define AF_LINE_USB_DM 10U
1463#define AF_USB_DP 10U
1464#define AF_LINE_USB_DP 10U
1465#define AF_STM_SWIO 0U
1466#define AF_LINE_STM_SWIO 0U
1467#define AF_STM_SWCLK 0U
1468#define AF_LINE_STM_SWCLK 0U
1469#define AF_MOTOR3 1U
1470#define AF_LINE_MOTOR3 1U
1471#define AF_I2C1_SCL 4U
1472#define AF_LINE_I2C1_SCL 4U
1473#define AF_I2C1_SDA 4U
1474#define AF_LINE_I2C1_SDA 4U
1475#define AF_MOTOR4 2U
1476#define AF_LINE_MOTOR4 2U
1477#define AF_MOTOR2 1U
1478#define AF_LINE_MOTOR2 1U
1479#define AF_NRF_TX 8U
1480#define AF_LINE_NRF_TX 8U
1481#define AF_NRF_RX 8U
1482#define AF_LINE_NRF_RX 8U
1483#define AF_I2C3_SDA 4U
1484#define AF_LINE_I2C3_SDA 4U
1485#define AF_E_TX1 7U
1486#define AF_LINE_E_TX1 7U
1487#define AF_E_RX1 7U
1488#define AF_LINE_E_RX1 7U
1489#define AF_OSC_IN 0U
1490#define AF_LINE_OSC_IN 0U
1491#define AF_OSC_OUT 0U
1492#define AF_LINE_OSC_OUT 0U
1493
1494
1495
1496#define BOARD_GROUP_DECLFOREACH(line, group) \
1497 static const ioline_t group ## _ARRAY[] = {group}; \
1498 for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1499
1500#define BOARD_GROUP_FOREACH(line, group) \
1501 for (ioline_t i=0, line = group ## _ARRAY[i]; (i < group ## _SIZE) && (line = group ## _ARRAY[i]); i++)
1502
1503
1504#define BOARD_GROUP_DECLFOR(array, index, group) \
1505 static const ioline_t group ## _ARRAY[] = {group}; \
1506 for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1507
1508#define BOARD_GROUP_FOR(array, index, group) \
1509 for (ioline_t index=0, *array = (ioline_t *) group ## _ARRAY; index < group ## _SIZE; index++)
1510
1511#if !defined(_FROM_ASM_)
1512#ifdef __cplusplus
1513extern "C" {
1514#endif
1515 void boardInit(void);
1516#ifdef __cplusplus
1517}
1518#endif
1519#endif /* _FROM_ASM_ */
1520
void boardInit(void)
Board-specific initialization code.
Definition board.c:317