]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/chibios_test/boards/ST_STM32F072B_DISCOVERY/board.h
Chibios_test/stm32_f072_onekey: Add support for reset to bootloader (#4238)
[qmk_firmware.git] / keyboards / chibios_test / boards / ST_STM32F072B_DISCOVERY / board.h
1 /*
2     ChibiOS - Copyright (C) 2006..2016 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 /*
18  * This file has been automatically generated using ChibiStudio board
19  * generator plugin. Do not edit manually.
20  */
21
22 #ifndef BOARD_H
23 #define BOARD_H
24
25 /*
26  * Setup for ST STM32F072B-Discovery board.
27  */
28
29 /*
30  * Board identifier.
31  */
32 #define BOARD_ST_STM32F072B_DISCOVERY
33 #define BOARD_NAME                  "ST STM32F072B-Discovery"
34
35 /*
36  * Board oscillators-related settings.
37  * NOTE: LSE not fitted.
38  * NOTE: HSE not fitted.
39  */
40 #if !defined(STM32_LSECLK)
41 #define STM32_LSECLK                0U
42 #endif
43
44 #define STM32_LSEDRV                (3U << 3U)
45
46 #if !defined(STM32_HSECLK)
47 #define STM32_HSECLK                0U
48 #endif
49
50 #define STM32_HSE_BYPASS
51
52 /*
53  * MCU type as defined in the ST header.
54  */
55 #define STM32F072xB
56
57 /*
58  * IO pins assignments.
59  */
60 #define GPIOA_BUTTON                0U
61 #define GPIOA_PIN1                  1U
62 #define GPIOA_PIN2                  2U
63 #define GPIOA_PIN3                  3U
64 #define GPIOA_PIN4                  4U
65 #define GPIOA_PIN5                  5U
66 #define GPIOA_PIN6                  6U
67 #define GPIOA_PIN7                  7U
68 #define GPIOA_PIN8                  8U
69 #define GPIOA_PIN9                  9U
70 #define GPIOA_PIN10                 10U
71 #define GPIOA_USB_DM                11U
72 #define GPIOA_USB_DP                12U
73 #define GPIOA_SWDIO                 13U
74 #define GPIOA_SWCLK                 14U
75 #define GPIOA_PIN15                 15U
76
77 #define GPIOB_PIN0                  0U
78 #define GPIOB_PIN1                  1U
79 #define GPIOB_PIN2                  2U
80 #define GPIOB_PIN3                  3U
81 #define GPIOB_PIN4                  4U
82 #define GPIOB_PIN5                  5U
83 #define GPIOB_PIN6                  6U
84 #define GPIOB_PIN7                  7U
85 #define GPIOB_PIN8                  8U
86 #define GPIOB_PIN9                  9U
87 #define GPIOB_PIN10                 10U
88 #define GPIOB_PIN11                 11U
89 #define GPIOB_PIN12                 12U
90 #define GPIOB_SPI2_SCK              13U
91 #define GPIOB_SPI2_MISO             14U
92 #define GPIOB_SPI2_MOSI             15U
93
94 #define GPIOC_MEMS_CS               0U
95 #define GPIOC_PIN1                  1U
96 #define GPIOC_PIN2                  2U
97 #define GPIOC_PIN3                  3U
98 #define GPIOC_PIN4                  4U
99 #define GPIOC_PIN5                  5U
100 #define GPIOC_LED_RED               6U
101 #define GPIOC_LED_BLUE              7U
102 #define GPIOC_LED_ORANGE            8U
103 #define GPIOC_LED_GREEN             9U
104 #define GPIOC_PIN10                 10U
105 #define GPIOC_PIN11                 11U
106 #define GPIOC_PIN12                 12U
107 #define GPIOC_PIN13                 13U
108 #define GPIOC_OSC32_IN              14U
109 #define GPIOC_OSC32_OUT             15U
110
111 #define GPIOD_PIN0                  0U
112 #define GPIOD_PIN1                  1U
113 #define GPIOD_PIN2                  2U
114 #define GPIOD_PIN3                  3U
115 #define GPIOD_PIN4                  4U
116 #define GPIOD_PIN5                  5U
117 #define GPIOD_PIN6                  6U
118 #define GPIOD_PIN7                  7U
119 #define GPIOD_PIN8                  8U
120 #define GPIOD_PIN9                  9U
121 #define GPIOD_PIN10                 10U
122 #define GPIOD_PIN11                 11U
123 #define GPIOD_PIN12                 12U
124 #define GPIOD_PIN13                 13U
125 #define GPIOD_PIN14                 14U
126 #define GPIOD_PIN15                 15U
127
128 #define GPIOE_PIN0                  0U
129 #define GPIOE_PIN1                  1U
130 #define GPIOE_PIN2                  2U
131 #define GPIOE_PIN3                  3U
132 #define GPIOE_PIN4                  4U
133 #define GPIOE_PIN5                  5U
134 #define GPIOE_PIN6                  6U
135 #define GPIOE_PIN7                  7U
136 #define GPIOE_PIN8                  8U
137 #define GPIOE_PIN9                  9U
138 #define GPIOE_PIN10                 10U
139 #define GPIOE_PIN11                 11U
140 #define GPIOE_PIN12                 12U
141 #define GPIOE_PIN13                 13U
142 #define GPIOE_PIN14                 14U
143 #define GPIOE_PIN15                 15U
144
145 #define GPIOF_OSC_IN                0U
146 #define GPIOF_OSC_OUT               1U
147 #define GPIOF_PIN2                  2U
148 #define GPIOF_PIN3                  3U
149 #define GPIOF_PIN4                  4U
150 #define GPIOF_PIN5                  5U
151 #define GPIOF_PIN6                  6U
152 #define GPIOF_PIN7                  7U
153 #define GPIOF_PIN8                  8U
154 #define GPIOF_PIN9                  9U
155 #define GPIOF_PIN10                 10U
156 #define GPIOF_PIN11                 11U
157 #define GPIOF_PIN12                 12U
158 #define GPIOF_PIN13                 13U
159 #define GPIOF_PIN14                 14U
160 #define GPIOF_PIN15                 15U
161
162 /*
163  * IO lines assignments.
164  */
165 #define LINE_BUTTON                 PAL_LINE(GPIOA, 0U)
166 #define LINE_USB_DM                 PAL_LINE(GPIOA, 11U)
167 #define LINE_USB_DP                 PAL_LINE(GPIOA, 12U)
168 #define LINE_SWDIO                  PAL_LINE(GPIOA, 13U)
169 #define LINE_SWCLK                  PAL_LINE(GPIOA, 14U)
170
171 #define LINE_SPI2_SCK               PAL_LINE(GPIOB, 13U)
172 #define LINE_SPI2_MISO              PAL_LINE(GPIOB, 14U)
173 #define LINE_SPI2_MOSI              PAL_LINE(GPIOB, 15U)
174
175 #define LINE_MEMS_CS                PAL_LINE(GPIOC, 0U)
176 #define LINE_LED_RED                PAL_LINE(GPIOC, 6U)
177 #define LINE_LED_BLUE               PAL_LINE(GPIOC, 7U)
178 #define LINE_LED_ORANGE             PAL_LINE(GPIOC, 8U)
179 #define LINE_LED_GREEN              PAL_LINE(GPIOC, 9U)
180 #define LINE_OSC32_IN               PAL_LINE(GPIOC, 14U)
181 #define LINE_OSC32_OUT              PAL_LINE(GPIOC, 15U)
182
183
184
185 #define LINE_OSC_IN                 PAL_LINE(GPIOF, 0U)
186 #define LINE_OSC_OUT                PAL_LINE(GPIOF, 1U)
187
188 /*
189  * I/O ports initial setup, this configuration is established soon after reset
190  * in the initialization code.
191  * Please refer to the STM32 Reference Manual for details.
192  */
193 #define PIN_MODE_INPUT(n)           (0U << ((n) * 2U))
194 #define PIN_MODE_OUTPUT(n)          (1U << ((n) * 2U))
195 #define PIN_MODE_ALTERNATE(n)       (2U << ((n) * 2U))
196 #define PIN_MODE_ANALOG(n)          (3U << ((n) * 2U))
197 #define PIN_ODR_LOW(n)              (0U << (n))
198 #define PIN_ODR_HIGH(n)             (1U << (n))
199 #define PIN_OTYPE_PUSHPULL(n)       (0U << (n))
200 #define PIN_OTYPE_OPENDRAIN(n)      (1U << (n))
201 #define PIN_OSPEED_VERYLOW(n)       (0U << ((n) * 2U))
202 #define PIN_OSPEED_LOW(n)           (1U << ((n) * 2U))
203 #define PIN_OSPEED_MEDIUM(n)        (2U << ((n) * 2U))
204 #define PIN_OSPEED_HIGH(n)          (3U << ((n) * 2U))
205 #define PIN_PUPDR_FLOATING(n)       (0U << ((n) * 2U))
206 #define PIN_PUPDR_PULLUP(n)         (1U << ((n) * 2U))
207 #define PIN_PUPDR_PULLDOWN(n)       (2U << ((n) * 2U))
208 #define PIN_AFIO_AF(n, v)           ((v) << (((n) % 8U) * 4U))
209
210 /*
211  * GPIOA setup:
212  *
213  * PA0  - BUTTON                    (input floating).
214  * PA1  - PIN1                      (input pullup).
215  * PA2  - PIN2                      (input pullup).
216  * PA3  - PIN3                      (input pullup).
217  * PA4  - PIN4                      (input pullup).
218  * PA5  - PIN5                      (input pullup).
219  * PA6  - PIN6                      (input pullup).
220  * PA7  - PIN7                      (input pullup).
221  * PA8  - PIN8                      (input pullup).
222  * PA9  - PIN9                      (input pullup).
223  * PA10 - PIN10                     (input pullup).
224  * PA11 - USB_DM                    (input floating).
225  * PA12 - USB_DP                    (input floating).
226  * PA13 - SWDIO                     (alternate 0).
227  * PA14 - SWCLK                     (alternate 0).
228  * PA15 - PIN15                     (input pullup).
229  */
230 #define VAL_GPIOA_MODER             (PIN_MODE_INPUT(GPIOA_BUTTON) |         \
231                                      PIN_MODE_INPUT(GPIOA_PIN1) |           \
232                                      PIN_MODE_INPUT(GPIOA_PIN2) |           \
233                                      PIN_MODE_INPUT(GPIOA_PIN3) |           \
234                                      PIN_MODE_INPUT(GPIOA_PIN4) |           \
235                                      PIN_MODE_INPUT(GPIOA_PIN5) |           \
236                                      PIN_MODE_INPUT(GPIOA_PIN6) |           \
237                                      PIN_MODE_INPUT(GPIOA_PIN7) |           \
238                                      PIN_MODE_INPUT(GPIOA_PIN8) |           \
239                                      PIN_MODE_INPUT(GPIOA_PIN9) |           \
240                                      PIN_MODE_INPUT(GPIOA_PIN10) |          \
241                                      PIN_MODE_INPUT(GPIOA_USB_DM) |         \
242                                      PIN_MODE_INPUT(GPIOA_USB_DP) |         \
243                                      PIN_MODE_ALTERNATE(GPIOA_SWDIO) |      \
244                                      PIN_MODE_ALTERNATE(GPIOA_SWCLK) |      \
245                                      PIN_MODE_INPUT(GPIOA_PIN15))
246 #define VAL_GPIOA_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) |     \
247                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN1) |       \
248                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN2) |       \
249                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN3) |       \
250                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN4) |       \
251                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN5) |       \
252                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN6) |       \
253                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN7) |       \
254                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN8) |       \
255                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN9) |       \
256                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN10) |      \
257                                      PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) |     \
258                                      PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) |     \
259                                      PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) |      \
260                                      PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) |      \
261                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
262 #define VAL_GPIOA_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) |     \
263                                      PIN_OSPEED_VERYLOW(GPIOA_PIN1) |       \
264                                      PIN_OSPEED_VERYLOW(GPIOA_PIN2) |       \
265                                      PIN_OSPEED_VERYLOW(GPIOA_PIN3) |       \
266                                      PIN_OSPEED_VERYLOW(GPIOA_PIN4) |       \
267                                      PIN_OSPEED_VERYLOW(GPIOA_PIN5) |       \
268                                      PIN_OSPEED_VERYLOW(GPIOA_PIN6) |       \
269                                      PIN_OSPEED_VERYLOW(GPIOA_PIN7) |       \
270                                      PIN_OSPEED_VERYLOW(GPIOA_PIN8) |       \
271                                      PIN_OSPEED_VERYLOW(GPIOA_PIN9) |       \
272                                      PIN_OSPEED_VERYLOW(GPIOA_PIN10) |      \
273                                      PIN_OSPEED_VERYLOW(GPIOA_USB_DM) |     \
274                                      PIN_OSPEED_VERYLOW(GPIOA_USB_DP) |     \
275                                      PIN_OSPEED_HIGH(GPIOA_SWDIO) |         \
276                                      PIN_OSPEED_HIGH(GPIOA_SWCLK) |         \
277                                      PIN_OSPEED_HIGH(GPIOA_PIN15))
278 #define VAL_GPIOA_PUPDR             (PIN_PUPDR_FLOATING(GPIOA_BUTTON) |     \
279                                      PIN_PUPDR_PULLUP(GPIOA_PIN1) |         \
280                                      PIN_PUPDR_PULLUP(GPIOA_PIN2) |         \
281                                      PIN_PUPDR_PULLUP(GPIOA_PIN3) |         \
282                                      PIN_PUPDR_PULLUP(GPIOA_PIN4) |         \
283                                      PIN_PUPDR_PULLUP(GPIOA_PIN5) |         \
284                                      PIN_PUPDR_PULLUP(GPIOA_PIN6) |         \
285                                      PIN_PUPDR_PULLUP(GPIOA_PIN7) |         \
286                                      PIN_PUPDR_PULLUP(GPIOA_PIN8) |         \
287                                      PIN_PUPDR_PULLUP(GPIOA_PIN9) |         \
288                                      PIN_PUPDR_PULLUP(GPIOA_PIN10) |        \
289                                      PIN_PUPDR_FLOATING(GPIOA_USB_DM) |     \
290                                      PIN_PUPDR_FLOATING(GPIOA_USB_DP) |     \
291                                      PIN_PUPDR_PULLUP(GPIOA_SWDIO) |        \
292                                      PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) |      \
293                                      PIN_PUPDR_PULLUP(GPIOA_PIN15))
294 #define VAL_GPIOA_ODR               (PIN_ODR_HIGH(GPIOA_BUTTON) |           \
295                                      PIN_ODR_HIGH(GPIOA_PIN1) |             \
296                                      PIN_ODR_HIGH(GPIOA_PIN2) |             \
297                                      PIN_ODR_HIGH(GPIOA_PIN3) |             \
298                                      PIN_ODR_HIGH(GPIOA_PIN4) |             \
299                                      PIN_ODR_HIGH(GPIOA_PIN5) |             \
300                                      PIN_ODR_HIGH(GPIOA_PIN6) |             \
301                                      PIN_ODR_HIGH(GPIOA_PIN7) |             \
302                                      PIN_ODR_HIGH(GPIOA_PIN8) |             \
303                                      PIN_ODR_HIGH(GPIOA_PIN9) |             \
304                                      PIN_ODR_HIGH(GPIOA_PIN10) |            \
305                                      PIN_ODR_HIGH(GPIOA_USB_DM) |           \
306                                      PIN_ODR_HIGH(GPIOA_USB_DP) |           \
307                                      PIN_ODR_HIGH(GPIOA_SWDIO) |            \
308                                      PIN_ODR_HIGH(GPIOA_SWCLK) |            \
309                                      PIN_ODR_HIGH(GPIOA_PIN15))
310 #define VAL_GPIOA_AFRL              (PIN_AFIO_AF(GPIOA_BUTTON, 0U) |        \
311                                      PIN_AFIO_AF(GPIOA_PIN1, 0U) |          \
312                                      PIN_AFIO_AF(GPIOA_PIN2, 0U) |          \
313                                      PIN_AFIO_AF(GPIOA_PIN3, 0U) |          \
314                                      PIN_AFIO_AF(GPIOA_PIN4, 0U) |          \
315                                      PIN_AFIO_AF(GPIOA_PIN5, 0U) |          \
316                                      PIN_AFIO_AF(GPIOA_PIN6, 0U) |          \
317                                      PIN_AFIO_AF(GPIOA_PIN7, 0U))
318 #define VAL_GPIOA_AFRH              (PIN_AFIO_AF(GPIOA_PIN8, 0U) |          \
319                                      PIN_AFIO_AF(GPIOA_PIN9, 0U) |          \
320                                      PIN_AFIO_AF(GPIOA_PIN10, 0U) |         \
321                                      PIN_AFIO_AF(GPIOA_USB_DM, 0U) |        \
322                                      PIN_AFIO_AF(GPIOA_USB_DP, 0U) |        \
323                                      PIN_AFIO_AF(GPIOA_SWDIO, 0U) |         \
324                                      PIN_AFIO_AF(GPIOA_SWCLK, 0U) |         \
325                                      PIN_AFIO_AF(GPIOA_PIN15, 0U))
326
327 /*
328  * GPIOB setup:
329  *
330  * PB0  - PIN0                      (input pullup).
331  * PB1  - PIN1                      (input pullup).
332  * PB2  - PIN2                      (input pullup).
333  * PB3  - PIN3                      (input pullup).
334  * PB4  - PIN4                      (input pullup).
335  * PB5  - PIN5                      (input pullup).
336  * PB6  - PIN6                      (input pullup).
337  * PB7  - PIN7                      (input pullup).
338  * PB8  - PIN8                      (input pullup).
339  * PB9  - PIN9                      (input pullup).
340  * PB10 - PIN10                     (input pullup).
341  * PB11 - PIN11                     (input pullup).
342  * PB12 - PIN12                     (input pullup).
343  * PB13 - SPI2_SCK                  (alternate 0).
344  * PB14 - SPI2_MISO                 (alternate 0).
345  * PB15 - SPI2_MOSI                 (alternate 0).
346  */
347 #define VAL_GPIOB_MODER             (PIN_MODE_INPUT(GPIOB_PIN0) |           \
348                                      PIN_MODE_INPUT(GPIOB_PIN1) |           \
349                                      PIN_MODE_INPUT(GPIOB_PIN2) |           \
350                                      PIN_MODE_INPUT(GPIOB_PIN3) |           \
351                                      PIN_MODE_INPUT(GPIOB_PIN4) |           \
352                                      PIN_MODE_INPUT(GPIOB_PIN5) |           \
353                                      PIN_MODE_INPUT(GPIOB_PIN6) |           \
354                                      PIN_MODE_INPUT(GPIOB_PIN7) |           \
355                                      PIN_MODE_INPUT(GPIOB_PIN8) |           \
356                                      PIN_MODE_INPUT(GPIOB_PIN9) |           \
357                                      PIN_MODE_INPUT(GPIOB_PIN10) |          \
358                                      PIN_MODE_INPUT(GPIOB_PIN11) |          \
359                                      PIN_MODE_INPUT(GPIOB_PIN12) |          \
360                                      PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) |   \
361                                      PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) |  \
362                                      PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI))
363 #define VAL_GPIOB_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) |       \
364                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN1) |       \
365                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN2) |       \
366                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN3) |       \
367                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN4) |       \
368                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN5) |       \
369                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN6) |       \
370                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN7) |       \
371                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN8) |       \
372                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN9) |       \
373                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN10) |      \
374                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN11) |      \
375                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN12) |      \
376                                      PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) |   \
377                                      PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) |  \
378                                      PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI))
379 #define VAL_GPIOB_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOB_PIN0) |       \
380                                      PIN_OSPEED_VERYLOW(GPIOB_PIN1) |       \
381                                      PIN_OSPEED_HIGH(GPIOB_PIN2) |          \
382                                      PIN_OSPEED_HIGH(GPIOB_PIN3) |          \
383                                      PIN_OSPEED_HIGH(GPIOB_PIN4) |          \
384                                      PIN_OSPEED_VERYLOW(GPIOB_PIN5) |       \
385                                      PIN_OSPEED_VERYLOW(GPIOB_PIN6) |       \
386                                      PIN_OSPEED_VERYLOW(GPIOB_PIN7) |       \
387                                      PIN_OSPEED_VERYLOW(GPIOB_PIN8) |       \
388                                      PIN_OSPEED_VERYLOW(GPIOB_PIN9) |       \
389                                      PIN_OSPEED_VERYLOW(GPIOB_PIN10) |      \
390                                      PIN_OSPEED_VERYLOW(GPIOB_PIN11) |      \
391                                      PIN_OSPEED_VERYLOW(GPIOB_PIN12) |      \
392                                      PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) |   \
393                                      PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) |  \
394                                      PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI))
395 #define VAL_GPIOB_PUPDR             (PIN_PUPDR_PULLUP(GPIOB_PIN0) |         \
396                                      PIN_PUPDR_PULLUP(GPIOB_PIN1) |         \
397                                      PIN_PUPDR_PULLUP(GPIOB_PIN2) |         \
398                                      PIN_PUPDR_PULLUP(GPIOB_PIN3) |         \
399                                      PIN_PUPDR_PULLUP(GPIOB_PIN4) |         \
400                                      PIN_PUPDR_PULLUP(GPIOB_PIN5) |         \
401                                      PIN_PUPDR_PULLUP(GPIOB_PIN6) |         \
402                                      PIN_PUPDR_PULLUP(GPIOB_PIN7) |         \
403                                      PIN_PUPDR_PULLUP(GPIOB_PIN8) |         \
404                                      PIN_PUPDR_PULLUP(GPIOB_PIN9) |         \
405                                      PIN_PUPDR_PULLUP(GPIOB_PIN10) |        \
406                                      PIN_PUPDR_PULLUP(GPIOB_PIN11) |        \
407                                      PIN_PUPDR_PULLUP(GPIOB_PIN12) |        \
408                                      PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) |   \
409                                      PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) |  \
410                                      PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI))
411 #define VAL_GPIOB_ODR               (PIN_ODR_HIGH(GPIOB_PIN0) |             \
412                                      PIN_ODR_HIGH(GPIOB_PIN1) |             \
413                                      PIN_ODR_HIGH(GPIOB_PIN2) |             \
414                                      PIN_ODR_HIGH(GPIOB_PIN3) |             \
415                                      PIN_ODR_HIGH(GPIOB_PIN4) |             \
416                                      PIN_ODR_HIGH(GPIOB_PIN5) |             \
417                                      PIN_ODR_HIGH(GPIOB_PIN6) |             \
418                                      PIN_ODR_HIGH(GPIOB_PIN7) |             \
419                                      PIN_ODR_HIGH(GPIOB_PIN8) |             \
420                                      PIN_ODR_HIGH(GPIOB_PIN9) |             \
421                                      PIN_ODR_HIGH(GPIOB_PIN10) |            \
422                                      PIN_ODR_HIGH(GPIOB_PIN11) |            \
423                                      PIN_ODR_HIGH(GPIOB_PIN12) |            \
424                                      PIN_ODR_HIGH(GPIOB_SPI2_SCK) |         \
425                                      PIN_ODR_HIGH(GPIOB_SPI2_MISO) |        \
426                                      PIN_ODR_HIGH(GPIOB_SPI2_MOSI))
427 #define VAL_GPIOB_AFRL              (PIN_AFIO_AF(GPIOB_PIN0, 0U) |          \
428                                      PIN_AFIO_AF(GPIOB_PIN1, 0U) |          \
429                                      PIN_AFIO_AF(GPIOB_PIN2, 0U) |          \
430                                      PIN_AFIO_AF(GPIOB_PIN3, 0U) |          \
431                                      PIN_AFIO_AF(GPIOB_PIN4, 0U) |          \
432                                      PIN_AFIO_AF(GPIOB_PIN5, 0U) |          \
433                                      PIN_AFIO_AF(GPIOB_PIN6, 0U) |          \
434                                      PIN_AFIO_AF(GPIOB_PIN7, 0U))
435 #define VAL_GPIOB_AFRH              (PIN_AFIO_AF(GPIOB_PIN8, 0U) |          \
436                                      PIN_AFIO_AF(GPIOB_PIN9, 0U) |          \
437                                      PIN_AFIO_AF(GPIOB_PIN10, 0U) |         \
438                                      PIN_AFIO_AF(GPIOB_PIN11, 0U) |         \
439                                      PIN_AFIO_AF(GPIOB_PIN12, 0U) |         \
440                                      PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) |      \
441                                      PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) |     \
442                                      PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U))
443
444 /*
445  * GPIOC setup:
446  *
447  * PC0  - MEMS_CS                   (output pushpull maximum).
448  * PC1  - PIN1                      (input pullup).
449  * PC2  - PIN2                      (input pullup).
450  * PC3  - PIN3                      (input pullup).
451  * PC4  - PIN4                      (input pullup).
452  * PC5  - PIN5                      (input pullup).
453  * PC6  - LED_RED                   (output pushpull maximum).
454  * PC7  - LED_BLUE                  (output pushpull maximum).
455  * PC8  - LED_ORANGE                (output pushpull maximum).
456  * PC9  - LED_GREEN                 (output pushpull maximum).
457  * PC10 - PIN10                     (input pullup).
458  * PC11 - PIN11                     (input pullup).
459  * PC12 - PIN12                     (input pullup).
460  * PC13 - PIN13                     (input pullup).
461  * PC14 - OSC32_IN                  (input floating).
462  * PC15 - OSC32_OUT                 (input floating).
463  */
464 #define VAL_GPIOC_MODER             (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) |       \
465                                      PIN_MODE_INPUT(GPIOC_PIN1) |           \
466                                      PIN_MODE_INPUT(GPIOC_PIN2) |           \
467                                      PIN_MODE_INPUT(GPIOC_PIN3) |           \
468                                      PIN_MODE_INPUT(GPIOC_PIN4) |           \
469                                      PIN_MODE_INPUT(GPIOC_PIN5) |           \
470                                      PIN_MODE_OUTPUT(GPIOC_LED_RED) |       \
471                                      PIN_MODE_OUTPUT(GPIOC_LED_BLUE) |      \
472                                      PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) |    \
473                                      PIN_MODE_OUTPUT(GPIOC_LED_GREEN) |     \
474                                      PIN_MODE_INPUT(GPIOC_PIN10) |          \
475                                      PIN_MODE_INPUT(GPIOC_PIN11) |          \
476                                      PIN_MODE_INPUT(GPIOC_PIN12) |          \
477                                      PIN_MODE_INPUT(GPIOC_PIN13) |          \
478                                      PIN_MODE_INPUT(GPIOC_OSC32_IN) |       \
479                                      PIN_MODE_INPUT(GPIOC_OSC32_OUT))
480 #define VAL_GPIOC_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) |    \
481                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN1) |       \
482                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN2) |       \
483                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN3) |       \
484                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN4) |       \
485                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN5) |       \
486                                      PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) |    \
487                                      PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) |   \
488                                      PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \
489                                      PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) |  \
490                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN10) |      \
491                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN11) |      \
492                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN12) |      \
493                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN13) |      \
494                                      PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) |   \
495                                      PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
496 #define VAL_GPIOC_OSPEEDR           (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) |       \
497                                      PIN_OSPEED_VERYLOW(GPIOC_PIN1) |       \
498                                      PIN_OSPEED_VERYLOW(GPIOC_PIN2) |       \
499                                      PIN_OSPEED_VERYLOW(GPIOC_PIN3) |       \
500                                      PIN_OSPEED_VERYLOW(GPIOC_PIN4) |       \
501                                      PIN_OSPEED_VERYLOW(GPIOC_PIN5) |       \
502                                      PIN_OSPEED_HIGH(GPIOC_LED_RED) |       \
503                                      PIN_OSPEED_HIGH(GPIOC_LED_BLUE) |      \
504                                      PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) |    \
505                                      PIN_OSPEED_HIGH(GPIOC_LED_GREEN) |     \
506                                      PIN_OSPEED_VERYLOW(GPIOC_PIN10) |      \
507                                      PIN_OSPEED_VERYLOW(GPIOC_PIN11) |      \
508                                      PIN_OSPEED_VERYLOW(GPIOC_PIN12) |      \
509                                      PIN_OSPEED_VERYLOW(GPIOC_PIN13) |      \
510                                      PIN_OSPEED_HIGH(GPIOC_OSC32_IN) |      \
511                                      PIN_OSPEED_HIGH(GPIOC_OSC32_OUT))
512 #define VAL_GPIOC_PUPDR             (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) |    \
513                                      PIN_PUPDR_PULLUP(GPIOC_PIN1) |         \
514                                      PIN_PUPDR_PULLUP(GPIOC_PIN2) |         \
515                                      PIN_PUPDR_PULLUP(GPIOC_PIN3) |         \
516                                      PIN_PUPDR_PULLUP(GPIOC_PIN4) |         \
517                                      PIN_PUPDR_PULLUP(GPIOC_PIN5) |         \
518                                      PIN_PUPDR_FLOATING(GPIOC_LED_RED) |    \
519                                      PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) |   \
520                                      PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \
521                                      PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) |  \
522                                      PIN_PUPDR_PULLUP(GPIOC_PIN10) |        \
523                                      PIN_PUPDR_PULLUP(GPIOC_PIN11) |        \
524                                      PIN_PUPDR_PULLUP(GPIOC_PIN12) |        \
525                                      PIN_PUPDR_PULLUP(GPIOC_PIN13) |        \
526                                      PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) |   \
527                                      PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
528 #define VAL_GPIOC_ODR               (PIN_ODR_HIGH(GPIOC_MEMS_CS) |          \
529                                      PIN_ODR_HIGH(GPIOC_PIN1) |             \
530                                      PIN_ODR_HIGH(GPIOC_PIN2) |             \
531                                      PIN_ODR_HIGH(GPIOC_PIN3) |             \
532                                      PIN_ODR_HIGH(GPIOC_PIN4) |             \
533                                      PIN_ODR_HIGH(GPIOC_PIN5) |             \
534                                      PIN_ODR_LOW(GPIOC_LED_RED) |           \
535                                      PIN_ODR_LOW(GPIOC_LED_BLUE) |          \
536                                      PIN_ODR_LOW(GPIOC_LED_ORANGE) |        \
537                                      PIN_ODR_LOW(GPIOC_LED_GREEN) |         \
538                                      PIN_ODR_HIGH(GPIOC_PIN10) |            \
539                                      PIN_ODR_HIGH(GPIOC_PIN11) |            \
540                                      PIN_ODR_HIGH(GPIOC_PIN12) |            \
541                                      PIN_ODR_HIGH(GPIOC_PIN13) |            \
542                                      PIN_ODR_HIGH(GPIOC_OSC32_IN) |         \
543                                      PIN_ODR_HIGH(GPIOC_OSC32_OUT))
544 #define VAL_GPIOC_AFRL              (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) |       \
545                                      PIN_AFIO_AF(GPIOC_PIN1, 0U) |          \
546                                      PIN_AFIO_AF(GPIOC_PIN2, 0U) |          \
547                                      PIN_AFIO_AF(GPIOC_PIN3, 0U) |          \
548                                      PIN_AFIO_AF(GPIOC_PIN4, 0U) |          \
549                                      PIN_AFIO_AF(GPIOC_PIN5, 0U) |          \
550                                      PIN_AFIO_AF(GPIOC_LED_RED, 0U) |       \
551                                      PIN_AFIO_AF(GPIOC_LED_BLUE, 0U))
552 #define VAL_GPIOC_AFRH              (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) |    \
553                                      PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) |     \
554                                      PIN_AFIO_AF(GPIOC_PIN10, 0U) |         \
555                                      PIN_AFIO_AF(GPIOC_PIN11, 0U) |         \
556                                      PIN_AFIO_AF(GPIOC_PIN12, 0U) |         \
557                                      PIN_AFIO_AF(GPIOC_PIN13, 0U) |         \
558                                      PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) |      \
559                                      PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U))
560
561 /*
562  * GPIOD setup:
563  *
564  * PD0  - PIN0                      (input pullup).
565  * PD1  - PIN1                      (input pullup).
566  * PD2  - PIN2                      (input pullup).
567  * PD3  - PIN3                      (input pullup).
568  * PD4  - PIN4                      (input pullup).
569  * PD5  - PIN5                      (input pullup).
570  * PD6  - PIN6                      (input pullup).
571  * PD7  - PIN7                      (input pullup).
572  * PD8  - PIN8                      (input pullup).
573  * PD9  - PIN9                      (input pullup).
574  * PD10 - PIN10                     (input pullup).
575  * PD11 - PIN11                     (input pullup).
576  * PD12 - PIN12                     (input pullup).
577  * PD13 - PIN13                     (input pullup).
578  * PD14 - PIN14                     (input pullup).
579  * PD15 - PIN15                     (input pullup).
580  */
581 #define VAL_GPIOD_MODER             (PIN_MODE_INPUT(GPIOD_PIN0) |           \
582                                      PIN_MODE_INPUT(GPIOD_PIN1) |           \
583                                      PIN_MODE_INPUT(GPIOD_PIN2) |           \
584                                      PIN_MODE_INPUT(GPIOD_PIN3) |           \
585                                      PIN_MODE_INPUT(GPIOD_PIN4) |           \
586                                      PIN_MODE_INPUT(GPIOD_PIN5) |           \
587                                      PIN_MODE_INPUT(GPIOD_PIN6) |           \
588                                      PIN_MODE_INPUT(GPIOD_PIN7) |           \
589                                      PIN_MODE_INPUT(GPIOD_PIN8) |           \
590                                      PIN_MODE_INPUT(GPIOD_PIN9) |           \
591                                      PIN_MODE_INPUT(GPIOD_PIN10) |          \
592                                      PIN_MODE_INPUT(GPIOD_PIN11) |          \
593                                      PIN_MODE_INPUT(GPIOD_PIN12) |          \
594                                      PIN_MODE_INPUT(GPIOD_PIN13) |          \
595                                      PIN_MODE_INPUT(GPIOD_PIN14) |          \
596                                      PIN_MODE_INPUT(GPIOD_PIN15))
597 #define VAL_GPIOD_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) |       \
598                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN1) |       \
599                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN2) |       \
600                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN3) |       \
601                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN4) |       \
602                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN5) |       \
603                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN6) |       \
604                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN7) |       \
605                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN8) |       \
606                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN9) |       \
607                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN10) |      \
608                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN11) |      \
609                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN12) |      \
610                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN13) |      \
611                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN14) |      \
612                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
613 #define VAL_GPIOD_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOD_PIN0) |       \
614                                      PIN_OSPEED_VERYLOW(GPIOD_PIN1) |       \
615                                      PIN_OSPEED_VERYLOW(GPIOD_PIN2) |       \
616                                      PIN_OSPEED_VERYLOW(GPIOD_PIN3) |       \
617                                      PIN_OSPEED_VERYLOW(GPIOD_PIN4) |       \
618                                      PIN_OSPEED_VERYLOW(GPIOD_PIN5) |       \
619                                      PIN_OSPEED_VERYLOW(GPIOD_PIN6) |       \
620                                      PIN_OSPEED_VERYLOW(GPIOD_PIN7) |       \
621                                      PIN_OSPEED_VERYLOW(GPIOD_PIN8) |       \
622                                      PIN_OSPEED_VERYLOW(GPIOD_PIN9) |       \
623                                      PIN_OSPEED_VERYLOW(GPIOD_PIN10) |      \
624                                      PIN_OSPEED_VERYLOW(GPIOD_PIN11) |      \
625                                      PIN_OSPEED_VERYLOW(GPIOD_PIN12) |      \
626                                      PIN_OSPEED_VERYLOW(GPIOD_PIN13) |      \
627                                      PIN_OSPEED_VERYLOW(GPIOD_PIN14) |      \
628                                      PIN_OSPEED_VERYLOW(GPIOD_PIN15))
629 #define VAL_GPIOD_PUPDR             (PIN_PUPDR_PULLUP(GPIOD_PIN0) |         \
630                                      PIN_PUPDR_PULLUP(GPIOD_PIN1) |         \
631                                      PIN_PUPDR_PULLUP(GPIOD_PIN2) |         \
632                                      PIN_PUPDR_PULLUP(GPIOD_PIN3) |         \
633                                      PIN_PUPDR_PULLUP(GPIOD_PIN4) |         \
634                                      PIN_PUPDR_PULLUP(GPIOD_PIN5) |         \
635                                      PIN_PUPDR_PULLUP(GPIOD_PIN6) |         \
636                                      PIN_PUPDR_PULLUP(GPIOD_PIN7) |         \
637                                      PIN_PUPDR_PULLUP(GPIOD_PIN8) |         \
638                                      PIN_PUPDR_PULLUP(GPIOD_PIN9) |         \
639                                      PIN_PUPDR_PULLUP(GPIOD_PIN10) |        \
640                                      PIN_PUPDR_PULLUP(GPIOD_PIN11) |        \
641                                      PIN_PUPDR_PULLUP(GPIOD_PIN12) |        \
642                                      PIN_PUPDR_PULLUP(GPIOD_PIN13) |        \
643                                      PIN_PUPDR_PULLUP(GPIOD_PIN14) |        \
644                                      PIN_PUPDR_PULLUP(GPIOD_PIN15))
645 #define VAL_GPIOD_ODR               (PIN_ODR_HIGH(GPIOD_PIN0) |             \
646                                      PIN_ODR_HIGH(GPIOD_PIN1) |             \
647                                      PIN_ODR_HIGH(GPIOD_PIN2) |             \
648                                      PIN_ODR_HIGH(GPIOD_PIN3) |             \
649                                      PIN_ODR_HIGH(GPIOD_PIN4) |             \
650                                      PIN_ODR_HIGH(GPIOD_PIN5) |             \
651                                      PIN_ODR_HIGH(GPIOD_PIN6) |             \
652                                      PIN_ODR_HIGH(GPIOD_PIN7) |             \
653                                      PIN_ODR_HIGH(GPIOD_PIN8) |             \
654                                      PIN_ODR_HIGH(GPIOD_PIN9) |             \
655                                      PIN_ODR_HIGH(GPIOD_PIN10) |            \
656                                      PIN_ODR_HIGH(GPIOD_PIN11) |            \
657                                      PIN_ODR_HIGH(GPIOD_PIN12) |            \
658                                      PIN_ODR_HIGH(GPIOD_PIN13) |            \
659                                      PIN_ODR_HIGH(GPIOD_PIN14) |            \
660                                      PIN_ODR_HIGH(GPIOD_PIN15))
661 #define VAL_GPIOD_AFRL              (PIN_AFIO_AF(GPIOD_PIN0, 0U) |          \
662                                      PIN_AFIO_AF(GPIOD_PIN1, 0U) |          \
663                                      PIN_AFIO_AF(GPIOD_PIN2, 0U) |          \
664                                      PIN_AFIO_AF(GPIOD_PIN3, 0U) |          \
665                                      PIN_AFIO_AF(GPIOD_PIN4, 0U) |          \
666                                      PIN_AFIO_AF(GPIOD_PIN5, 0U) |          \
667                                      PIN_AFIO_AF(GPIOD_PIN6, 0U) |          \
668                                      PIN_AFIO_AF(GPIOD_PIN7, 0U))
669 #define VAL_GPIOD_AFRH              (PIN_AFIO_AF(GPIOD_PIN8, 0U) |          \
670                                      PIN_AFIO_AF(GPIOD_PIN9, 0U) |          \
671                                      PIN_AFIO_AF(GPIOD_PIN10, 0U) |         \
672                                      PIN_AFIO_AF(GPIOD_PIN11, 0U) |         \
673                                      PIN_AFIO_AF(GPIOD_PIN12, 0U) |         \
674                                      PIN_AFIO_AF(GPIOD_PIN13, 0U) |         \
675                                      PIN_AFIO_AF(GPIOD_PIN14, 0U) |         \
676                                      PIN_AFIO_AF(GPIOD_PIN15, 0U))
677
678 /*
679  * GPIOE setup:
680  *
681  * PE0  - PIN0                      (input pullup).
682  * PE1  - PIN1                      (input pullup).
683  * PE2  - PIN2                      (input pullup).
684  * PE3  - PIN3                      (input pullup).
685  * PE4  - PIN4                      (input pullup).
686  * PE5  - PIN5                      (input pullup).
687  * PE6  - PIN6                      (input pullup).
688  * PE7  - PIN7                      (input pullup).
689  * PE8  - PIN8                      (input pullup).
690  * PE9  - PIN9                      (input pullup).
691  * PE10 - PIN10                     (input pullup).
692  * PE11 - PIN11                     (input pullup).
693  * PE12 - PIN12                     (input pullup).
694  * PE13 - PIN13                     (input pullup).
695  * PE14 - PIN14                     (input pullup).
696  * PE15 - PIN15                     (input pullup).
697  */
698 #define VAL_GPIOE_MODER             (PIN_MODE_INPUT(GPIOE_PIN0) |           \
699                                      PIN_MODE_INPUT(GPIOE_PIN1) |           \
700                                      PIN_MODE_INPUT(GPIOE_PIN2) |           \
701                                      PIN_MODE_INPUT(GPIOE_PIN3) |           \
702                                      PIN_MODE_INPUT(GPIOE_PIN4) |           \
703                                      PIN_MODE_INPUT(GPIOE_PIN5) |           \
704                                      PIN_MODE_INPUT(GPIOE_PIN6) |           \
705                                      PIN_MODE_INPUT(GPIOE_PIN7) |           \
706                                      PIN_MODE_INPUT(GPIOE_PIN8) |           \
707                                      PIN_MODE_INPUT(GPIOE_PIN9) |           \
708                                      PIN_MODE_INPUT(GPIOE_PIN10) |          \
709                                      PIN_MODE_INPUT(GPIOE_PIN11) |          \
710                                      PIN_MODE_INPUT(GPIOE_PIN12) |          \
711                                      PIN_MODE_INPUT(GPIOE_PIN13) |          \
712                                      PIN_MODE_INPUT(GPIOE_PIN14) |          \
713                                      PIN_MODE_INPUT(GPIOE_PIN15))
714 #define VAL_GPIOE_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) |       \
715                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN1) |       \
716                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN2) |       \
717                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN3) |       \
718                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN4) |       \
719                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN5) |       \
720                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN6) |       \
721                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN7) |       \
722                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN8) |       \
723                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN9) |       \
724                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN10) |      \
725                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN11) |      \
726                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN12) |      \
727                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN13) |      \
728                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN14) |      \
729                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
730 #define VAL_GPIOE_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOE_PIN0) |       \
731                                      PIN_OSPEED_VERYLOW(GPIOE_PIN1) |       \
732                                      PIN_OSPEED_VERYLOW(GPIOE_PIN2) |       \
733                                      PIN_OSPEED_VERYLOW(GPIOE_PIN3) |       \
734                                      PIN_OSPEED_VERYLOW(GPIOE_PIN4) |       \
735                                      PIN_OSPEED_VERYLOW(GPIOE_PIN5) |       \
736                                      PIN_OSPEED_VERYLOW(GPIOE_PIN6) |       \
737                                      PIN_OSPEED_VERYLOW(GPIOE_PIN7) |       \
738                                      PIN_OSPEED_VERYLOW(GPIOE_PIN8) |       \
739                                      PIN_OSPEED_VERYLOW(GPIOE_PIN9) |       \
740                                      PIN_OSPEED_VERYLOW(GPIOE_PIN10) |      \
741                                      PIN_OSPEED_VERYLOW(GPIOE_PIN11) |      \
742                                      PIN_OSPEED_VERYLOW(GPIOE_PIN12) |      \
743                                      PIN_OSPEED_VERYLOW(GPIOE_PIN13) |      \
744                                      PIN_OSPEED_VERYLOW(GPIOE_PIN14) |      \
745                                      PIN_OSPEED_VERYLOW(GPIOE_PIN15))
746 #define VAL_GPIOE_PUPDR             (PIN_PUPDR_PULLUP(GPIOE_PIN0) |         \
747                                      PIN_PUPDR_PULLUP(GPIOE_PIN1) |         \
748                                      PIN_PUPDR_PULLUP(GPIOE_PIN2) |         \
749                                      PIN_PUPDR_PULLUP(GPIOE_PIN3) |         \
750                                      PIN_PUPDR_PULLUP(GPIOE_PIN4) |         \
751                                      PIN_PUPDR_PULLUP(GPIOE_PIN5) |         \
752                                      PIN_PUPDR_PULLUP(GPIOE_PIN6) |         \
753                                      PIN_PUPDR_PULLUP(GPIOE_PIN7) |         \
754                                      PIN_PUPDR_PULLUP(GPIOE_PIN8) |         \
755                                      PIN_PUPDR_PULLUP(GPIOE_PIN9) |         \
756                                      PIN_PUPDR_PULLUP(GPIOE_PIN10) |        \
757                                      PIN_PUPDR_PULLUP(GPIOE_PIN11) |        \
758                                      PIN_PUPDR_PULLUP(GPIOE_PIN12) |        \
759                                      PIN_PUPDR_PULLUP(GPIOE_PIN13) |        \
760                                      PIN_PUPDR_PULLUP(GPIOE_PIN14) |        \
761                                      PIN_PUPDR_PULLUP(GPIOE_PIN15))
762 #define VAL_GPIOE_ODR               (PIN_ODR_HIGH(GPIOE_PIN0) |             \
763                                      PIN_ODR_HIGH(GPIOE_PIN1) |             \
764                                      PIN_ODR_HIGH(GPIOE_PIN2) |             \
765                                      PIN_ODR_HIGH(GPIOE_PIN3) |             \
766                                      PIN_ODR_HIGH(GPIOE_PIN4) |             \
767                                      PIN_ODR_HIGH(GPIOE_PIN5) |             \
768                                      PIN_ODR_HIGH(GPIOE_PIN6) |             \
769                                      PIN_ODR_HIGH(GPIOE_PIN7) |             \
770                                      PIN_ODR_HIGH(GPIOE_PIN8) |             \
771                                      PIN_ODR_HIGH(GPIOE_PIN9) |             \
772                                      PIN_ODR_HIGH(GPIOE_PIN10) |            \
773                                      PIN_ODR_HIGH(GPIOE_PIN11) |            \
774                                      PIN_ODR_HIGH(GPIOE_PIN12) |            \
775                                      PIN_ODR_HIGH(GPIOE_PIN13) |            \
776                                      PIN_ODR_HIGH(GPIOE_PIN14) |            \
777                                      PIN_ODR_HIGH(GPIOE_PIN15))
778 #define VAL_GPIOE_AFRL              (PIN_AFIO_AF(GPIOE_PIN0, 0U) |          \
779                                      PIN_AFIO_AF(GPIOE_PIN1, 0U) |          \
780                                      PIN_AFIO_AF(GPIOE_PIN2, 0U) |          \
781                                      PIN_AFIO_AF(GPIOE_PIN3, 0U) |          \
782                                      PIN_AFIO_AF(GPIOE_PIN4, 0U) |          \
783                                      PIN_AFIO_AF(GPIOE_PIN5, 0U) |          \
784                                      PIN_AFIO_AF(GPIOE_PIN6, 0U) |          \
785                                      PIN_AFIO_AF(GPIOE_PIN7, 0U))
786 #define VAL_GPIOE_AFRH              (PIN_AFIO_AF(GPIOE_PIN8, 0U) |          \
787                                      PIN_AFIO_AF(GPIOE_PIN9, 0U) |          \
788                                      PIN_AFIO_AF(GPIOE_PIN10, 0U) |         \
789                                      PIN_AFIO_AF(GPIOE_PIN11, 0U) |         \
790                                      PIN_AFIO_AF(GPIOE_PIN12, 0U) |         \
791                                      PIN_AFIO_AF(GPIOE_PIN13, 0U) |         \
792                                      PIN_AFIO_AF(GPIOE_PIN14, 0U) |         \
793                                      PIN_AFIO_AF(GPIOE_PIN15, 0U))
794
795 /*
796  * GPIOF setup:
797  *
798  * PF0  - OSC_IN                    (input floating).
799  * PF1  - OSC_OUT                   (input floating).
800  * PF2  - PIN2                      (input pullup).
801  * PF3  - PIN3                      (input pullup).
802  * PF4  - PIN4                      (input pullup).
803  * PF5  - PIN5                      (input pullup).
804  * PF6  - PIN6                      (input pullup).
805  * PF7  - PIN7                      (input pullup).
806  * PF8  - PIN8                      (input pullup).
807  * PF9  - PIN9                      (input pullup).
808  * PF10 - PIN10                     (input pullup).
809  * PF11 - PIN11                     (input pullup).
810  * PF12 - PIN12                     (input pullup).
811  * PF13 - PIN13                     (input pullup).
812  * PF14 - PIN14                     (input pullup).
813  * PF15 - PIN15                     (input pullup).
814  */
815 #define VAL_GPIOF_MODER             (PIN_MODE_INPUT(GPIOF_OSC_IN) |         \
816                                      PIN_MODE_INPUT(GPIOF_OSC_OUT) |        \
817                                      PIN_MODE_INPUT(GPIOF_PIN2) |           \
818                                      PIN_MODE_INPUT(GPIOF_PIN3) |           \
819                                      PIN_MODE_INPUT(GPIOF_PIN4) |           \
820                                      PIN_MODE_INPUT(GPIOF_PIN5) |           \
821                                      PIN_MODE_INPUT(GPIOF_PIN6) |           \
822                                      PIN_MODE_INPUT(GPIOF_PIN7) |           \
823                                      PIN_MODE_INPUT(GPIOF_PIN8) |           \
824                                      PIN_MODE_INPUT(GPIOF_PIN9) |           \
825                                      PIN_MODE_INPUT(GPIOF_PIN10) |          \
826                                      PIN_MODE_INPUT(GPIOF_PIN11) |          \
827                                      PIN_MODE_INPUT(GPIOF_PIN12) |          \
828                                      PIN_MODE_INPUT(GPIOF_PIN13) |          \
829                                      PIN_MODE_INPUT(GPIOF_PIN14) |          \
830                                      PIN_MODE_INPUT(GPIOF_PIN15))
831 #define VAL_GPIOF_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) |     \
832                                      PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) |    \
833                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN2) |       \
834                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN3) |       \
835                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN4) |       \
836                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN5) |       \
837                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN6) |       \
838                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN7) |       \
839                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN8) |       \
840                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN9) |       \
841                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN10) |      \
842                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN11) |      \
843                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN12) |      \
844                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN13) |      \
845                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN14) |      \
846                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
847 #define VAL_GPIOF_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) |     \
848                                      PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) |    \
849                                      PIN_OSPEED_VERYLOW(GPIOF_PIN2) |       \
850                                      PIN_OSPEED_VERYLOW(GPIOF_PIN3) |       \
851                                      PIN_OSPEED_VERYLOW(GPIOF_PIN4) |       \
852                                      PIN_OSPEED_VERYLOW(GPIOF_PIN5) |       \
853                                      PIN_OSPEED_VERYLOW(GPIOF_PIN6) |       \
854                                      PIN_OSPEED_VERYLOW(GPIOF_PIN7) |       \
855                                      PIN_OSPEED_VERYLOW(GPIOF_PIN8) |       \
856                                      PIN_OSPEED_VERYLOW(GPIOF_PIN9) |       \
857                                      PIN_OSPEED_VERYLOW(GPIOF_PIN10) |      \
858                                      PIN_OSPEED_VERYLOW(GPIOF_PIN11) |      \
859                                      PIN_OSPEED_VERYLOW(GPIOF_PIN12) |      \
860                                      PIN_OSPEED_VERYLOW(GPIOF_PIN13) |      \
861                                      PIN_OSPEED_VERYLOW(GPIOF_PIN14) |      \
862                                      PIN_OSPEED_VERYLOW(GPIOF_PIN15))
863 #define VAL_GPIOF_PUPDR             (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) |     \
864                                      PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) |    \
865                                      PIN_PUPDR_PULLUP(GPIOF_PIN2) |         \
866                                      PIN_PUPDR_PULLUP(GPIOF_PIN3) |         \
867                                      PIN_PUPDR_PULLUP(GPIOF_PIN4) |         \
868                                      PIN_PUPDR_PULLUP(GPIOF_PIN5) |         \
869                                      PIN_PUPDR_PULLUP(GPIOF_PIN6) |         \
870                                      PIN_PUPDR_PULLUP(GPIOF_PIN7) |         \
871                                      PIN_PUPDR_PULLUP(GPIOF_PIN8) |         \
872                                      PIN_PUPDR_PULLUP(GPIOF_PIN9) |         \
873                                      PIN_PUPDR_PULLUP(GPIOF_PIN10) |        \
874                                      PIN_PUPDR_PULLUP(GPIOF_PIN11) |        \
875                                      PIN_PUPDR_PULLUP(GPIOF_PIN12) |        \
876                                      PIN_PUPDR_PULLUP(GPIOF_PIN13) |        \
877                                      PIN_PUPDR_PULLUP(GPIOF_PIN14) |        \
878                                      PIN_PUPDR_PULLUP(GPIOF_PIN15))
879 #define VAL_GPIOF_ODR               (PIN_ODR_HIGH(GPIOF_OSC_IN) |           \
880                                      PIN_ODR_HIGH(GPIOF_OSC_OUT) |          \
881                                      PIN_ODR_HIGH(GPIOF_PIN2) |             \
882                                      PIN_ODR_HIGH(GPIOF_PIN3) |             \
883                                      PIN_ODR_HIGH(GPIOF_PIN4) |             \
884                                      PIN_ODR_HIGH(GPIOF_PIN5) |             \
885                                      PIN_ODR_HIGH(GPIOF_PIN6) |             \
886                                      PIN_ODR_HIGH(GPIOF_PIN7) |             \
887                                      PIN_ODR_HIGH(GPIOF_PIN8) |             \
888                                      PIN_ODR_HIGH(GPIOF_PIN9) |             \
889                                      PIN_ODR_HIGH(GPIOF_PIN10) |            \
890                                      PIN_ODR_HIGH(GPIOF_PIN11) |            \
891                                      PIN_ODR_HIGH(GPIOF_PIN12) |            \
892                                      PIN_ODR_HIGH(GPIOF_PIN13) |            \
893                                      PIN_ODR_HIGH(GPIOF_PIN14) |            \
894                                      PIN_ODR_HIGH(GPIOF_PIN15))
895 #define VAL_GPIOF_AFRL              (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) |        \
896                                      PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) |       \
897                                      PIN_AFIO_AF(GPIOF_PIN2, 0U) |          \
898                                      PIN_AFIO_AF(GPIOF_PIN3, 0U) |          \
899                                      PIN_AFIO_AF(GPIOF_PIN4, 0U) |          \
900                                      PIN_AFIO_AF(GPIOF_PIN5, 0U) |          \
901                                      PIN_AFIO_AF(GPIOF_PIN6, 0U) |          \
902                                      PIN_AFIO_AF(GPIOF_PIN7, 0U))
903 #define VAL_GPIOF_AFRH              (PIN_AFIO_AF(GPIOF_PIN8, 0U) |          \
904                                      PIN_AFIO_AF(GPIOF_PIN9, 0U) |          \
905                                      PIN_AFIO_AF(GPIOF_PIN10, 0U) |         \
906                                      PIN_AFIO_AF(GPIOF_PIN11, 0U) |         \
907                                      PIN_AFIO_AF(GPIOF_PIN12, 0U) |         \
908                                      PIN_AFIO_AF(GPIOF_PIN13, 0U) |         \
909                                      PIN_AFIO_AF(GPIOF_PIN14, 0U) |         \
910                                      PIN_AFIO_AF(GPIOF_PIN15, 0U))
911
912
913 #if !defined(_FROM_ASM_)
914 #ifdef __cplusplus
915 extern "C" {
916 #endif
917   void boardInit(void);
918 #ifdef __cplusplus
919 }
920 #endif
921 #endif /* _FROM_ASM_ */
922
923 #endif /* BOARD_H */