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