]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/matrix/noah/boards/noah_bd/board.h
adding noah keyboard (#7432)
[qmk_firmware.git] / keyboards / matrix / noah / boards / noah_bd / 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 Matrix M65 board.
27  */
28
29 /*
30  * Board identifier.
31  */
32 #define BOARD_MATRIX_NOAH
33 #define BOARD_NAME                  "Matrix noah65 keyboard"
34 #define BOARD_OTG_NOVBUSSENS
35
36 /*
37  * Board oscillators-related settings.
38  * NOTE: LSE not fitted.
39  */
40 #if !defined(STM32_LSECLK)
41 #define STM32_LSECLK                0U
42 #endif
43
44 #if !defined(STM32_HSECLK)
45 #define STM32_HSECLK                8000000U
46 #endif
47
48 //#define STM32_HSE_BYPASS
49
50 /*
51  * Board voltages.
52  * Required for performance limits calculation.
53  */
54 #define STM32_VDD                   300U
55
56 /*
57  * MCU type as defined in the ST header.
58  */
59 #define STM32F411xE
60
61 /*
62  * IO pins assignments.
63  */
64 #define GPIOA_PIN0                  0U
65 #define GPIOA_PIN1                  1U
66 #define GPIOA_PIN2                  2U
67 #define GPIOA_PIN3                  3U
68 #define GPIOA_PIN4                  4U
69 #define GPIOA_SCK                   5U
70 #define GPIOA_MISO                  6U
71 #define GPIOA_MOSI                  7U
72 #define GPIOA_PIN8                  8U
73 #define GPIOA_PIN9                  9U
74 #define GPIOA_PIN10                 10U
75 #define GPIOA_OTG_FS_DM             11U
76 #define GPIOA_OTG_FS_DP             12U
77 #define GPIOA_SWDIO                 13U
78 #define GPIOA_SWCLK                 14U
79 #define GPIOA_PIN15                 15U
80
81 #define GPIOB_PIN0                  0U
82 #define GPIOB_PIN1                  1U
83 #define GPIOB_PIN2                  2U
84 #define GPIOB_SWO                   3U
85 #define GPIOB_PIN4                  4U
86 #define GPIOB_PIN5                  5U
87 #define GPIOB_PIN6                  6U
88 #define GPIOB_PIN7                  7U
89 #define GPIOB_PIN8                  8U
90 #define GPIOB_PIN9                  9U
91 #define GPIOB_PIN10                 10U
92 #define GPIOB_PIN11                 11U
93 #define GPIOB_PIN12                 12U
94 #define GPIOB_PIN13                 13U
95 #define GPIOB_PIN14                 14U
96 #define GPIOB_PIN15                 15U
97
98 #define GPIOC_PIN0                  0U
99 #define GPIOC_PIN1                  1U
100 #define GPIOC_PIN2                  2U
101 #define GPIOC_PIN3                  3U
102 #define GPIOC_PIN4                  4U
103 #define GPIOC_PIN5                  5U
104 #define GPIOC_PIN6                  6U
105 #define GPIOC_PIN7                  7U
106 #define GPIOC_PIN8                  8U
107 #define GPIOC_PIN9                  9U
108 #define GPIOC_PIN10                 10U
109 #define GPIOC_PIN11                 11U
110 #define GPIOC_PIN12                 12U
111 #define GPIOC_PIN13                 13U
112 #define GPIOC_PIN14                 14U
113 #define GPIOC_PIN15                 15U
114
115 #define GPIOD_PIN0                  0U
116 #define GPIOD_PIN1                  1U
117 #define GPIOD_PIN2                  2U
118 #define GPIOD_PIN3                  3U
119 #define GPIOD_PIN4                  4U
120 #define GPIOD_PIN5                  5U
121 #define GPIOD_PIN6                  6U
122 #define GPIOD_PIN7                  7U
123 #define GPIOD_PIN8                  8U
124 #define GPIOD_PIN9                  9U
125 #define GPIOD_PIN10                 10U
126 #define GPIOD_PIN11                 11U
127 #define GPIOD_PIN12                 12U
128 #define GPIOD_PIN13                 13U
129 #define GPIOD_PIN14                 14U
130 #define GPIOD_PIN15                 15U
131
132 #define GPIOE_PIN0                  0U
133 #define GPIOE_PIN1                  1U
134 #define GPIOE_PIN2                  2U
135 #define GPIOE_PIN3                  3U
136 #define GPIOE_PIN4                  4U
137 #define GPIOE_PIN5                  5U
138 #define GPIOE_PIN6                  6U
139 #define GPIOE_PIN7                  7U
140 #define GPIOE_PIN8                  8U
141 #define GPIOE_PIN9                  9U
142 #define GPIOE_PIN10                 10U
143 #define GPIOE_PIN11                 11U
144 #define GPIOE_PIN12                 12U
145 #define GPIOE_PIN13                 13U
146 #define GPIOE_PIN14                 14U
147 #define GPIOE_PIN15                 15U
148
149 #define GPIOF_PIN0                  0U
150 #define GPIOF_PIN1                  1U
151 #define GPIOF_PIN2                  2U
152 #define GPIOF_PIN3                  3U
153 #define GPIOF_PIN4                  4U
154 #define GPIOF_PIN5                  5U
155 #define GPIOF_PIN6                  6U
156 #define GPIOF_PIN7                  7U
157 #define GPIOF_PIN8                  8U
158 #define GPIOF_PIN9                  9U
159 #define GPIOF_PIN10                 10U
160 #define GPIOF_PIN11                 11U
161 #define GPIOF_PIN12                 12U
162 #define GPIOF_PIN13                 13U
163 #define GPIOF_PIN14                 14U
164 #define GPIOF_PIN15                 15U
165
166 #define GPIOG_PIN0                  0U
167 #define GPIOG_PIN1                  1U
168 #define GPIOG_PIN2                  2U
169 #define GPIOG_PIN3                  3U
170 #define GPIOG_PIN4                  4U
171 #define GPIOG_PIN5                  5U
172 #define GPIOG_PIN6                  6U
173 #define GPIOG_PIN7                  7U
174 #define GPIOG_PIN8                  8U
175 #define GPIOG_PIN9                  9U
176 #define GPIOG_PIN10                 10U
177 #define GPIOG_PIN11                 11U
178 #define GPIOG_PIN12                 12U
179 #define GPIOG_PIN13                 13U
180 #define GPIOG_PIN14                 14U
181 #define GPIOG_PIN15                 15U
182
183 #define GPIOH_OSC_IN                0U
184 #define GPIOH_OSC_OUT               1U
185 #define GPIOH_PIN2                  2U
186 #define GPIOH_PIN3                  3U
187 #define GPIOH_PIN4                  4U
188 #define GPIOH_PIN5                  5U
189 #define GPIOH_PIN6                  6U
190 #define GPIOH_PIN7                  7U
191 #define GPIOH_PIN8                  8U
192 #define GPIOH_PIN9                  9U
193 #define GPIOH_PIN10                 10U
194 #define GPIOH_PIN11                 11U
195 #define GPIOH_PIN12                 12U
196 #define GPIOH_PIN13                 13U
197 #define GPIOH_PIN14                 14U
198 #define GPIOH_PIN15                 15U
199
200 #define GPIOI_PIN0                  0U
201 #define GPIOI_PIN1                  1U
202 #define GPIOI_PIN2                  2U
203 #define GPIOI_PIN3                  3U
204 #define GPIOI_PIN4                  4U
205 #define GPIOI_PIN5                  5U
206 #define GPIOI_PIN6                  6U
207 #define GPIOI_PIN7                  7U
208 #define GPIOI_PIN8                  8U
209 #define GPIOI_PIN9                  9U
210 #define GPIOI_PIN10                 10U
211 #define GPIOI_PIN11                 11U
212 #define GPIOI_PIN12                 12U
213 #define GPIOI_PIN13                 13U
214 #define GPIOI_PIN14                 14U
215 #define GPIOI_PIN15                 15U
216
217 /*
218  * IO lines assignments.
219  */
220 #define LINE_ROW_1                  PAL_LINE(GPIOB, 0U)
221 #define LINE_ROW_2                  PAL_LINE(GPIOA, 1U)
222 #define LINE_ROW_3                  PAL_LINE(GPIOC, 14U)
223 #define LINE_ROW_4                  PAL_LINE(GPIOC, 13U)
224 #define LINE_ROW_5                  PAL_LINE(GPIOA, 0U)
225
226 #define LINE_COL_1                  PAL_LINE(GPIOC, 15U)
227 #define LINE_COL_2                  PAL_LINE(GPIOB, 10U)
228 #define LINE_COL_3                  PAL_LINE(GPIOB, 7U)
229 #define LINE_COL_4                  PAL_LINE(GPIOB, 6U)
230 #define LINE_COL_5                  PAL_LINE(GPIOB, 5U)
231 #define LINE_COL_6                  PAL_LINE(GPIOB, 4U)
232 #define LINE_COL_7                  PAL_LINE(GPIOA, 15U)
233 #define LINE_COL_8                  PAL_LINE(GPIOA, 10U)
234 #define LINE_COL_9                  PAL_LINE(GPIOA, 9U)
235 #define LINE_COL_10                 PAL_LINE(GPIOA, 8U)
236 #define LINE_COL_11                 PAL_LINE(GPIOB, 15U)
237 #define LINE_COL_12                 PAL_LINE(GPIOB, 14U)
238 #define LINE_COL_13                 PAL_LINE(GPIOB, 13U)
239 #define LINE_COL_14                 PAL_LINE(GPIOB, 12U)
240 #define LINE_COL_15                 PAL_LINE(GPIOB, 2U)
241
242 // u2u lines
243 #define LINE_U2U_RST                PAL_LINE(GPIOA, 2U)
244 #define LINE_U2U_IRQ                PAL_LINE(GPIOA, 3U)
245 #define LINE_U2U_CS                 PAL_LINE(GPIOA, 4U)
246 #define LINE_U2U_SCK                PAL_LINE(GPIOA, 5U)
247 #define LINE_U2U_MISO               PAL_LINE(GPIOA, 6U)
248 #define LINE_U2U_MOSI               PAL_LINE(GPIOA, 7U)
249
250 /*
251  * I/O ports initial setup, this configuration is established soon after reset
252  * in the initialization code.
253  * Please refer to the STM32 Reference Manual for details.
254  */
255 #define PIN_MODE_INPUT(n)           (0U << ((n) * 2U))
256 #define PIN_MODE_OUTPUT(n)          (1U << ((n) * 2U))
257 #define PIN_MODE_ALTERNATE(n)       (2U << ((n) * 2U))
258 #define PIN_MODE_ANALOG(n)          (3U << ((n) * 2U))
259 #define PIN_ODR_LOW(n)              (0U << (n))
260 #define PIN_ODR_HIGH(n)             (1U << (n))
261 #define PIN_OTYPE_PUSHPULL(n)       (0U << (n))
262 #define PIN_OTYPE_OPENDRAIN(n)      (1U << (n))
263 #define PIN_OSPEED_VERYLOW(n)       (0U << ((n) * 2U))
264 #define PIN_OSPEED_LOW(n)           (1U << ((n) * 2U))
265 #define PIN_OSPEED_MEDIUM(n)        (2U << ((n) * 2U))
266 #define PIN_OSPEED_HIGH(n)          (3U << ((n) * 2U))
267 #define PIN_PUPDR_FLOATING(n)       (0U << ((n) * 2U))
268 #define PIN_PUPDR_PULLUP(n)         (1U << ((n) * 2U))
269 #define PIN_PUPDR_PULLDOWN(n)       (2U << ((n) * 2U))
270 #define PIN_AFIO_AF(n, v)           ((v) << (((n) % 8U) * 4U))
271
272 /*
273  * GPIOA setup:
274  *
275  * PA0  -                           (input pullup).
276  * PA1  -                           (input pullup).
277  * PA2  -                           (input pullup).
278  * PA3  -                           (input pullup).
279  * PA4  -                           (input pullup).
280  * PA5  - SPI SCK                   (alternate 5).
281  * PA6  - SPI MISO                  (alternate 5).
282  * PA7  - SPI MOSI                  (alternate 5).
283  * PA8  -                           (input pullup).
284  * PA9  -                           (input pullup).
285  * PA10 -                           (input pullup).
286  * PA11 - OTG_FS_DM                 (alternate 10).
287  * PA12 - OTG_FS_DP                 (alternate 10).
288  * PA13 - SWDIO                     (alternate 0).
289  * PA14 - SWCLK                     (alternate 0).
290  * PA15 -                           (input pullup).
291  */
292 #define VAL_GPIOA_MODER             (PIN_MODE_INPUT(GPIOA_PIN0) |         \
293                                      PIN_MODE_INPUT(GPIOA_PIN1) |         \
294                                      PIN_MODE_INPUT(GPIOA_PIN2) |     \
295                                      PIN_MODE_INPUT(GPIOA_PIN3) |     \
296                                      PIN_MODE_INPUT(GPIOA_PIN4) |         \
297                                      PIN_MODE_ALTERNATE(GPIOA_SCK) |     \
298                                      PIN_MODE_ALTERNATE(GPIOA_MISO) |        \
299                                      PIN_MODE_ALTERNATE(GPIOA_MOSI) |        \
300                                      PIN_MODE_INPUT(GPIOA_PIN8) |         \
301                                      PIN_MODE_INPUT(GPIOA_PIN9) |         \
302                                      PIN_MODE_INPUT(GPIOA_PIN10) |         \
303                                      PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DM) |  \
304                                      PIN_MODE_ALTERNATE(GPIOA_OTG_FS_DP) |  \
305                                      PIN_MODE_ALTERNATE(GPIOA_SWDIO) |      \
306                                      PIN_MODE_ALTERNATE(GPIOA_SWCLK) |      \
307                                      PIN_MODE_INPUT(GPIOA_PIN15))
308 #define VAL_GPIOA_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) |     \
309                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN1) |     \
310                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN2) |     \
311                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN3) |     \
312                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN4) |     \
313                                      PIN_OTYPE_PUSHPULL(GPIOA_SCK) |  \
314                                      PIN_OTYPE_PUSHPULL(GPIOA_MISO) |    \
315                                      PIN_OTYPE_PUSHPULL(GPIOA_MOSI) |    \
316                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN8) |     \
317                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN9) |     \
318                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN10) |     \
319                                      PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DM) |  \
320                                      PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DP) |  \
321                                      PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) |      \
322                                      PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) |      \
323                                      PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
324 #define VAL_GPIOA_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOA_PIN0) |        \
325                                      PIN_OSPEED_VERYLOW(GPIOA_PIN1) |        \
326                                      PIN_OSPEED_VERYLOW(GPIOA_PIN2) |      \
327                                      PIN_OSPEED_VERYLOW(GPIOA_PIN3) |      \
328                                      PIN_OSPEED_VERYLOW(GPIOA_PIN4) |        \
329                                      PIN_OSPEED_HIGH(GPIOA_SCK) |   \
330                                      PIN_OSPEED_HIGH(GPIOA_MISO) |       \
331                                      PIN_OSPEED_HIGH(GPIOA_MOSI) |       \
332                                      PIN_OSPEED_VERYLOW(GPIOA_PIN8) |        \
333                                      PIN_OSPEED_VERYLOW(GPIOA_PIN9) |        \
334                                      PIN_OSPEED_VERYLOW(GPIOA_PIN10) |        \
335                                      PIN_OSPEED_HIGH(GPIOA_OTG_FS_DM) |     \
336                                      PIN_OSPEED_HIGH(GPIOA_OTG_FS_DP) |     \
337                                      PIN_OSPEED_HIGH(GPIOA_SWDIO) |         \
338                                      PIN_OSPEED_HIGH(GPIOA_SWCLK) |         \
339                                      PIN_OSPEED_VERYLOW(GPIOA_PIN15))
340 #define VAL_GPIOA_PUPDR             (PIN_PUPDR_PULLUP(GPIOA_PIN0) |       \
341                                      PIN_PUPDR_PULLUP(GPIOA_PIN1) |       \
342                                      PIN_PUPDR_PULLUP(GPIOA_PIN2) |     \
343                                      PIN_PUPDR_PULLUP(GPIOA_PIN3) |     \
344                                      PIN_PUPDR_PULLUP(GPIOA_PIN4) |       \
345                                      PIN_PUPDR_PULLUP(GPIOA_SCK) |  \
346                                      PIN_PUPDR_PULLUP(GPIOA_MISO) |      \
347                                      PIN_PUPDR_PULLUP(GPIOA_MOSI) |      \
348                                      PIN_PUPDR_PULLUP(GPIOA_PIN8) |       \
349                                      PIN_PUPDR_PULLUP(GPIOA_PIN9) |       \
350                                      PIN_PUPDR_PULLUP(GPIOA_PIN10) |       \
351                                      PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DM) |  \
352                                      PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DP) |  \
353                                      PIN_PUPDR_PULLUP(GPIOA_SWDIO) |        \
354                                      PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) |      \
355                                      PIN_PUPDR_PULLUP(GPIOA_PIN15))
356 #define VAL_GPIOA_ODR               (PIN_ODR_HIGH(GPIOA_PIN0) |           \
357                                      PIN_ODR_HIGH(GPIOA_PIN1) |           \
358                                      PIN_ODR_HIGH(GPIOA_PIN2) |           \
359                                      PIN_ODR_HIGH(GPIOA_PIN3) |           \
360                                      PIN_ODR_HIGH(GPIOA_PIN4) |           \
361                                      PIN_ODR_HIGH(GPIOA_SCK) |         \
362                                      PIN_ODR_HIGH(GPIOA_MISO) |          \
363                                      PIN_ODR_HIGH(GPIOA_MOSI) |          \
364                                      PIN_ODR_HIGH(GPIOA_PIN8) |           \
365                                      PIN_ODR_HIGH(GPIOA_PIN9) |           \
366                                      PIN_ODR_HIGH(GPIOA_PIN10) |           \
367                                      PIN_ODR_HIGH(GPIOA_OTG_FS_DM) |        \
368                                      PIN_ODR_HIGH(GPIOA_OTG_FS_DP) |        \
369                                      PIN_ODR_HIGH(GPIOA_SWDIO) |            \
370                                      PIN_ODR_HIGH(GPIOA_SWCLK) |            \
371                                      PIN_ODR_HIGH(GPIOA_PIN15))
372 #define VAL_GPIOA_AFRL              (PIN_AFIO_AF(GPIOA_PIN0, 0U) |        \
373                                      PIN_AFIO_AF(GPIOA_PIN1, 0U) |        \
374                                      PIN_AFIO_AF(GPIOA_PIN2, 0U) |        \
375                                      PIN_AFIO_AF(GPIOA_PIN3, 0U) |        \
376                                      PIN_AFIO_AF(GPIOA_PIN4, 0U) |        \
377                                      PIN_AFIO_AF(GPIOA_SCK, 5U) |     \
378                                      PIN_AFIO_AF(GPIOA_MISO, 5U) |       \
379                                      PIN_AFIO_AF(GPIOA_MOSI, 5U))
380 #define VAL_GPIOA_AFRH              (PIN_AFIO_AF(GPIOA_PIN8, 0U) |        \
381                                      PIN_AFIO_AF(GPIOA_PIN9, 0U) |        \
382                                      PIN_AFIO_AF(GPIOA_PIN10, 0U) |        \
383                                      PIN_AFIO_AF(GPIOA_OTG_FS_DM, 10U) |    \
384                                      PIN_AFIO_AF(GPIOA_OTG_FS_DP, 10U) |    \
385                                      PIN_AFIO_AF(GPIOA_SWDIO, 0U) |         \
386                                      PIN_AFIO_AF(GPIOA_SWCLK, 0U) |         \
387                                      PIN_AFIO_AF(GPIOA_PIN15, 0U))
388
389 /*
390  * GPIOB setup:
391  *
392  * PB0  -                           (input pullup).
393  * PB1  -                           (input pullup).
394  * PB2  -                           (input pullup).
395  * PB3  - SWO                       (alternate 0).
396  * PB4  -                           (input pullup).
397  * PB5  -                           (input pullup).
398  * PB6  -                           (input pullup).
399  * PB7  -                           (input pullup).
400  * PB8  -                           (input pullup).
401  * PB9  -                           (input pullup).
402  * PB10 -                           (input pullup).
403  * PB11 -                           (input pullup).
404  * PB12 -                           (input pullup).
405  * PB13 -                           (input pullup).
406  * PB14 -                           (input pullup).
407  * PB15 -                           (input pullup).
408  */
409 #define VAL_GPIOB_MODER             (PIN_MODE_INPUT(GPIOB_PIN0) |         \
410                                      PIN_MODE_INPUT(GPIOB_PIN1) |           \
411                                      PIN_MODE_INPUT(GPIOB_PIN2) |           \
412                                      PIN_MODE_ALTERNATE(GPIOB_SWO) |        \
413                                      PIN_MODE_INPUT(GPIOB_PIN4) |         \
414                                      PIN_MODE_INPUT(GPIOB_PIN5) |         \
415                                      PIN_MODE_INPUT(GPIOB_PIN6) |        \
416                                      PIN_MODE_INPUT(GPIOB_PIN7) |           \
417                                      PIN_MODE_INPUT(GPIOB_PIN8) |        \
418                                      PIN_MODE_INPUT(GPIOB_PIN9) |        \
419                                      PIN_MODE_INPUT(GPIOB_PIN10) |         \
420                                      PIN_MODE_INPUT(GPIOB_PIN11) |          \
421                                      PIN_MODE_INPUT(GPIOB_PIN12) |          \
422                                      PIN_MODE_INPUT(GPIOB_PIN13) |          \
423                                      PIN_MODE_INPUT(GPIOB_PIN14) |          \
424                                      PIN_MODE_INPUT(GPIOB_PIN15))
425 #define VAL_GPIOB_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) |     \
426                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN1) |       \
427                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN2) |       \
428                                      PIN_OTYPE_PUSHPULL(GPIOB_SWO) |        \
429                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN4) |     \
430                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN5) |     \
431                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN6) |    \
432                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN7) |       \
433                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN8) |    \
434                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN9) |    \
435                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN10) |     \
436                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN11) |      \
437                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN12) |      \
438                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN13) |      \
439                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN14) |      \
440                                      PIN_OTYPE_PUSHPULL(GPIOB_PIN15))
441 #define VAL_GPIOB_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOB_PIN0) |        \
442                                      PIN_OSPEED_VERYLOW(GPIOB_PIN1) |          \
443                                      PIN_OSPEED_VERYLOW(GPIOB_PIN2) |          \
444                                      PIN_OSPEED_HIGH(GPIOB_SWO) |           \
445                                      PIN_OSPEED_VERYLOW(GPIOB_PIN4) |        \
446                                      PIN_OSPEED_VERYLOW(GPIOB_PIN5) |        \
447                                      PIN_OSPEED_VERYLOW(GPIOB_PIN6) |       \
448                                      PIN_OSPEED_VERYLOW(GPIOB_PIN7) |          \
449                                      PIN_OSPEED_VERYLOW(GPIOB_PIN8) |       \
450                                      PIN_OSPEED_VERYLOW(GPIOB_PIN9) |       \
451                                      PIN_OSPEED_VERYLOW(GPIOB_PIN10) |        \
452                                      PIN_OSPEED_VERYLOW(GPIOB_PIN11) |         \
453                                      PIN_OSPEED_VERYLOW(GPIOB_PIN12) |         \
454                                      PIN_OSPEED_VERYLOW(GPIOB_PIN13) |         \
455                                      PIN_OSPEED_VERYLOW(GPIOB_PIN14) |         \
456                                      PIN_OSPEED_VERYLOW(GPIOB_PIN15))
457 #define VAL_GPIOB_PUPDR             (PIN_PUPDR_PULLUP(GPIOB_PIN0) |       \
458                                      PIN_PUPDR_PULLUP(GPIOB_PIN1) |         \
459                                      PIN_PUPDR_PULLUP(GPIOB_PIN2) |         \
460                                      PIN_PUPDR_PULLUP(GPIOB_SWO) |          \
461                                      PIN_PUPDR_PULLUP(GPIOB_PIN4) |       \
462                                      PIN_PUPDR_PULLUP(GPIOB_PIN5) |       \
463                                      PIN_PUPDR_PULLUP(GPIOB_PIN6) |      \
464                                      PIN_PUPDR_PULLUP(GPIOB_PIN7) |         \
465                                      PIN_PUPDR_PULLUP(GPIOB_PIN8) |      \
466                                      PIN_PUPDR_PULLUP(GPIOB_PIN9) |      \
467                                      PIN_PUPDR_PULLUP(GPIOB_PIN10) |       \
468                                      PIN_PUPDR_PULLUP(GPIOB_PIN11) |        \
469                                      PIN_PUPDR_PULLUP(GPIOB_PIN12) |        \
470                                      PIN_PUPDR_PULLUP(GPIOB_PIN13) |        \
471                                      PIN_PUPDR_PULLUP(GPIOB_PIN14) |        \
472                                      PIN_PUPDR_PULLUP(GPIOB_PIN15))
473 #define VAL_GPIOB_ODR               (PIN_ODR_HIGH(GPIOB_PIN0) |           \
474                                      PIN_ODR_HIGH(GPIOB_PIN1) |             \
475                                      PIN_ODR_HIGH(GPIOB_PIN2) |             \
476                                      PIN_ODR_HIGH(GPIOB_SWO) |              \
477                                      PIN_ODR_HIGH(GPIOB_PIN4) |           \
478                                      PIN_ODR_HIGH(GPIOB_PIN5) |           \
479                                      PIN_ODR_HIGH(GPIOB_PIN6) |          \
480                                      PIN_ODR_HIGH(GPIOB_PIN7) |             \
481                                      PIN_ODR_HIGH(GPIOB_PIN8) |          \
482                                      PIN_ODR_HIGH(GPIOB_PIN9) |          \
483                                      PIN_ODR_HIGH(GPIOB_PIN10) |           \
484                                      PIN_ODR_HIGH(GPIOB_PIN11) |            \
485                                      PIN_ODR_HIGH(GPIOB_PIN12) |            \
486                                      PIN_ODR_HIGH(GPIOB_PIN13) |            \
487                                      PIN_ODR_HIGH(GPIOB_PIN14) |            \
488                                      PIN_ODR_HIGH(GPIOB_PIN15))
489 #define VAL_GPIOB_AFRL              (PIN_AFIO_AF(GPIOB_PIN0, 0U) |        \
490                                      PIN_AFIO_AF(GPIOB_PIN1, 0U) |          \
491                                      PIN_AFIO_AF(GPIOB_PIN2, 0U) |          \
492                                      PIN_AFIO_AF(GPIOB_SWO, 0U) |           \
493                                      PIN_AFIO_AF(GPIOB_PIN4, 0U) |        \
494                                      PIN_AFIO_AF(GPIOB_PIN5, 0U) |        \
495                                      PIN_AFIO_AF(GPIOB_PIN6, 0U) |       \
496                                      PIN_AFIO_AF(GPIOB_PIN7, 0U))
497 #define VAL_GPIOB_AFRH              (PIN_AFIO_AF(GPIOB_PIN8, 0U) |       \
498                                      PIN_AFIO_AF(GPIOB_PIN9, 0U) |       \
499                                      PIN_AFIO_AF(GPIOB_PIN10, 0U) |        \
500                                      PIN_AFIO_AF(GPIOB_PIN11, 0U) |         \
501                                      PIN_AFIO_AF(GPIOB_PIN12, 0U) |         \
502                                      PIN_AFIO_AF(GPIOB_PIN13, 0U) |         \
503                                      PIN_AFIO_AF(GPIOB_PIN14, 0U) |         \
504                                      PIN_AFIO_AF(GPIOB_PIN15, 0U))
505
506 /*
507  * GPIOC setup:
508  *
509  * PC0  -                           (input pullup).
510  * PC1  -                           (input pullup).
511  * PC2  -                           (input pullup).
512  * PC3  -                           (input pullup).
513  * PC4  -                           (input pullup).
514  * PC5  -                           (input pullup).
515  * PC6  -                           (input pullup).
516  * PC7  -                           (input pullup).
517  * PC8  -                           (input pullup).
518  * PC9  -                           (input pullup).
519  * PC10 -                           (input pullup).
520  * PC11 -                           (input pullup).
521  * PC12 -                           (input pullup).
522  * PC13 -                           (input floating).
523  * PC14 -                           (input floating).
524  * PC15 -                           (input floating).
525  */
526 #define VAL_GPIOC_MODER             (PIN_MODE_INPUT(GPIOC_PIN0) |         \
527                                      PIN_MODE_INPUT(GPIOC_PIN1) |         \
528                                      PIN_MODE_INPUT(GPIOC_PIN2) |           \
529                                      PIN_MODE_INPUT(GPIOC_PIN3) |           \
530                                      PIN_MODE_INPUT(GPIOC_PIN4) |           \
531                                      PIN_MODE_INPUT(GPIOC_PIN5) |           \
532                                      PIN_MODE_INPUT(GPIOC_PIN6) |           \
533                                      PIN_MODE_INPUT(GPIOC_PIN7) |         \
534                                      PIN_MODE_INPUT(GPIOC_PIN8) |           \
535                                      PIN_MODE_INPUT(GPIOC_PIN9) |           \
536                                      PIN_MODE_INPUT(GPIOC_PIN10) |          \
537                                      PIN_MODE_INPUT(GPIOC_PIN11) |          \
538                                      PIN_MODE_INPUT(GPIOC_PIN12) |          \
539                                      PIN_MODE_INPUT(GPIOC_PIN13) |         \
540                                      PIN_MODE_INPUT(GPIOC_PIN14) |       \
541                                      PIN_MODE_INPUT(GPIOC_PIN15))
542 #define VAL_GPIOC_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOC_PIN0) |     \
543                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN1) |     \
544                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN2) |       \
545                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN3) |       \
546                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN4) |       \
547                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN5) |       \
548                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN6) |       \
549                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN7) |     \
550                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN8) |       \
551                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN9) |       \
552                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN10) |      \
553                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN11) |      \
554                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN12) |      \
555                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN13) |     \
556                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN14) |   \
557                                      PIN_OTYPE_PUSHPULL(GPIOC_PIN15))
558 #define VAL_GPIOC_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOC_PIN0) |        \
559                                      PIN_OSPEED_VERYLOW(GPIOC_PIN1) |        \
560                                      PIN_OSPEED_VERYLOW(GPIOC_PIN2) |          \
561                                      PIN_OSPEED_VERYLOW(GPIOC_PIN3) |          \
562                                      PIN_OSPEED_VERYLOW(GPIOC_PIN4) |          \
563                                      PIN_OSPEED_VERYLOW(GPIOC_PIN5) |          \
564                                      PIN_OSPEED_VERYLOW(GPIOC_PIN6) |          \
565                                      PIN_OSPEED_VERYLOW(GPIOC_PIN7) |        \
566                                      PIN_OSPEED_VERYLOW(GPIOC_PIN8) |          \
567                                      PIN_OSPEED_VERYLOW(GPIOC_PIN9) |          \
568                                      PIN_OSPEED_VERYLOW(GPIOC_PIN10) |         \
569                                      PIN_OSPEED_VERYLOW(GPIOC_PIN11) |         \
570                                      PIN_OSPEED_VERYLOW(GPIOC_PIN12) |         \
571                                      PIN_OSPEED_VERYLOW(GPIOC_PIN13) |        \
572                                      PIN_OSPEED_VERYLOW(GPIOC_PIN14) |      \
573                                      PIN_OSPEED_VERYLOW(GPIOC_PIN15))
574 #define VAL_GPIOC_PUPDR             (PIN_PUPDR_PULLUP(GPIOC_PIN0) |       \
575                                      PIN_PUPDR_PULLUP(GPIOC_PIN1) |       \
576                                      PIN_PUPDR_PULLUP(GPIOC_PIN2) |         \
577                                      PIN_PUPDR_PULLUP(GPIOC_PIN3) |         \
578                                      PIN_PUPDR_PULLUP(GPIOC_PIN4) |         \
579                                      PIN_PUPDR_PULLUP(GPIOC_PIN5) |         \
580                                      PIN_PUPDR_PULLUP(GPIOC_PIN6) |         \
581                                      PIN_PUPDR_PULLUP(GPIOC_PIN7) |       \
582                                      PIN_PUPDR_PULLUP(GPIOC_PIN8) |         \
583                                      PIN_PUPDR_PULLUP(GPIOC_PIN9) |         \
584                                      PIN_PUPDR_PULLUP(GPIOC_PIN10) |        \
585                                      PIN_PUPDR_PULLUP(GPIOC_PIN11) |        \
586                                      PIN_PUPDR_PULLUP(GPIOC_PIN12) |        \
587                                      PIN_PUPDR_PULLUP(GPIOC_PIN13) |     \
588                                      PIN_PUPDR_PULLUP(GPIOC_PIN14) |   \
589                                      PIN_PUPDR_PULLUP(GPIOC_PIN15))
590 #define VAL_GPIOC_ODR               (PIN_ODR_HIGH(GPIOC_PIN0) |           \
591                                      PIN_ODR_HIGH(GPIOC_PIN1) |           \
592                                      PIN_ODR_HIGH(GPIOC_PIN2) |             \
593                                      PIN_ODR_HIGH(GPIOC_PIN3) |             \
594                                      PIN_ODR_HIGH(GPIOC_PIN4) |             \
595                                      PIN_ODR_HIGH(GPIOC_PIN5) |             \
596                                      PIN_ODR_HIGH(GPIOC_PIN6) |             \
597                                      PIN_ODR_HIGH(GPIOC_PIN7) |           \
598                                      PIN_ODR_HIGH(GPIOC_PIN8) |             \
599                                      PIN_ODR_HIGH(GPIOC_PIN9) |             \
600                                      PIN_ODR_HIGH(GPIOC_PIN10) |            \
601                                      PIN_ODR_HIGH(GPIOC_PIN11) |            \
602                                      PIN_ODR_HIGH(GPIOC_PIN12) |            \
603                                      PIN_ODR_HIGH(GPIOC_PIN13) |           \
604                                      PIN_ODR_HIGH(GPIOC_PIN14) |         \
605                                      PIN_ODR_HIGH(GPIOC_PIN15))
606 #define VAL_GPIOC_AFRL              (PIN_AFIO_AF(GPIOC_PIN0, 0U) |        \
607                                      PIN_AFIO_AF(GPIOC_PIN1, 0U) |        \
608                                      PIN_AFIO_AF(GPIOC_PIN2, 0U) |          \
609                                      PIN_AFIO_AF(GPIOC_PIN3, 0U) |          \
610                                      PIN_AFIO_AF(GPIOC_PIN4, 0U) |          \
611                                      PIN_AFIO_AF(GPIOC_PIN5, 0U) |          \
612                                      PIN_AFIO_AF(GPIOC_PIN6, 0U) |          \
613                                      PIN_AFIO_AF(GPIOC_PIN7, 0U))
614 #define VAL_GPIOC_AFRH              (PIN_AFIO_AF(GPIOC_PIN8, 0U) |          \
615                                      PIN_AFIO_AF(GPIOC_PIN9, 0U) |          \
616                                      PIN_AFIO_AF(GPIOC_PIN10, 0U) |         \
617                                      PIN_AFIO_AF(GPIOC_PIN11, 0U) |         \
618                                      PIN_AFIO_AF(GPIOC_PIN12, 0U) |         \
619                                      PIN_AFIO_AF(GPIOC_PIN13, 0U) |        \
620                                      PIN_AFIO_AF(GPIOC_PIN14, 0U) |      \
621                                      PIN_AFIO_AF(GPIOC_PIN15, 0U))
622
623 /*
624  * GPIOD setup:
625  *
626  * PD0  - PIN0                      (input pullup).
627  * PD1  - PIN1                      (input pullup).
628  * PD2  - PIN2                      (input pullup).
629  * PD3  - PIN3                      (input pullup).
630  * PD4  - PIN4                      (input pullup).
631  * PD5  - PIN5                      (input pullup).
632  * PD6  - PIN6                      (input pullup).
633  * PD7  - PIN7                      (input pullup).
634  * PD8  - PIN8                      (input pullup).
635  * PD9  - PIN9                      (input pullup).
636  * PD10 - PIN10                     (input pullup).
637  * PD11 - PIN11                     (input pullup).
638  * PD12 - PIN12                     (input pullup).
639  * PD13 - PIN13                     (input pullup).
640  * PD14 - PIN14                     (input pullup).
641  * PD15 - PIN15                     (input pullup).
642  */
643 #define VAL_GPIOD_MODER             (PIN_MODE_INPUT(GPIOD_PIN0) |           \
644                                      PIN_MODE_INPUT(GPIOD_PIN1) |           \
645                                      PIN_MODE_INPUT(GPIOD_PIN2) |           \
646                                      PIN_MODE_INPUT(GPIOD_PIN3) |           \
647                                      PIN_MODE_INPUT(GPIOD_PIN4) |           \
648                                      PIN_MODE_INPUT(GPIOD_PIN5) |           \
649                                      PIN_MODE_INPUT(GPIOD_PIN6) |           \
650                                      PIN_MODE_INPUT(GPIOD_PIN7) |           \
651                                      PIN_MODE_INPUT(GPIOD_PIN8) |           \
652                                      PIN_MODE_INPUT(GPIOD_PIN9) |           \
653                                      PIN_MODE_INPUT(GPIOD_PIN10) |          \
654                                      PIN_MODE_INPUT(GPIOD_PIN11) |          \
655                                      PIN_MODE_INPUT(GPIOD_PIN12) |          \
656                                      PIN_MODE_INPUT(GPIOD_PIN13) |          \
657                                      PIN_MODE_INPUT(GPIOD_PIN14) |          \
658                                      PIN_MODE_INPUT(GPIOD_PIN15))
659 #define VAL_GPIOD_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) |       \
660                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN1) |       \
661                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN2) |       \
662                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN3) |       \
663                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN4) |       \
664                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN5) |       \
665                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN6) |       \
666                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN7) |       \
667                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN8) |       \
668                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN9) |       \
669                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN10) |      \
670                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN11) |      \
671                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN12) |      \
672                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN13) |      \
673                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN14) |      \
674                                      PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
675 #define VAL_GPIOD_OSPEEDR           (PIN_OSPEED_HIGH(GPIOD_PIN0) |          \
676                                      PIN_OSPEED_HIGH(GPIOD_PIN1) |          \
677                                      PIN_OSPEED_HIGH(GPIOD_PIN2) |          \
678                                      PIN_OSPEED_HIGH(GPIOD_PIN3) |          \
679                                      PIN_OSPEED_HIGH(GPIOD_PIN4) |          \
680                                      PIN_OSPEED_HIGH(GPIOD_PIN5) |          \
681                                      PIN_OSPEED_HIGH(GPIOD_PIN6) |          \
682                                      PIN_OSPEED_HIGH(GPIOD_PIN7) |          \
683                                      PIN_OSPEED_HIGH(GPIOD_PIN8) |          \
684                                      PIN_OSPEED_HIGH(GPIOD_PIN9) |          \
685                                      PIN_OSPEED_HIGH(GPIOD_PIN10) |         \
686                                      PIN_OSPEED_HIGH(GPIOD_PIN11) |         \
687                                      PIN_OSPEED_HIGH(GPIOD_PIN12) |         \
688                                      PIN_OSPEED_HIGH(GPIOD_PIN13) |         \
689                                      PIN_OSPEED_HIGH(GPIOD_PIN14) |         \
690                                      PIN_OSPEED_HIGH(GPIOD_PIN15))
691 #define VAL_GPIOD_PUPDR             (PIN_PUPDR_PULLUP(GPIOD_PIN0) |         \
692                                      PIN_PUPDR_PULLUP(GPIOD_PIN1) |         \
693                                      PIN_PUPDR_PULLUP(GPIOD_PIN2) |         \
694                                      PIN_PUPDR_PULLUP(GPIOD_PIN3) |         \
695                                      PIN_PUPDR_PULLUP(GPIOD_PIN4) |         \
696                                      PIN_PUPDR_PULLUP(GPIOD_PIN5) |         \
697                                      PIN_PUPDR_PULLUP(GPIOD_PIN6) |         \
698                                      PIN_PUPDR_PULLUP(GPIOD_PIN7) |         \
699                                      PIN_PUPDR_PULLUP(GPIOD_PIN8) |         \
700                                      PIN_PUPDR_PULLUP(GPIOD_PIN9) |         \
701                                      PIN_PUPDR_PULLUP(GPIOD_PIN10) |        \
702                                      PIN_PUPDR_PULLUP(GPIOD_PIN11) |        \
703                                      PIN_PUPDR_PULLUP(GPIOD_PIN12) |        \
704                                      PIN_PUPDR_PULLUP(GPIOD_PIN13) |        \
705                                      PIN_PUPDR_PULLUP(GPIOD_PIN14) |        \
706                                      PIN_PUPDR_PULLUP(GPIOD_PIN15))
707 #define VAL_GPIOD_ODR               (PIN_ODR_HIGH(GPIOD_PIN0) |             \
708                                      PIN_ODR_HIGH(GPIOD_PIN1) |             \
709                                      PIN_ODR_HIGH(GPIOD_PIN2) |             \
710                                      PIN_ODR_HIGH(GPIOD_PIN3) |             \
711                                      PIN_ODR_HIGH(GPIOD_PIN4) |             \
712                                      PIN_ODR_HIGH(GPIOD_PIN5) |             \
713                                      PIN_ODR_HIGH(GPIOD_PIN6) |             \
714                                      PIN_ODR_HIGH(GPIOD_PIN7) |             \
715                                      PIN_ODR_HIGH(GPIOD_PIN8) |             \
716                                      PIN_ODR_HIGH(GPIOD_PIN9) |             \
717                                      PIN_ODR_HIGH(GPIOD_PIN10) |            \
718                                      PIN_ODR_HIGH(GPIOD_PIN11) |            \
719                                      PIN_ODR_HIGH(GPIOD_PIN12) |            \
720                                      PIN_ODR_HIGH(GPIOD_PIN13) |            \
721                                      PIN_ODR_HIGH(GPIOD_PIN14) |            \
722                                      PIN_ODR_HIGH(GPIOD_PIN15))
723 #define VAL_GPIOD_AFRL              (PIN_AFIO_AF(GPIOD_PIN0, 0U) |          \
724                                      PIN_AFIO_AF(GPIOD_PIN1, 0U) |          \
725                                      PIN_AFIO_AF(GPIOD_PIN2, 0U) |          \
726                                      PIN_AFIO_AF(GPIOD_PIN3, 0U) |          \
727                                      PIN_AFIO_AF(GPIOD_PIN4, 0U) |          \
728                                      PIN_AFIO_AF(GPIOD_PIN5, 0U) |          \
729                                      PIN_AFIO_AF(GPIOD_PIN6, 0U) |          \
730                                      PIN_AFIO_AF(GPIOD_PIN7, 0U))
731 #define VAL_GPIOD_AFRH              (PIN_AFIO_AF(GPIOD_PIN8, 0U) |          \
732                                      PIN_AFIO_AF(GPIOD_PIN9, 0U) |          \
733                                      PIN_AFIO_AF(GPIOD_PIN10, 0U) |         \
734                                      PIN_AFIO_AF(GPIOD_PIN11, 0U) |         \
735                                      PIN_AFIO_AF(GPIOD_PIN12, 0U) |         \
736                                      PIN_AFIO_AF(GPIOD_PIN13, 0U) |         \
737                                      PIN_AFIO_AF(GPIOD_PIN14, 0U) |         \
738                                      PIN_AFIO_AF(GPIOD_PIN15, 0U))
739
740 /*
741  * GPIOE setup:
742  *
743  * PE0  - PIN0                      (input pullup).
744  * PE1  - PIN1                      (input pullup).
745  * PE2  - PIN2                      (input pullup).
746  * PE3  - PIN3                      (input pullup).
747  * PE4  - PIN4                      (input pullup).
748  * PE5  - PIN5                      (input pullup).
749  * PE6  - PIN6                      (input pullup).
750  * PE7  - PIN7                      (input pullup).
751  * PE8  - PIN8                      (input pullup).
752  * PE9  - PIN9                      (input pullup).
753  * PE10 - PIN10                     (input pullup).
754  * PE11 - PIN11                     (input pullup).
755  * PE12 - PIN12                     (input pullup).
756  * PE13 - PIN13                     (input pullup).
757  * PE14 - PIN14                     (input pullup).
758  * PE15 - PIN15                     (input pullup).
759  */
760 #define VAL_GPIOE_MODER             (PIN_MODE_INPUT(GPIOE_PIN0) |           \
761                                      PIN_MODE_INPUT(GPIOE_PIN1) |           \
762                                      PIN_MODE_INPUT(GPIOE_PIN2) |           \
763                                      PIN_MODE_INPUT(GPIOE_PIN3) |           \
764                                      PIN_MODE_INPUT(GPIOE_PIN4) |           \
765                                      PIN_MODE_INPUT(GPIOE_PIN5) |           \
766                                      PIN_MODE_INPUT(GPIOE_PIN6) |           \
767                                      PIN_MODE_INPUT(GPIOE_PIN7) |           \
768                                      PIN_MODE_INPUT(GPIOE_PIN8) |           \
769                                      PIN_MODE_INPUT(GPIOE_PIN9) |           \
770                                      PIN_MODE_INPUT(GPIOE_PIN10) |          \
771                                      PIN_MODE_INPUT(GPIOE_PIN11) |          \
772                                      PIN_MODE_INPUT(GPIOE_PIN12) |          \
773                                      PIN_MODE_INPUT(GPIOE_PIN13) |          \
774                                      PIN_MODE_INPUT(GPIOE_PIN14) |          \
775                                      PIN_MODE_INPUT(GPIOE_PIN15))
776 #define VAL_GPIOE_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) |       \
777                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN1) |       \
778                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN2) |       \
779                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN3) |       \
780                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN4) |       \
781                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN5) |       \
782                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN6) |       \
783                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN7) |       \
784                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN8) |       \
785                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN9) |       \
786                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN10) |      \
787                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN11) |      \
788                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN12) |      \
789                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN13) |      \
790                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN14) |      \
791                                      PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
792 #define VAL_GPIOE_OSPEEDR           (PIN_OSPEED_HIGH(GPIOE_PIN0) |          \
793                                      PIN_OSPEED_HIGH(GPIOE_PIN1) |          \
794                                      PIN_OSPEED_HIGH(GPIOE_PIN2) |          \
795                                      PIN_OSPEED_HIGH(GPIOE_PIN3) |          \
796                                      PIN_OSPEED_HIGH(GPIOE_PIN4) |          \
797                                      PIN_OSPEED_HIGH(GPIOE_PIN5) |          \
798                                      PIN_OSPEED_HIGH(GPIOE_PIN6) |          \
799                                      PIN_OSPEED_HIGH(GPIOE_PIN7) |          \
800                                      PIN_OSPEED_HIGH(GPIOE_PIN8) |          \
801                                      PIN_OSPEED_HIGH(GPIOE_PIN9) |          \
802                                      PIN_OSPEED_HIGH(GPIOE_PIN10) |         \
803                                      PIN_OSPEED_HIGH(GPIOE_PIN11) |         \
804                                      PIN_OSPEED_HIGH(GPIOE_PIN12) |         \
805                                      PIN_OSPEED_HIGH(GPIOE_PIN13) |         \
806                                      PIN_OSPEED_HIGH(GPIOE_PIN14) |         \
807                                      PIN_OSPEED_HIGH(GPIOE_PIN15))
808 #define VAL_GPIOE_PUPDR             (PIN_PUPDR_PULLUP(GPIOE_PIN0) |         \
809                                      PIN_PUPDR_PULLUP(GPIOE_PIN1) |         \
810                                      PIN_PUPDR_PULLUP(GPIOE_PIN2) |         \
811                                      PIN_PUPDR_PULLUP(GPIOE_PIN3) |         \
812                                      PIN_PUPDR_PULLUP(GPIOE_PIN4) |         \
813                                      PIN_PUPDR_PULLUP(GPIOE_PIN5) |         \
814                                      PIN_PUPDR_PULLUP(GPIOE_PIN6) |         \
815                                      PIN_PUPDR_PULLUP(GPIOE_PIN7) |         \
816                                      PIN_PUPDR_PULLUP(GPIOE_PIN8) |         \
817                                      PIN_PUPDR_PULLUP(GPIOE_PIN9) |         \
818                                      PIN_PUPDR_PULLUP(GPIOE_PIN10) |        \
819                                      PIN_PUPDR_PULLUP(GPIOE_PIN11) |        \
820                                      PIN_PUPDR_PULLUP(GPIOE_PIN12) |        \
821                                      PIN_PUPDR_PULLUP(GPIOE_PIN13) |        \
822                                      PIN_PUPDR_PULLUP(GPIOE_PIN14) |        \
823                                      PIN_PUPDR_PULLUP(GPIOE_PIN15))
824 #define VAL_GPIOE_ODR               (PIN_ODR_HIGH(GPIOE_PIN0) |             \
825                                      PIN_ODR_HIGH(GPIOE_PIN1) |             \
826                                      PIN_ODR_HIGH(GPIOE_PIN2) |             \
827                                      PIN_ODR_HIGH(GPIOE_PIN3) |             \
828                                      PIN_ODR_HIGH(GPIOE_PIN4) |             \
829                                      PIN_ODR_HIGH(GPIOE_PIN5) |             \
830                                      PIN_ODR_HIGH(GPIOE_PIN6) |             \
831                                      PIN_ODR_HIGH(GPIOE_PIN7) |             \
832                                      PIN_ODR_HIGH(GPIOE_PIN8) |             \
833                                      PIN_ODR_HIGH(GPIOE_PIN9) |             \
834                                      PIN_ODR_HIGH(GPIOE_PIN10) |            \
835                                      PIN_ODR_HIGH(GPIOE_PIN11) |            \
836                                      PIN_ODR_HIGH(GPIOE_PIN12) |            \
837                                      PIN_ODR_HIGH(GPIOE_PIN13) |            \
838                                      PIN_ODR_HIGH(GPIOE_PIN14) |            \
839                                      PIN_ODR_HIGH(GPIOE_PIN15))
840 #define VAL_GPIOE_AFRL              (PIN_AFIO_AF(GPIOE_PIN0, 0U) |          \
841                                      PIN_AFIO_AF(GPIOE_PIN1, 0U) |          \
842                                      PIN_AFIO_AF(GPIOE_PIN2, 0U) |          \
843                                      PIN_AFIO_AF(GPIOE_PIN3, 0U) |          \
844                                      PIN_AFIO_AF(GPIOE_PIN4, 0U) |          \
845                                      PIN_AFIO_AF(GPIOE_PIN5, 0U) |          \
846                                      PIN_AFIO_AF(GPIOE_PIN6, 0U) |          \
847                                      PIN_AFIO_AF(GPIOE_PIN7, 0U))
848 #define VAL_GPIOE_AFRH              (PIN_AFIO_AF(GPIOE_PIN8, 0U) |          \
849                                      PIN_AFIO_AF(GPIOE_PIN9, 0U) |          \
850                                      PIN_AFIO_AF(GPIOE_PIN10, 0U) |         \
851                                      PIN_AFIO_AF(GPIOE_PIN11, 0U) |         \
852                                      PIN_AFIO_AF(GPIOE_PIN12, 0U) |         \
853                                      PIN_AFIO_AF(GPIOE_PIN13, 0U) |         \
854                                      PIN_AFIO_AF(GPIOE_PIN14, 0U) |         \
855                                      PIN_AFIO_AF(GPIOE_PIN15, 0U))
856
857 /*
858  * GPIOF setup:
859  *
860  * PF0  - PIN0                      (input pullup).
861  * PF1  - PIN1                      (input pullup).
862  * PF2  - PIN2                      (input pullup).
863  * PF3  - PIN3                      (input pullup).
864  * PF4  - PIN4                      (input pullup).
865  * PF5  - PIN5                      (input pullup).
866  * PF6  - PIN6                      (input pullup).
867  * PF7  - PIN7                      (input pullup).
868  * PF8  - PIN8                      (input pullup).
869  * PF9  - PIN9                      (input pullup).
870  * PF10 - PIN10                     (input pullup).
871  * PF11 - PIN11                     (input pullup).
872  * PF12 - PIN12                     (input pullup).
873  * PF13 - PIN13                     (input pullup).
874  * PF14 - PIN14                     (input pullup).
875  * PF15 - PIN15                     (input pullup).
876  */
877 #define VAL_GPIOF_MODER             (PIN_MODE_INPUT(GPIOF_PIN0) |           \
878                                      PIN_MODE_INPUT(GPIOF_PIN1) |           \
879                                      PIN_MODE_INPUT(GPIOF_PIN2) |           \
880                                      PIN_MODE_INPUT(GPIOF_PIN3) |           \
881                                      PIN_MODE_INPUT(GPIOF_PIN4) |           \
882                                      PIN_MODE_INPUT(GPIOF_PIN5) |           \
883                                      PIN_MODE_INPUT(GPIOF_PIN6) |           \
884                                      PIN_MODE_INPUT(GPIOF_PIN7) |           \
885                                      PIN_MODE_INPUT(GPIOF_PIN8) |           \
886                                      PIN_MODE_INPUT(GPIOF_PIN9) |           \
887                                      PIN_MODE_INPUT(GPIOF_PIN10) |          \
888                                      PIN_MODE_INPUT(GPIOF_PIN11) |          \
889                                      PIN_MODE_INPUT(GPIOF_PIN12) |          \
890                                      PIN_MODE_INPUT(GPIOF_PIN13) |          \
891                                      PIN_MODE_INPUT(GPIOF_PIN14) |          \
892                                      PIN_MODE_INPUT(GPIOF_PIN15))
893 #define VAL_GPIOF_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOF_PIN0) |       \
894                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN1) |       \
895                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN2) |       \
896                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN3) |       \
897                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN4) |       \
898                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN5) |       \
899                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN6) |       \
900                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN7) |       \
901                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN8) |       \
902                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN9) |       \
903                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN10) |      \
904                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN11) |      \
905                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN12) |      \
906                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN13) |      \
907                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN14) |      \
908                                      PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
909 #define VAL_GPIOF_OSPEEDR           (PIN_OSPEED_HIGH(GPIOF_PIN0) |          \
910                                      PIN_OSPEED_HIGH(GPIOF_PIN1) |          \
911                                      PIN_OSPEED_HIGH(GPIOF_PIN2) |          \
912                                      PIN_OSPEED_HIGH(GPIOF_PIN3) |          \
913                                      PIN_OSPEED_HIGH(GPIOF_PIN4) |          \
914                                      PIN_OSPEED_HIGH(GPIOF_PIN5) |          \
915                                      PIN_OSPEED_HIGH(GPIOF_PIN6) |          \
916                                      PIN_OSPEED_HIGH(GPIOF_PIN7) |          \
917                                      PIN_OSPEED_HIGH(GPIOF_PIN8) |          \
918                                      PIN_OSPEED_HIGH(GPIOF_PIN9) |          \
919                                      PIN_OSPEED_HIGH(GPIOF_PIN10) |         \
920                                      PIN_OSPEED_HIGH(GPIOF_PIN11) |         \
921                                      PIN_OSPEED_HIGH(GPIOF_PIN12) |         \
922                                      PIN_OSPEED_HIGH(GPIOF_PIN13) |         \
923                                      PIN_OSPEED_HIGH(GPIOF_PIN14) |         \
924                                      PIN_OSPEED_HIGH(GPIOF_PIN15))
925 #define VAL_GPIOF_PUPDR             (PIN_PUPDR_PULLUP(GPIOF_PIN0) |         \
926                                      PIN_PUPDR_PULLUP(GPIOF_PIN1) |         \
927                                      PIN_PUPDR_PULLUP(GPIOF_PIN2) |         \
928                                      PIN_PUPDR_PULLUP(GPIOF_PIN3) |         \
929                                      PIN_PUPDR_PULLUP(GPIOF_PIN4) |         \
930                                      PIN_PUPDR_PULLUP(GPIOF_PIN5) |         \
931                                      PIN_PUPDR_PULLUP(GPIOF_PIN6) |         \
932                                      PIN_PUPDR_PULLUP(GPIOF_PIN7) |         \
933                                      PIN_PUPDR_PULLUP(GPIOF_PIN8) |         \
934                                      PIN_PUPDR_PULLUP(GPIOF_PIN9) |         \
935                                      PIN_PUPDR_PULLUP(GPIOF_PIN10) |        \
936                                      PIN_PUPDR_PULLUP(GPIOF_PIN11) |        \
937                                      PIN_PUPDR_PULLUP(GPIOF_PIN12) |        \
938                                      PIN_PUPDR_PULLUP(GPIOF_PIN13) |        \
939                                      PIN_PUPDR_PULLUP(GPIOF_PIN14) |        \
940                                      PIN_PUPDR_PULLUP(GPIOF_PIN15))
941 #define VAL_GPIOF_ODR               (PIN_ODR_HIGH(GPIOF_PIN0) |             \
942                                      PIN_ODR_HIGH(GPIOF_PIN1) |             \
943                                      PIN_ODR_HIGH(GPIOF_PIN2) |             \
944                                      PIN_ODR_HIGH(GPIOF_PIN3) |             \
945                                      PIN_ODR_HIGH(GPIOF_PIN4) |             \
946                                      PIN_ODR_HIGH(GPIOF_PIN5) |             \
947                                      PIN_ODR_HIGH(GPIOF_PIN6) |             \
948                                      PIN_ODR_HIGH(GPIOF_PIN7) |             \
949                                      PIN_ODR_HIGH(GPIOF_PIN8) |             \
950                                      PIN_ODR_HIGH(GPIOF_PIN9) |             \
951                                      PIN_ODR_HIGH(GPIOF_PIN10) |            \
952                                      PIN_ODR_HIGH(GPIOF_PIN11) |            \
953                                      PIN_ODR_HIGH(GPIOF_PIN12) |            \
954                                      PIN_ODR_HIGH(GPIOF_PIN13) |            \
955                                      PIN_ODR_HIGH(GPIOF_PIN14) |            \
956                                      PIN_ODR_HIGH(GPIOF_PIN15))
957 #define VAL_GPIOF_AFRL              (PIN_AFIO_AF(GPIOF_PIN0, 0U) |          \
958                                      PIN_AFIO_AF(GPIOF_PIN1, 0U) |          \
959                                      PIN_AFIO_AF(GPIOF_PIN2, 0U) |          \
960                                      PIN_AFIO_AF(GPIOF_PIN3, 0U) |          \
961                                      PIN_AFIO_AF(GPIOF_PIN4, 0U) |          \
962                                      PIN_AFIO_AF(GPIOF_PIN5, 0U) |          \
963                                      PIN_AFIO_AF(GPIOF_PIN6, 0U) |          \
964                                      PIN_AFIO_AF(GPIOF_PIN7, 0U))
965 #define VAL_GPIOF_AFRH              (PIN_AFIO_AF(GPIOF_PIN8, 0U) |          \
966                                      PIN_AFIO_AF(GPIOF_PIN9, 0U) |          \
967                                      PIN_AFIO_AF(GPIOF_PIN10, 0U) |         \
968                                      PIN_AFIO_AF(GPIOF_PIN11, 0U) |         \
969                                      PIN_AFIO_AF(GPIOF_PIN12, 0U) |         \
970                                      PIN_AFIO_AF(GPIOF_PIN13, 0U) |         \
971                                      PIN_AFIO_AF(GPIOF_PIN14, 0U) |         \
972                                      PIN_AFIO_AF(GPIOF_PIN15, 0U))
973
974 /*
975  * GPIOG setup:
976  *
977  * PG0  - PIN0                      (input pullup).
978  * PG1  - PIN1                      (input pullup).
979  * PG2  - PIN2                      (input pullup).
980  * PG3  - PIN3                      (input pullup).
981  * PG4  - PIN4                      (input pullup).
982  * PG5  - PIN5                      (input pullup).
983  * PG6  - PIN6                      (input pullup).
984  * PG7  - PIN7                      (input pullup).
985  * PG8  - PIN8                      (input pullup).
986  * PG9  - PIN9                      (input pullup).
987  * PG10 - PIN10                     (input pullup).
988  * PG11 - PIN11                     (input pullup).
989  * PG12 - PIN12                     (input pullup).
990  * PG13 - PIN13                     (input pullup).
991  * PG14 - PIN14                     (input pullup).
992  * PG15 - PIN15                     (input pullup).
993  */
994 #define VAL_GPIOG_MODER             (PIN_MODE_INPUT(GPIOG_PIN0) |           \
995                                      PIN_MODE_INPUT(GPIOG_PIN1) |           \
996                                      PIN_MODE_INPUT(GPIOG_PIN2) |           \
997                                      PIN_MODE_INPUT(GPIOG_PIN3) |           \
998                                      PIN_MODE_INPUT(GPIOG_PIN4) |           \
999                                      PIN_MODE_INPUT(GPIOG_PIN5) |           \
1000                                      PIN_MODE_INPUT(GPIOG_PIN6) |           \
1001                                      PIN_MODE_INPUT(GPIOG_PIN7) |           \
1002                                      PIN_MODE_INPUT(GPIOG_PIN8) |           \
1003                                      PIN_MODE_INPUT(GPIOG_PIN9) |           \
1004                                      PIN_MODE_INPUT(GPIOG_PIN10) |          \
1005                                      PIN_MODE_INPUT(GPIOG_PIN11) |          \
1006                                      PIN_MODE_INPUT(GPIOG_PIN12) |          \
1007                                      PIN_MODE_INPUT(GPIOG_PIN13) |          \
1008                                      PIN_MODE_INPUT(GPIOG_PIN14) |          \
1009                                      PIN_MODE_INPUT(GPIOG_PIN15))
1010 #define VAL_GPIOG_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) |       \
1011                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN1) |       \
1012                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN2) |       \
1013                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN3) |       \
1014                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN4) |       \
1015                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN5) |       \
1016                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN6) |       \
1017                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN7) |       \
1018                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN8) |       \
1019                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN9) |       \
1020                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN10) |      \
1021                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN11) |      \
1022                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN12) |      \
1023                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN13) |      \
1024                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN14) |      \
1025                                      PIN_OTYPE_PUSHPULL(GPIOG_PIN15))
1026 #define VAL_GPIOG_OSPEEDR           (PIN_OSPEED_HIGH(GPIOG_PIN0) |          \
1027                                      PIN_OSPEED_HIGH(GPIOG_PIN1) |          \
1028                                      PIN_OSPEED_HIGH(GPIOG_PIN2) |          \
1029                                      PIN_OSPEED_HIGH(GPIOG_PIN3) |          \
1030                                      PIN_OSPEED_HIGH(GPIOG_PIN4) |          \
1031                                      PIN_OSPEED_HIGH(GPIOG_PIN5) |          \
1032                                      PIN_OSPEED_HIGH(GPIOG_PIN6) |          \
1033                                      PIN_OSPEED_HIGH(GPIOG_PIN7) |          \
1034                                      PIN_OSPEED_HIGH(GPIOG_PIN8) |          \
1035                                      PIN_OSPEED_HIGH(GPIOG_PIN9) |          \
1036                                      PIN_OSPEED_HIGH(GPIOG_PIN10) |         \
1037                                      PIN_OSPEED_HIGH(GPIOG_PIN11) |         \
1038                                      PIN_OSPEED_HIGH(GPIOG_PIN12) |         \
1039                                      PIN_OSPEED_HIGH(GPIOG_PIN13) |         \
1040                                      PIN_OSPEED_HIGH(GPIOG_PIN14) |         \
1041                                      PIN_OSPEED_HIGH(GPIOG_PIN15))
1042 #define VAL_GPIOG_PUPDR             (PIN_PUPDR_PULLUP(GPIOG_PIN0) |         \
1043                                      PIN_PUPDR_PULLUP(GPIOG_PIN1) |         \
1044                                      PIN_PUPDR_PULLUP(GPIOG_PIN2) |         \
1045                                      PIN_PUPDR_PULLUP(GPIOG_PIN3) |         \
1046                                      PIN_PUPDR_PULLUP(GPIOG_PIN4) |         \
1047                                      PIN_PUPDR_PULLUP(GPIOG_PIN5) |         \
1048                                      PIN_PUPDR_PULLUP(GPIOG_PIN6) |         \
1049                                      PIN_PUPDR_PULLUP(GPIOG_PIN7) |         \
1050                                      PIN_PUPDR_PULLUP(GPIOG_PIN8) |         \
1051                                      PIN_PUPDR_PULLUP(GPIOG_PIN9) |         \
1052                                      PIN_PUPDR_PULLUP(GPIOG_PIN10) |        \
1053                                      PIN_PUPDR_PULLUP(GPIOG_PIN11) |        \
1054                                      PIN_PUPDR_PULLUP(GPIOG_PIN12) |        \
1055                                      PIN_PUPDR_PULLUP(GPIOG_PIN13) |        \
1056                                      PIN_PUPDR_PULLUP(GPIOG_PIN14) |        \
1057                                      PIN_PUPDR_PULLUP(GPIOG_PIN15))
1058 #define VAL_GPIOG_ODR               (PIN_ODR_HIGH(GPIOG_PIN0) |             \
1059                                      PIN_ODR_HIGH(GPIOG_PIN1) |             \
1060                                      PIN_ODR_HIGH(GPIOG_PIN2) |             \
1061                                      PIN_ODR_HIGH(GPIOG_PIN3) |             \
1062                                      PIN_ODR_HIGH(GPIOG_PIN4) |             \
1063                                      PIN_ODR_HIGH(GPIOG_PIN5) |             \
1064                                      PIN_ODR_HIGH(GPIOG_PIN6) |             \
1065                                      PIN_ODR_HIGH(GPIOG_PIN7) |             \
1066                                      PIN_ODR_HIGH(GPIOG_PIN8) |             \
1067                                      PIN_ODR_HIGH(GPIOG_PIN9) |             \
1068                                      PIN_ODR_HIGH(GPIOG_PIN10) |            \
1069                                      PIN_ODR_HIGH(GPIOG_PIN11) |            \
1070                                      PIN_ODR_HIGH(GPIOG_PIN12) |            \
1071                                      PIN_ODR_HIGH(GPIOG_PIN13) |            \
1072                                      PIN_ODR_HIGH(GPIOG_PIN14) |            \
1073                                      PIN_ODR_HIGH(GPIOG_PIN15))
1074 #define VAL_GPIOG_AFRL              (PIN_AFIO_AF(GPIOG_PIN0, 0U) |          \
1075                                      PIN_AFIO_AF(GPIOG_PIN1, 0U) |          \
1076                                      PIN_AFIO_AF(GPIOG_PIN2, 0U) |          \
1077                                      PIN_AFIO_AF(GPIOG_PIN3, 0U) |          \
1078                                      PIN_AFIO_AF(GPIOG_PIN4, 0U) |          \
1079                                      PIN_AFIO_AF(GPIOG_PIN5, 0U) |          \
1080                                      PIN_AFIO_AF(GPIOG_PIN6, 0U) |          \
1081                                      PIN_AFIO_AF(GPIOG_PIN7, 0U))
1082 #define VAL_GPIOG_AFRH              (PIN_AFIO_AF(GPIOG_PIN8, 0U) |          \
1083                                      PIN_AFIO_AF(GPIOG_PIN9, 0U) |          \
1084                                      PIN_AFIO_AF(GPIOG_PIN10, 0U) |         \
1085                                      PIN_AFIO_AF(GPIOG_PIN11, 0U) |         \
1086                                      PIN_AFIO_AF(GPIOG_PIN12, 0U) |         \
1087                                      PIN_AFIO_AF(GPIOG_PIN13, 0U) |         \
1088                                      PIN_AFIO_AF(GPIOG_PIN14, 0U) |         \
1089                                      PIN_AFIO_AF(GPIOG_PIN15, 0U))
1090
1091 /*
1092  * GPIOH setup:
1093  *
1094  * PH0  - OSC_IN                    (input floating).
1095  * PH1  - OSC_OUT                   (input floating).
1096  * PH2  - PIN2                      (input pullup).
1097  * PH3  - PIN3                      (input pullup).
1098  * PH4  - PIN4                      (input pullup).
1099  * PH5  - PIN5                      (input pullup).
1100  * PH6  - PIN6                      (input pullup).
1101  * PH7  - PIN7                      (input pullup).
1102  * PH8  - PIN8                      (input pullup).
1103  * PH9  - PIN9                      (input pullup).
1104  * PH10 - PIN10                     (input pullup).
1105  * PH11 - PIN11                     (input pullup).
1106  * PH12 - PIN12                     (input pullup).
1107  * PH13 - PIN13                     (input pullup).
1108  * PH14 - PIN14                     (input pullup).
1109  * PH15 - PIN15                     (input pullup).
1110  */
1111 #define VAL_GPIOH_MODER             (PIN_MODE_INPUT(GPIOH_OSC_IN) |         \
1112                                      PIN_MODE_INPUT(GPIOH_OSC_OUT) |        \
1113                                      PIN_MODE_INPUT(GPIOH_PIN2) |           \
1114                                      PIN_MODE_INPUT(GPIOH_PIN3) |           \
1115                                      PIN_MODE_INPUT(GPIOH_PIN4) |           \
1116                                      PIN_MODE_INPUT(GPIOH_PIN5) |           \
1117                                      PIN_MODE_INPUT(GPIOH_PIN6) |           \
1118                                      PIN_MODE_INPUT(GPIOH_PIN7) |           \
1119                                      PIN_MODE_INPUT(GPIOH_PIN8) |           \
1120                                      PIN_MODE_INPUT(GPIOH_PIN9) |           \
1121                                      PIN_MODE_INPUT(GPIOH_PIN10) |          \
1122                                      PIN_MODE_INPUT(GPIOH_PIN11) |          \
1123                                      PIN_MODE_INPUT(GPIOH_PIN12) |          \
1124                                      PIN_MODE_INPUT(GPIOH_PIN13) |          \
1125                                      PIN_MODE_INPUT(GPIOH_PIN14) |          \
1126                                      PIN_MODE_INPUT(GPIOH_PIN15))
1127 #define VAL_GPIOH_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOH_OSC_IN) |     \
1128                                      PIN_OTYPE_PUSHPULL(GPIOH_OSC_OUT) |    \
1129                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN2) |       \
1130                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN3) |       \
1131                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN4) |       \
1132                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN5) |       \
1133                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN6) |       \
1134                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN7) |       \
1135                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN8) |       \
1136                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN9) |       \
1137                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN10) |      \
1138                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN11) |      \
1139                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN12) |      \
1140                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN13) |      \
1141                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN14) |      \
1142                                      PIN_OTYPE_PUSHPULL(GPIOH_PIN15))
1143 #define VAL_GPIOH_OSPEEDR           (PIN_OSPEED_HIGH(GPIOH_OSC_IN) |        \
1144                                      PIN_OSPEED_HIGH(GPIOH_OSC_OUT) |       \
1145                                      PIN_OSPEED_HIGH(GPIOH_PIN2) |          \
1146                                      PIN_OSPEED_HIGH(GPIOH_PIN3) |          \
1147                                      PIN_OSPEED_HIGH(GPIOH_PIN4) |          \
1148                                      PIN_OSPEED_HIGH(GPIOH_PIN5) |          \
1149                                      PIN_OSPEED_HIGH(GPIOH_PIN6) |          \
1150                                      PIN_OSPEED_HIGH(GPIOH_PIN7) |          \
1151                                      PIN_OSPEED_HIGH(GPIOH_PIN8) |          \
1152                                      PIN_OSPEED_HIGH(GPIOH_PIN9) |          \
1153                                      PIN_OSPEED_HIGH(GPIOH_PIN10) |         \
1154                                      PIN_OSPEED_HIGH(GPIOH_PIN11) |         \
1155                                      PIN_OSPEED_HIGH(GPIOH_PIN12) |         \
1156                                      PIN_OSPEED_HIGH(GPIOH_PIN13) |         \
1157                                      PIN_OSPEED_HIGH(GPIOH_PIN14) |         \
1158                                      PIN_OSPEED_HIGH(GPIOH_PIN15))
1159 #define VAL_GPIOH_PUPDR             (PIN_PUPDR_FLOATING(GPIOH_OSC_IN) |     \
1160                                      PIN_PUPDR_FLOATING(GPIOH_OSC_OUT) |    \
1161                                      PIN_PUPDR_PULLUP(GPIOH_PIN2) |         \
1162                                      PIN_PUPDR_PULLUP(GPIOH_PIN3) |         \
1163                                      PIN_PUPDR_PULLUP(GPIOH_PIN4) |         \
1164                                      PIN_PUPDR_PULLUP(GPIOH_PIN5) |         \
1165                                      PIN_PUPDR_PULLUP(GPIOH_PIN6) |         \
1166                                      PIN_PUPDR_PULLUP(GPIOH_PIN7) |         \
1167                                      PIN_PUPDR_PULLUP(GPIOH_PIN8) |         \
1168                                      PIN_PUPDR_PULLUP(GPIOH_PIN9) |         \
1169                                      PIN_PUPDR_PULLUP(GPIOH_PIN10) |        \
1170                                      PIN_PUPDR_PULLUP(GPIOH_PIN11) |        \
1171                                      PIN_PUPDR_PULLUP(GPIOH_PIN12) |        \
1172                                      PIN_PUPDR_PULLUP(GPIOH_PIN13) |        \
1173                                      PIN_PUPDR_PULLUP(GPIOH_PIN14) |        \
1174                                      PIN_PUPDR_PULLUP(GPIOH_PIN15))
1175 #define VAL_GPIOH_ODR               (PIN_ODR_HIGH(GPIOH_OSC_IN) |           \
1176                                      PIN_ODR_HIGH(GPIOH_OSC_OUT) |          \
1177                                      PIN_ODR_HIGH(GPIOH_PIN2) |             \
1178                                      PIN_ODR_HIGH(GPIOH_PIN3) |             \
1179                                      PIN_ODR_HIGH(GPIOH_PIN4) |             \
1180                                      PIN_ODR_HIGH(GPIOH_PIN5) |             \
1181                                      PIN_ODR_HIGH(GPIOH_PIN6) |             \
1182                                      PIN_ODR_HIGH(GPIOH_PIN7) |             \
1183                                      PIN_ODR_HIGH(GPIOH_PIN8) |             \
1184                                      PIN_ODR_HIGH(GPIOH_PIN9) |             \
1185                                      PIN_ODR_HIGH(GPIOH_PIN10) |            \
1186                                      PIN_ODR_HIGH(GPIOH_PIN11) |            \
1187                                      PIN_ODR_HIGH(GPIOH_PIN12) |            \
1188                                      PIN_ODR_HIGH(GPIOH_PIN13) |            \
1189                                      PIN_ODR_HIGH(GPIOH_PIN14) |            \
1190                                      PIN_ODR_HIGH(GPIOH_PIN15))
1191 #define VAL_GPIOH_AFRL              (PIN_AFIO_AF(GPIOH_OSC_IN, 0U) |        \
1192                                      PIN_AFIO_AF(GPIOH_OSC_OUT, 0U) |       \
1193                                      PIN_AFIO_AF(GPIOH_PIN2, 0U) |          \
1194                                      PIN_AFIO_AF(GPIOH_PIN3, 0U) |          \
1195                                      PIN_AFIO_AF(GPIOH_PIN4, 0U) |          \
1196                                      PIN_AFIO_AF(GPIOH_PIN5, 0U) |          \
1197                                      PIN_AFIO_AF(GPIOH_PIN6, 0U) |          \
1198                                      PIN_AFIO_AF(GPIOH_PIN7, 0U))
1199 #define VAL_GPIOH_AFRH              (PIN_AFIO_AF(GPIOH_PIN8, 0U) |          \
1200                                      PIN_AFIO_AF(GPIOH_PIN9, 0U) |          \
1201                                      PIN_AFIO_AF(GPIOH_PIN10, 0U) |         \
1202                                      PIN_AFIO_AF(GPIOH_PIN11, 0U) |         \
1203                                      PIN_AFIO_AF(GPIOH_PIN12, 0U) |         \
1204                                      PIN_AFIO_AF(GPIOH_PIN13, 0U) |         \
1205                                      PIN_AFIO_AF(GPIOH_PIN14, 0U) |         \
1206                                      PIN_AFIO_AF(GPIOH_PIN15, 0U))
1207
1208 /*
1209  * GPIOI setup:
1210  *
1211  * PI0  - PIN0                      (input pullup).
1212  * PI1  - PIN1                      (input pullup).
1213  * PI2  - PIN2                      (input pullup).
1214  * PI3  - PIN3                      (input pullup).
1215  * PI4  - PIN4                      (input pullup).
1216  * PI5  - PIN5                      (input pullup).
1217  * PI6  - PIN6                      (input pullup).
1218  * PI7  - PIN7                      (input pullup).
1219  * PI8  - PIN8                      (input pullup).
1220  * PI9  - PIN9                      (input pullup).
1221  * PI10 - PIN10                     (input pullup).
1222  * PI11 - PIN11                     (input pullup).
1223  * PI12 - PIN12                     (input pullup).
1224  * PI13 - PIN13                     (input pullup).
1225  * PI14 - PIN14                     (input pullup).
1226  * PI15 - PIN15                     (input pullup).
1227  */
1228 #define VAL_GPIOI_MODER             (PIN_MODE_INPUT(GPIOI_PIN0) |           \
1229                                      PIN_MODE_INPUT(GPIOI_PIN1) |           \
1230                                      PIN_MODE_INPUT(GPIOI_PIN2) |           \
1231                                      PIN_MODE_INPUT(GPIOI_PIN3) |           \
1232                                      PIN_MODE_INPUT(GPIOI_PIN4) |           \
1233                                      PIN_MODE_INPUT(GPIOI_PIN5) |           \
1234                                      PIN_MODE_INPUT(GPIOI_PIN6) |           \
1235                                      PIN_MODE_INPUT(GPIOI_PIN7) |           \
1236                                      PIN_MODE_INPUT(GPIOI_PIN8) |           \
1237                                      PIN_MODE_INPUT(GPIOI_PIN9) |           \
1238                                      PIN_MODE_INPUT(GPIOI_PIN10) |          \
1239                                      PIN_MODE_INPUT(GPIOI_PIN11) |          \
1240                                      PIN_MODE_INPUT(GPIOI_PIN12) |          \
1241                                      PIN_MODE_INPUT(GPIOI_PIN13) |          \
1242                                      PIN_MODE_INPUT(GPIOI_PIN14) |          \
1243                                      PIN_MODE_INPUT(GPIOI_PIN15))
1244 #define VAL_GPIOI_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOI_PIN0) |       \
1245                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN1) |       \
1246                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN2) |       \
1247                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN3) |       \
1248                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN4) |       \
1249                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN5) |       \
1250                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN6) |       \
1251                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN7) |       \
1252                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN8) |       \
1253                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN9) |       \
1254                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN10) |      \
1255                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN11) |      \
1256                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN12) |      \
1257                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN13) |      \
1258                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN14) |      \
1259                                      PIN_OTYPE_PUSHPULL(GPIOI_PIN15))
1260 #define VAL_GPIOI_OSPEEDR           (PIN_OSPEED_HIGH(GPIOI_PIN0) |          \
1261                                      PIN_OSPEED_HIGH(GPIOI_PIN1) |          \
1262                                      PIN_OSPEED_HIGH(GPIOI_PIN2) |          \
1263                                      PIN_OSPEED_HIGH(GPIOI_PIN3) |          \
1264                                      PIN_OSPEED_HIGH(GPIOI_PIN4) |          \
1265                                      PIN_OSPEED_HIGH(GPIOI_PIN5) |          \
1266                                      PIN_OSPEED_HIGH(GPIOI_PIN6) |          \
1267                                      PIN_OSPEED_HIGH(GPIOI_PIN7) |          \
1268                                      PIN_OSPEED_HIGH(GPIOI_PIN8) |          \
1269                                      PIN_OSPEED_HIGH(GPIOI_PIN9) |          \
1270                                      PIN_OSPEED_HIGH(GPIOI_PIN10) |         \
1271                                      PIN_OSPEED_HIGH(GPIOI_PIN11) |         \
1272                                      PIN_OSPEED_HIGH(GPIOI_PIN12) |         \
1273                                      PIN_OSPEED_HIGH(GPIOI_PIN13) |         \
1274                                      PIN_OSPEED_HIGH(GPIOI_PIN14) |         \
1275                                      PIN_OSPEED_HIGH(GPIOI_PIN15))
1276 #define VAL_GPIOI_PUPDR             (PIN_PUPDR_PULLUP(GPIOI_PIN0) |         \
1277                                      PIN_PUPDR_PULLUP(GPIOI_PIN1) |         \
1278                                      PIN_PUPDR_PULLUP(GPIOI_PIN2) |         \
1279                                      PIN_PUPDR_PULLUP(GPIOI_PIN3) |         \
1280                                      PIN_PUPDR_PULLUP(GPIOI_PIN4) |         \
1281                                      PIN_PUPDR_PULLUP(GPIOI_PIN5) |         \
1282                                      PIN_PUPDR_PULLUP(GPIOI_PIN6) |         \
1283                                      PIN_PUPDR_PULLUP(GPIOI_PIN7) |         \
1284                                      PIN_PUPDR_PULLUP(GPIOI_PIN8) |         \
1285                                      PIN_PUPDR_PULLUP(GPIOI_PIN9) |         \
1286                                      PIN_PUPDR_PULLUP(GPIOI_PIN10) |        \
1287                                      PIN_PUPDR_PULLUP(GPIOI_PIN11) |        \
1288                                      PIN_PUPDR_PULLUP(GPIOI_PIN12) |        \
1289                                      PIN_PUPDR_PULLUP(GPIOI_PIN13) |        \
1290                                      PIN_PUPDR_PULLUP(GPIOI_PIN14) |        \
1291                                      PIN_PUPDR_PULLUP(GPIOI_PIN15))
1292 #define VAL_GPIOI_ODR               (PIN_ODR_HIGH(GPIOI_PIN0) |             \
1293                                      PIN_ODR_HIGH(GPIOI_PIN1) |             \
1294                                      PIN_ODR_HIGH(GPIOI_PIN2) |             \
1295                                      PIN_ODR_HIGH(GPIOI_PIN3) |             \
1296                                      PIN_ODR_HIGH(GPIOI_PIN4) |             \
1297                                      PIN_ODR_HIGH(GPIOI_PIN5) |             \
1298                                      PIN_ODR_HIGH(GPIOI_PIN6) |             \
1299                                      PIN_ODR_HIGH(GPIOI_PIN7) |             \
1300                                      PIN_ODR_HIGH(GPIOI_PIN8) |             \
1301                                      PIN_ODR_HIGH(GPIOI_PIN9) |             \
1302                                      PIN_ODR_HIGH(GPIOI_PIN10) |            \
1303                                      PIN_ODR_HIGH(GPIOI_PIN11) |            \
1304                                      PIN_ODR_HIGH(GPIOI_PIN12) |            \
1305                                      PIN_ODR_HIGH(GPIOI_PIN13) |            \
1306                                      PIN_ODR_HIGH(GPIOI_PIN14) |            \
1307                                      PIN_ODR_HIGH(GPIOI_PIN15))
1308 #define VAL_GPIOI_AFRL              (PIN_AFIO_AF(GPIOI_PIN0, 0U) |          \
1309                                      PIN_AFIO_AF(GPIOI_PIN1, 0U) |          \
1310                                      PIN_AFIO_AF(GPIOI_PIN2, 0U) |          \
1311                                      PIN_AFIO_AF(GPIOI_PIN3, 0U) |          \
1312                                      PIN_AFIO_AF(GPIOI_PIN4, 0U) |          \
1313                                      PIN_AFIO_AF(GPIOI_PIN5, 0U) |          \
1314                                      PIN_AFIO_AF(GPIOI_PIN6, 0U) |          \
1315                                      PIN_AFIO_AF(GPIOI_PIN7, 0U))
1316 #define VAL_GPIOI_AFRH              (PIN_AFIO_AF(GPIOI_PIN8, 0U) |          \
1317                                      PIN_AFIO_AF(GPIOI_PIN9, 0U) |          \
1318                                      PIN_AFIO_AF(GPIOI_PIN10, 0U) |         \
1319                                      PIN_AFIO_AF(GPIOI_PIN11, 0U) |         \
1320                                      PIN_AFIO_AF(GPIOI_PIN12, 0U) |         \
1321                                      PIN_AFIO_AF(GPIOI_PIN13, 0U) |         \
1322                                      PIN_AFIO_AF(GPIOI_PIN14, 0U) |         \
1323                                      PIN_AFIO_AF(GPIOI_PIN15, 0U))
1324
1325
1326 #if !defined(_FROM_ASM_)
1327 #ifdef __cplusplus
1328 extern "C" {
1329 #endif
1330   void boardInit(void);
1331 #ifdef __cplusplus
1332 }
1333 #endif
1334 #endif /* _FROM_ASM_ */
1335
1336 #endif /* BOARD_H */