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