rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
board_io.h
Go to the documentation of this file.
1/**
2 * @file boards/subaru_eg33/board_io.c
3 *
4 * @date Feb 06, 2021
5 * @author Andrey Gusakov, 2021
6 */
7
8#ifndef BOARD_IO_H
9#define BOARD_IO_H
10
11/*
12 * I/O ports initial setup, this configuration is established soon after reset
13 * in the initialization code.
14 * Please refer to the STM32 Reference Manual for details.
15 */
16#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
17#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
18#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
19#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
20
21#define PIN_ODR_LOW(n) (0U << (n))
22#define PIN_ODR_HIGH(n) (1U << (n))
23
24#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
25#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
26
27#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
28#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
29#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
30#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
31
32#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
33#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
34#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
35
36#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
37
38// See https://github.com/rusefi/rusefi/issues/397
39#define DEFAULT_GPIO_SPEED PIN_OSPEED_HIGH
40
41/*
42 * GPIOA setup:
43 *
44 * PA0 - n.u.
45 * PA1 - ignition current sensor for cyl 1, 3, 5, 7
46 * PA2 - ignition current sensor for cyl 2, 4, 6, 8
47 * PA3 - MAF sensor input
48 * PA4 - n.u.
49 * PA5 - n.u.
50 * PA6 - battery voltage input
51 * PA7 - knock sensor input
52 * PA8 - knock IC clock out
53 * PA9 - USART1_TX - boot/console - TTL level on XP4.2
54 * PA10 - USART1_RX - boot/console - TTL level on XP4.3
55 * PA11 - USB_FS_D- - boot/console/TS - XS3
56 * PA12 - USB_FS_D+ - boot/console/TS - XS3
57 * PA13 - SWDIO
58 * PA14 - SWCLK
59 * PA15 - bluetooth/wifi module reset gpio
60 */
61#define VAL_GPIOA_MODER (PIN_OTYPE_PUSHPULL(1) | \
62 PIN_MODE_ANALOG(2) | \
63 PIN_MODE_ANALOG(2) | \
64 PIN_MODE_ANALOG(3) | \
65 PIN_OTYPE_PUSHPULL(4) | \
66 PIN_OTYPE_PUSHPULL(5) | \
67 PIN_MODE_ANALOG(6) | \
68 PIN_MODE_ANALOG(7) | \
69 PIN_MODE_ALTERNATE(8) | \
70 PIN_MODE_ALTERNATE(9) | \
71 PIN_MODE_ALTERNATE(10) | \
72 PIN_MODE_ALTERNATE(11) | \
73 PIN_MODE_ALTERNATE(12) | \
74 PIN_MODE_ALTERNATE(13) | \
75 PIN_MODE_ALTERNATE(14) | \
76 PIN_MODE_OUTPUT(15))
77#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
78 PIN_OTYPE_PUSHPULL( 1) | \
79 PIN_OTYPE_PUSHPULL( 2) | \
80 PIN_OTYPE_PUSHPULL( 3) | \
81 PIN_OTYPE_PUSHPULL( 4) | \
82 PIN_OTYPE_PUSHPULL( 5) | \
83 PIN_OTYPE_PUSHPULL( 6) | \
84 PIN_OTYPE_PUSHPULL( 7) | \
85 PIN_OTYPE_PUSHPULL( 8) | \
86 PIN_OTYPE_PUSHPULL( 9) | \
87 PIN_OTYPE_PUSHPULL(10) | \
88 PIN_OTYPE_PUSHPULL(11) | \
89 PIN_OTYPE_PUSHPULL(12) | \
90 PIN_OTYPE_PUSHPULL(13) | \
91 PIN_OTYPE_PUSHPULL(14) | \
92 PIN_OTYPE_PUSHPULL(15))
93#define VAL_GPIOA_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
94 DEFAULT_GPIO_SPEED( 1) | \
95 DEFAULT_GPIO_SPEED( 2) | \
96 DEFAULT_GPIO_SPEED( 3) | \
97 DEFAULT_GPIO_SPEED( 4) | \
98 DEFAULT_GPIO_SPEED( 5) | \
99 DEFAULT_GPIO_SPEED( 6) | \
100 DEFAULT_GPIO_SPEED( 7) | \
101 DEFAULT_GPIO_SPEED( 8) | \
102 DEFAULT_GPIO_SPEED( 9) | \
103 DEFAULT_GPIO_SPEED(10) | \
104 DEFAULT_GPIO_SPEED(11) | \
105 DEFAULT_GPIO_SPEED(12) | \
106 DEFAULT_GPIO_SPEED(13) | \
107 DEFAULT_GPIO_SPEED(14) | \
108 DEFAULT_GPIO_SPEED(15))
109#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING( 0) | \
110 PIN_PUPDR_FLOATING( 1) | \
111 PIN_PUPDR_FLOATING( 2) | \
112 PIN_PUPDR_FLOATING( 3) | \
113 PIN_PUPDR_FLOATING( 4) | \
114 PIN_PUPDR_FLOATING( 5) | \
115 PIN_PUPDR_FLOATING( 6) | \
116 PIN_PUPDR_FLOATING( 7) | \
117 PIN_PUPDR_FLOATING( 8) | \
118 PIN_PUPDR_PULLUP( 9) | \
119 PIN_PUPDR_PULLUP(10) | \
120 PIN_PUPDR_FLOATING(11) | \
121 PIN_PUPDR_FLOATING(12) | \
122 PIN_PUPDR_PULLUP(13) | \
123 PIN_PUPDR_PULLDOWN(14) | \
124 PIN_PUPDR_PULLUP(15))
125#define VAL_GPIOA_ODR (PIN_ODR_LOW(0) | \
126 PIN_ODR_LOW(4) | \
127 PIN_ODR_LOW(5) | \
128 PIN_ODR_LOW(15))
129#define VAL_GPIOA_AFRL (PIN_AFIO_AF( 0, 1U) | \
130 PIN_AFIO_AF( 1, 1U) | \
131 PIN_AFIO_AF( 2, 0U) | \
132 PIN_AFIO_AF( 3, 0U) | \
133 PIN_AFIO_AF( 4, 0U) | \
134 PIN_AFIO_AF( 5, 0U) | \
135 PIN_AFIO_AF( 6, 0U) | \
136 PIN_AFIO_AF( 7, 0U))
137#define VAL_GPIOA_AFRH (PIN_AFIO_AF( 8, 0U) | \
138 PIN_AFIO_AF( 9, 7U) | \
139 PIN_AFIO_AF(10, 7U) | \
140 PIN_AFIO_AF(11, 10U) | \
141 PIN_AFIO_AF(12, 10U) | \
142 PIN_AFIO_AF(13, 0U) | \
143 PIN_AFIO_AF(14, 0U) | \
144 PIN_AFIO_AF(15, 0U))
145
146/*
147 * GPIOB setup:
148 *
149 * PB0 - oxygen sensor #2
150 * PB1 - EGR t sensor
151 * PB2 - boot mode - pulled low
152 * PB3 - ignition #4
153 * PB4 - ignition #3
154 * PB5 - ignition #7
155 * PB6 - QSPI CS
156 * PB7 - ignition (1, 3, 5, 7) spark duration input
157 * PB8 - ignition #5
158 * PB9 - injector #7
159 * PB10 - VR diagnostic (crank #2 and cam)
160 * PB11 - n.u.
161 * PB12 - USB HS ID
162 * PB13 - USB HS VBus
163 * PB14 - USB HS DM
164 * PB15 - USB HS DP
165 */
166#define VAL_GPIOB_MODER (PIN_MODE_ANALOG(0) | \
167 PIN_MODE_ANALOG(1) | \
168 PIN_MODE_INPUT(2) | \
169 PIN_MODE_OUTPUT(3) | \
170 PIN_MODE_OUTPUT(4) | \
171 PIN_MODE_OUTPUT(5) | \
172 PIN_MODE_ALTERNATE(6) | \
173 PIN_MODE_INPUT(7) | \
174 PIN_MODE_OUTPUT(8) | \
175 PIN_MODE_OUTPUT(9) | \
176 PIN_MODE_OUTPUT(10) | \
177 PIN_MODE_OUTPUT(11) | \
178 PIN_MODE_ALTERNATE(12) | \
179 PIN_MODE_INPUT(13) | \
180 PIN_MODE_ALTERNATE(14) | \
181 PIN_MODE_ALTERNATE(15))
182#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
183 PIN_OTYPE_PUSHPULL( 1) | \
184 PIN_OTYPE_PUSHPULL( 2) | \
185 PIN_OTYPE_PUSHPULL( 3) | \
186 PIN_OTYPE_PUSHPULL( 4) | \
187 PIN_OTYPE_PUSHPULL( 5) | \
188 PIN_OTYPE_PUSHPULL( 6) | \
189 PIN_OTYPE_PUSHPULL( 7) | \
190 PIN_OTYPE_PUSHPULL( 8) | \
191 PIN_OTYPE_PUSHPULL( 9) | \
192 PIN_OTYPE_PUSHPULL(10) | \
193 PIN_OTYPE_PUSHPULL(11) | \
194 PIN_OTYPE_PUSHPULL(12) | \
195 PIN_OTYPE_PUSHPULL(13) | \
196 PIN_OTYPE_PUSHPULL(14) | \
197 PIN_OTYPE_PUSHPULL(15))
198#define VAL_GPIOB_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
199 DEFAULT_GPIO_SPEED( 1) | \
200 DEFAULT_GPIO_SPEED( 2) | \
201 DEFAULT_GPIO_SPEED( 3) | \
202 DEFAULT_GPIO_SPEED( 4) | \
203 DEFAULT_GPIO_SPEED( 5) | \
204 PIN_OSPEED_HIGH( 6) | \
205 DEFAULT_GPIO_SPEED( 7) | \
206 DEFAULT_GPIO_SPEED( 8) | \
207 DEFAULT_GPIO_SPEED( 9) | \
208 DEFAULT_GPIO_SPEED(10) | \
209 DEFAULT_GPIO_SPEED(11) | \
210 DEFAULT_GPIO_SPEED(12) | \
211 DEFAULT_GPIO_SPEED(13) | \
212 DEFAULT_GPIO_SPEED(14) | \
213 DEFAULT_GPIO_SPEED(15))
214#define VAL_GPIOB_PUPDR (PIN_PUPDR_FLOATING( 0) | \
215 PIN_PUPDR_FLOATING( 1) | \
216 PIN_PUPDR_PULLDOWN( 2) | \
217 PIN_PUPDR_FLOATING( 3) | \
218 PIN_PUPDR_FLOATING( 4) | \
219 PIN_PUPDR_FLOATING( 5) | \
220 PIN_PUPDR_FLOATING( 6) | \
221 PIN_PUPDR_PULLUP( 7) | \
222 PIN_PUPDR_FLOATING( 8) | \
223 PIN_PUPDR_FLOATING( 9) | \
224 PIN_PUPDR_FLOATING(10) | \
225 PIN_PUPDR_FLOATING(11) | \
226 PIN_PUPDR_FLOATING(12) | \
227 PIN_PUPDR_FLOATING(13) | \
228 PIN_PUPDR_PULLDOWN(14) | \
229 PIN_PUPDR_FLOATING(15))
230#define VAL_GPIOB_ODR (PIN_ODR_LOW(3) | \
231 PIN_ODR_LOW(4) | \
232 PIN_ODR_LOW(5) | \
233 PIN_ODR_LOW(8) | \
234 PIN_ODR_LOW(9) | \
235 PIN_ODR_LOW(10) | \
236 PIN_ODR_LOW(11) | \
237 PIN_ODR_LOW(13))
238#define VAL_GPIOB_AFRL (PIN_AFIO_AF( 0, 0U) | \
239 PIN_AFIO_AF( 1, 0U) | \
240 PIN_AFIO_AF( 2, 0U) | \
241 PIN_AFIO_AF( 3, 0U) | \
242 PIN_AFIO_AF( 4, 0U) | \
243 PIN_AFIO_AF( 5, 0U) | \
244 PIN_AFIO_AF( 6, 10U) | \
245 PIN_AFIO_AF( 7, 0U))
246#define VAL_GPIOB_AFRH (PIN_AFIO_AF( 8, 0U) | \
247 PIN_AFIO_AF( 9, 0U) | \
248 PIN_AFIO_AF(10, 0U) | \
249 PIN_AFIO_AF(11, 0U) | \
250 PIN_AFIO_AF(12, 12U) | \
251 PIN_AFIO_AF(13, 0U) | \
252 PIN_AFIO_AF(14, 12U) | \
253 PIN_AFIO_AF(15, 12U))
254
255/*
256 * GPIOC setup:
257 *
258 * PC0 - Atm P input
259 * PC1 - Aux0 input
260 * PC2 - Throtle input
261 * PC3 - mc33972 analog input
262 * PC4 - coolant T input
263 * PC5 - oxygen #1 input
264 * PC6 - idle open
265 * PC7 - USB HS power enable
266 * PC8 - idle close
267 * PC9 - USB HS overcurrent input
268 * PC10 - UART4 TX
269 * PC11 - UART4 Rx
270 * PC12 - bluetooth/wifi mode
271 * PC13 - ignition #1 (TODO: move to other pin, this pin is weak and may be powered from Vbat)
272 * PC14 - ignition #2 (TODO: move to other pin, this pin is weak and may be powered from Vbat, also may be used for OSC32)
273 * PC15 - ignition #6 (TODO: move to other pin, this pin is weak and may be powered from Vbat, also may be used for OSC32)
274 */
275#define VAL_GPIOC_MODER (PIN_MODE_ANALOG(0) | \
276 PIN_MODE_ANALOG(1) | \
277 PIN_MODE_ANALOG(2) | \
278 PIN_MODE_ANALOG(3) | \
279 PIN_MODE_ANALOG(4) | \
280 PIN_MODE_ANALOG(5) | \
281 PIN_MODE_OUTPUT(6) | \
282 PIN_MODE_OUTPUT(7) | \
283 PIN_MODE_OUTPUT(8) | \
284 PIN_MODE_INPUT(9) | \
285 PIN_MODE_ALTERNATE(10) | \
286 PIN_MODE_ALTERNATE(11) | \
287 PIN_MODE_OUTPUT(12) | \
288 PIN_MODE_OUTPUT(13) | \
289 PIN_MODE_OUTPUT(14) | \
290 PIN_MODE_OUTPUT(15))
291#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
292 PIN_OTYPE_PUSHPULL( 1) | \
293 PIN_OTYPE_PUSHPULL( 2) | \
294 PIN_OTYPE_PUSHPULL( 3) | \
295 PIN_OTYPE_PUSHPULL( 4) | \
296 PIN_OTYPE_PUSHPULL( 5) | \
297 PIN_OTYPE_PUSHPULL( 6) | \
298 PIN_OTYPE_PUSHPULL( 7) | \
299 PIN_OTYPE_PUSHPULL( 8) | \
300 PIN_OTYPE_PUSHPULL( 9) | \
301 PIN_OTYPE_PUSHPULL(10) | \
302 PIN_OTYPE_PUSHPULL(11) | \
303 PIN_OTYPE_PUSHPULL(12) | \
304 PIN_OTYPE_PUSHPULL(13) | \
305 PIN_OTYPE_PUSHPULL(14) | \
306 PIN_OTYPE_PUSHPULL(15))
307#define VAL_GPIOC_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
308 DEFAULT_GPIO_SPEED( 1) | \
309 DEFAULT_GPIO_SPEED( 2) | \
310 DEFAULT_GPIO_SPEED( 3) | \
311 DEFAULT_GPIO_SPEED( 4) | \
312 DEFAULT_GPIO_SPEED( 5) | \
313 DEFAULT_GPIO_SPEED( 6) | \
314 DEFAULT_GPIO_SPEED( 7) | \
315 DEFAULT_GPIO_SPEED( 8) | \
316 DEFAULT_GPIO_SPEED( 9) | \
317 DEFAULT_GPIO_SPEED(10) | \
318 DEFAULT_GPIO_SPEED(11) | \
319 DEFAULT_GPIO_SPEED(12) | \
320 PIN_OSPEED_VERYLOW(13) | \
321 PIN_OSPEED_VERYLOW(14) | \
322 PIN_OSPEED_VERYLOW(15))
323#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING( 0) | \
324 PIN_PUPDR_FLOATING( 1) | \
325 PIN_PUPDR_FLOATING( 2) | \
326 PIN_PUPDR_FLOATING( 3) | \
327 PIN_PUPDR_FLOATING( 4) | \
328 PIN_PUPDR_FLOATING( 5) | \
329 PIN_PUPDR_FLOATING( 6) | \
330 PIN_PUPDR_FLOATING( 7) | \
331 PIN_PUPDR_FLOATING( 8) | \
332 PIN_PUPDR_PULLUP( 9) | \
333 PIN_PUPDR_FLOATING(10) | \
334 PIN_PUPDR_PULLUP(11) | \
335 PIN_PUPDR_FLOATING(12) | \
336 PIN_PUPDR_FLOATING(13) | \
337 PIN_PUPDR_FLOATING(14) | \
338 PIN_PUPDR_FLOATING(15))
339#define VAL_GPIOC_ODR (PIN_ODR_LOW(6) | \
340 PIN_ODR_LOW(7) | \
341 PIN_ODR_LOW(8) | \
342 PIN_ODR_LOW(12) | \
343 PIN_ODR_LOW(13) | \
344 PIN_ODR_LOW(14) | \
345 PIN_ODR_LOW(15))
346#define VAL_GPIOC_AFRL (PIN_AFIO_AF( 0, 0U) | \
347 PIN_AFIO_AF( 1, 0U) | \
348 PIN_AFIO_AF( 2, 0U) | \
349 PIN_AFIO_AF( 3, 0U) | \
350 PIN_AFIO_AF( 4, 0U) | \
351 PIN_AFIO_AF( 5, 0U) | \
352 PIN_AFIO_AF( 6, 0U) | \
353 PIN_AFIO_AF( 7, 0U))
354#define VAL_GPIOC_AFRH (PIN_AFIO_AF( 8, 0U) | \
355 PIN_AFIO_AF( 9, 0U) | \
356 PIN_AFIO_AF(10, 8U) | \
357 PIN_AFIO_AF(11, 8U) | \
358 PIN_AFIO_AF(12, 0U) | \
359 PIN_AFIO_AF(13, 0U) | \
360 PIN_AFIO_AF(14, 0U) | \
361 PIN_AFIO_AF(15, 0U))
362
363/*
364 * GPIOD setup:
365 *
366 * PD0 - CAN1 Rx
367 * PD1 - CAN1 Tx
368 * PD2 - E-Thtot #2 direction
369 * PD3 - E-Thtot #2 PWM
370 * PD4 - E-Thtot #1 direction
371 * PD5 - E-Thtot #1 PWM
372 * PD6 - MMC clk
373 * PD7 - MMC cmd
374 * PD8 - UART3 Tx
375 * PD9 - UART3 Rx
376 * PD10 - Power hold to PMIC
377 * PD11 - QSPI IO0
378 * PD12 - QSPI IO1
379 * PD13 - QSPI IO3
380 * PD14 - Speed sensor input
381 * PD15 - LIN RTS
382 */
383#define VAL_GPIOD_MODER (PIN_MODE_ALTERNATE(0) | \
384 PIN_MODE_ALTERNATE(1) | \
385 PIN_MODE_OUTPUT(2) | \
386 PIN_MODE_OUTPUT(3) | \
387 PIN_MODE_OUTPUT(4) | \
388 PIN_MODE_OUTPUT(5) | \
389 PIN_MODE_ALTERNATE(6) | \
390 PIN_MODE_ALTERNATE(7) | \
391 PIN_MODE_ALTERNATE(8) | \
392 PIN_MODE_ALTERNATE(9) | \
393 PIN_MODE_OUTPUT(10) | \
394 PIN_MODE_ALTERNATE(11) | \
395 PIN_MODE_ALTERNATE(12) | \
396 PIN_MODE_ALTERNATE(13) | \
397 PIN_MODE_INPUT(14) | \
398 PIN_MODE_ALTERNATE(15))
399#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
400 PIN_OTYPE_PUSHPULL( 1) | \
401 PIN_OTYPE_PUSHPULL( 2) | \
402 PIN_OTYPE_PUSHPULL( 3) | \
403 PIN_OTYPE_PUSHPULL( 4) | \
404 PIN_OTYPE_PUSHPULL( 5) | \
405 PIN_OTYPE_PUSHPULL( 6) | \
406 PIN_OTYPE_PUSHPULL( 7) | \
407 PIN_OTYPE_PUSHPULL( 8) | \
408 PIN_OTYPE_PUSHPULL( 9) | \
409 PIN_OTYPE_PUSHPULL(10) | \
410 PIN_OTYPE_PUSHPULL(11) | \
411 PIN_OTYPE_PUSHPULL(12) | \
412 PIN_OTYPE_PUSHPULL(13) | \
413 PIN_OTYPE_PUSHPULL(14) | \
414 PIN_OTYPE_PUSHPULL(15))
415#define VAL_GPIOD_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
416 DEFAULT_GPIO_SPEED( 1) | \
417 DEFAULT_GPIO_SPEED( 2) | \
418 DEFAULT_GPIO_SPEED( 3) | \
419 DEFAULT_GPIO_SPEED( 4) | \
420 DEFAULT_GPIO_SPEED( 5) | \
421 PIN_OSPEED_HIGH( 6) | \
422 PIN_OSPEED_HIGH( 7) | \
423 DEFAULT_GPIO_SPEED( 8) | \
424 DEFAULT_GPIO_SPEED( 9) | \
425 DEFAULT_GPIO_SPEED(10) | \
426 PIN_OSPEED_HIGH(11) | \
427 PIN_OSPEED_HIGH(12) | \
428 PIN_OSPEED_HIGH(13) | \
429 DEFAULT_GPIO_SPEED(14) | \
430 DEFAULT_GPIO_SPEED(15))
431#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP( 0) | \
432 PIN_PUPDR_FLOATING( 1) | \
433 PIN_PUPDR_FLOATING( 2) | \
434 PIN_PUPDR_FLOATING( 3) | \
435 PIN_PUPDR_FLOATING( 4) | \
436 PIN_PUPDR_FLOATING( 5) | \
437 PIN_PUPDR_FLOATING( 6) | \
438 PIN_PUPDR_PULLUP( 7) | \
439 PIN_PUPDR_FLOATING( 8) | \
440 PIN_PUPDR_PULLUP( 9) | \
441 PIN_PUPDR_FLOATING(10) | \
442 PIN_PUPDR_PULLUP(11) | \
443 PIN_PUPDR_PULLUP(12) | \
444 PIN_PUPDR_PULLUP(13) | \
445 PIN_PUPDR_FLOATING(14) | \
446 PIN_PUPDR_FLOATING(15))
447#define VAL_GPIOD_ODR (PIN_ODR_LOW(2) | \
448 PIN_ODR_LOW(3) | \
449 PIN_ODR_LOW(4) | \
450 PIN_ODR_LOW(5) | \
451 PIN_ODR_HIGH(10))
452#define VAL_GPIOD_AFRL (PIN_AFIO_AF( 0, 9U) | \
453 PIN_AFIO_AF( 1, 9U) | \
454 PIN_AFIO_AF( 2, 0U) | \
455 PIN_AFIO_AF( 3, 0U) | \
456 PIN_AFIO_AF( 4, 0U) | \
457 PIN_AFIO_AF( 5, 0U) | \
458 PIN_AFIO_AF( 6, 11U) | \
459 PIN_AFIO_AF( 7, 11U))
460#define VAL_GPIOD_AFRH (PIN_AFIO_AF( 8, 7U) | \
461 PIN_AFIO_AF( 9, 7U) | \
462 PIN_AFIO_AF(10, 0U) | \
463 PIN_AFIO_AF(11, 9U) | \
464 PIN_AFIO_AF(12, 9U) | \
465 PIN_AFIO_AF(13, 9U) | \
466 PIN_AFIO_AF(14, 0U) | \
467 PIN_AFIO_AF(15, 8U))
468
469/*
470 * GPIOE setup:
471 *
472 * PE0 - LIN Rx
473 * PE1 - LIN Tx
474 * PE2 - QSPI IO2
475 * PE3 - injector #2
476 * PE4 - injector #4
477 * PE5 - injector #6
478 * PE6 - injector %8
479 * PE7 - n.u.
480 * PE8 - n.u.
481 * PE9 - Crank position sensor #2
482 * PE10 - SPI4 CS2 (5V pulled)
483 * PE11 - SPI4 CS1 (5V pulled)
484 * PE12 - SPI4 SCK (5V pulled)
485 * PE13 - SPI4 MISO (5V pulled)
486 * PE14 - SPI4 MOSI (5V pulled)
487 * PE15 - SPI4 CS0 (5V pulled)
488 */
489#define VAL_GPIOE_MODER (PIN_MODE_ALTERNATE(0) | \
490 PIN_MODE_ALTERNATE(1) | \
491 PIN_MODE_ALTERNATE(2) | \
492 PIN_MODE_OUTPUT(3) | \
493 PIN_MODE_OUTPUT(4) | \
494 PIN_MODE_OUTPUT(5) | \
495 PIN_MODE_OUTPUT(6) | \
496 PIN_MODE_OUTPUT(7) | \
497 PIN_MODE_OUTPUT(8) | \
498 PIN_MODE_INPUT(9) | \
499 PIN_MODE_OUTPUT(10) | \
500 PIN_MODE_OUTPUT(11) | \
501 PIN_MODE_ALTERNATE(12) | \
502 PIN_MODE_ALTERNATE(13) | \
503 PIN_MODE_ALTERNATE(14) | \
504 PIN_MODE_OUTPUT(15))
505#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
506 PIN_OTYPE_PUSHPULL( 1) | \
507 PIN_OTYPE_PUSHPULL( 2) | \
508 PIN_OTYPE_PUSHPULL( 3) | \
509 PIN_OTYPE_PUSHPULL( 4) | \
510 PIN_OTYPE_PUSHPULL( 5) | \
511 PIN_OTYPE_PUSHPULL( 6) | \
512 PIN_OTYPE_PUSHPULL( 7) | \
513 PIN_OTYPE_PUSHPULL( 8) | \
514 PIN_OTYPE_PUSHPULL( 9) | \
515 PIN_OTYPE_OPENDRAIN(10)| \
516 PIN_OTYPE_OPENDRAIN(11)| \
517 PIN_OTYPE_OPENDRAIN(12)| \
518 PIN_OTYPE_PUSHPULL(13) /* PIN_OTYPE_OPENDRAIN(13) */| \
519 PIN_OTYPE_OPENDRAIN(14)| \
520 PIN_OTYPE_OPENDRAIN(15))
521#define VAL_GPIOE_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
522 DEFAULT_GPIO_SPEED( 1) | \
523 PIN_OSPEED_HIGH( 2) | \
524 DEFAULT_GPIO_SPEED( 3) | \
525 DEFAULT_GPIO_SPEED( 4) | \
526 DEFAULT_GPIO_SPEED( 5) | \
527 DEFAULT_GPIO_SPEED( 6) | \
528 DEFAULT_GPIO_SPEED( 7) | \
529 DEFAULT_GPIO_SPEED( 8) | \
530 DEFAULT_GPIO_SPEED( 9) | \
531 DEFAULT_GPIO_SPEED(10) | \
532 DEFAULT_GPIO_SPEED(11) | \
533 DEFAULT_GPIO_SPEED(12) | \
534 DEFAULT_GPIO_SPEED(13) | \
535 DEFAULT_GPIO_SPEED(14) | \
536 DEFAULT_GPIO_SPEED(15))
537#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP( 0) | \
538 PIN_PUPDR_FLOATING( 1) | \
539 PIN_PUPDR_PULLUP( 2) | \
540 PIN_PUPDR_FLOATING( 3) | \
541 PIN_PUPDR_FLOATING( 4) | \
542 PIN_PUPDR_FLOATING( 5) | \
543 PIN_PUPDR_FLOATING( 6) | \
544 PIN_PUPDR_FLOATING( 7) | \
545 PIN_PUPDR_FLOATING( 8) | \
546 PIN_PUPDR_PULLUP( 9) | \
547 PIN_PUPDR_FLOATING(10) | \
548 PIN_PUPDR_FLOATING(11) | \
549 PIN_PUPDR_FLOATING(12) | \
550 PIN_PUPDR_FLOATING(13) | \
551 PIN_PUPDR_FLOATING(14) | \
552 PIN_PUPDR_FLOATING(15))
553#define VAL_GPIOE_ODR (PIN_ODR_LOW(3) | \
554 PIN_ODR_LOW(4) | \
555 PIN_ODR_LOW(5) | \
556 PIN_ODR_LOW(6) | \
557 PIN_ODR_LOW(7) | \
558 PIN_ODR_LOW(8) | \
559 PIN_ODR_HIGH(10) | \
560 PIN_ODR_HIGH(11) | \
561 PIN_ODR_HIGH(15))
562#define VAL_GPIOE_AFRL (PIN_AFIO_AF( 0, 8U) | \
563 PIN_AFIO_AF( 1, 8U) | \
564 PIN_AFIO_AF( 2, 9U) | \
565 PIN_AFIO_AF( 3, 0U) | \
566 PIN_AFIO_AF( 4, 0U) | \
567 PIN_AFIO_AF( 5, 0U) | \
568 PIN_AFIO_AF( 6, 0U) | \
569 PIN_AFIO_AF( 7, 0U))
570#define VAL_GPIOE_AFRH (PIN_AFIO_AF( 8, 0U) | \
571 PIN_AFIO_AF( 9, 0U) | \
572 PIN_AFIO_AF(10, 0U) | \
573 PIN_AFIO_AF(11, 0U) | \
574 PIN_AFIO_AF(12, 5U) | \
575 PIN_AFIO_AF(13, 5U) | \
576 PIN_AFIO_AF(14, 5U) | \
577 PIN_AFIO_AF(15, 0U))
578
579/*
580 * GPIOF setup:
581 *
582 * PF0 - Ignition (2, 4, 6, 8) MAXI input
583 * PF1 - SPI5 CS0
584 * PF2 - SPI5 CS1
585 * PF3 - optional analog input 3
586 * PF4 - optional analog input 2
587 * PF5 - optional analog input 1
588 * PF6 - optional analog input 0
589 * PF7 - SPI5 SCK
590 * PF8 - SPI5 MISO
591 * PF9 - SPI5 MOSI
592 * PF10 - QSPI CLK
593 * PF11 - SPI5 CS4
594 * PF12 - SPI5 CS5
595 * PF13 - n.u.
596 * PF14 - SPI5 CS2
597 * PF15 - SPI5 CS3
598 */
599#define VAL_GPIOF_MODER (PIN_MODE_INPUT(0) | \
600 PIN_MODE_OUTPUT(1) | \
601 PIN_MODE_OUTPUT(2) | \
602 PIN_MODE_ANALOG(3) | \
603 PIN_MODE_ANALOG(4) | \
604 PIN_MODE_ANALOG(5) | \
605 PIN_MODE_ANALOG(6) | \
606 PIN_MODE_ALTERNATE(7) | \
607 PIN_MODE_ALTERNATE(8) | \
608 PIN_MODE_ALTERNATE(9) | \
609 PIN_MODE_ALTERNATE(10) | \
610 PIN_MODE_OUTPUT(11) | \
611 PIN_MODE_OUTPUT(12) | \
612 PIN_MODE_OUTPUT(13) | \
613 PIN_MODE_OUTPUT(14) | \
614 PIN_MODE_OUTPUT(15))
615#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
616 PIN_OTYPE_PUSHPULL( 1) | \
617 PIN_OTYPE_PUSHPULL( 2) | \
618 PIN_OTYPE_PUSHPULL( 3) | \
619 PIN_OTYPE_PUSHPULL( 4) | \
620 PIN_OTYPE_PUSHPULL( 5) | \
621 PIN_OTYPE_PUSHPULL( 6) | \
622 PIN_OTYPE_PUSHPULL( 7) | \
623 PIN_OTYPE_PUSHPULL( 8) | \
624 PIN_OTYPE_PUSHPULL( 9) | \
625 PIN_OTYPE_PUSHPULL(10) | \
626 PIN_OTYPE_PUSHPULL(11) | \
627 PIN_OTYPE_PUSHPULL(12) | \
628 PIN_OTYPE_PUSHPULL(13) | \
629 PIN_OTYPE_PUSHPULL(14) | \
630 PIN_OTYPE_PUSHPULL(15))
631#define VAL_GPIOF_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
632 DEFAULT_GPIO_SPEED( 1) | \
633 DEFAULT_GPIO_SPEED( 2) | \
634 DEFAULT_GPIO_SPEED( 3) | \
635 DEFAULT_GPIO_SPEED( 4) | \
636 DEFAULT_GPIO_SPEED( 5) | \
637 DEFAULT_GPIO_SPEED( 6) | \
638 DEFAULT_GPIO_SPEED( 7) | \
639 DEFAULT_GPIO_SPEED( 8) | \
640 DEFAULT_GPIO_SPEED( 9) | \
641 DEFAULT_GPIO_SPEED(10) | \
642 DEFAULT_GPIO_SPEED(11) | \
643 DEFAULT_GPIO_SPEED(12) | \
644 DEFAULT_GPIO_SPEED(13) | \
645 DEFAULT_GPIO_SPEED(14) | \
646 DEFAULT_GPIO_SPEED(15))
647#define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLUP( 0) | \
648 PIN_PUPDR_FLOATING( 1) | \
649 PIN_PUPDR_FLOATING( 2) | \
650 PIN_PUPDR_FLOATING( 3) | \
651 PIN_PUPDR_FLOATING( 4) | \
652 PIN_PUPDR_FLOATING( 5) | \
653 PIN_PUPDR_FLOATING( 6) | \
654 PIN_PUPDR_FLOATING( 7) | \
655 PIN_PUPDR_PULLUP( 8) | \
656 PIN_PUPDR_FLOATING( 9) | \
657 PIN_PUPDR_FLOATING(10) | \
658 PIN_PUPDR_FLOATING(11) | \
659 PIN_PUPDR_FLOATING(12) | \
660 PIN_PUPDR_FLOATING(13) | \
661 PIN_PUPDR_FLOATING(14) | \
662 PIN_PUPDR_FLOATING(15))
663#define VAL_GPIOF_ODR (PIN_ODR_HIGH(1) | \
664 PIN_ODR_HIGH(2) | \
665 PIN_ODR_HIGH(11) | \
666 PIN_ODR_HIGH(12) | \
667 PIN_ODR_HIGH(14) | \
668 PIN_ODR_HIGH(15))
669#define VAL_GPIOF_AFRL (PIN_AFIO_AF( 0, 0U) | \
670 PIN_AFIO_AF( 1, 0U) | \
671 PIN_AFIO_AF( 2, 0U) | \
672 PIN_AFIO_AF( 3, 0U) | \
673 PIN_AFIO_AF( 4, 0U) | \
674 PIN_AFIO_AF( 5, 0U) | \
675 PIN_AFIO_AF( 6, 0U) | \
676 PIN_AFIO_AF( 7, 5U))
677#define VAL_GPIOF_AFRH (PIN_AFIO_AF( 8, 5U) | \
678 PIN_AFIO_AF( 9, 5U) | \
679 PIN_AFIO_AF(10, 9U) | \
680 PIN_AFIO_AF(11, 0U) | \
681 PIN_AFIO_AF(12, 0U) | \
682 PIN_AFIO_AF(13, 0U) | \
683 PIN_AFIO_AF(14, 0U) | \
684 PIN_AFIO_AF(15, 0U))
685
686/*
687 * GPIOG setup:
688 *
689 * PG0 - CAN1 EN
690 * PG1 - SW2 irq
691 * PG2 - taho out
692 * PG3 - 1 wire interface
693 * PG4 - mc33972 irq
694 * PG5 - mc33972 wake up input
695 * PG6 - LD2 - active low
696 * PG7 - LD1 - active low
697 * PG8 - LD0 - active low
698 * PG9 - MMC D0
699 * PG10 - MMC D1
700 * PG11 - MMC D2
701 * PG12 - MMC D3
702 * PG13 - ignition (1, 3, 5, 7) MAXI input
703 * PG14 - E-Throttle disable
704 * PG15 - ignition (1, 3, 5, 7) NOMI input
705 */
706#define VAL_GPIOG_MODER (PIN_MODE_OUTPUT(0) | \
707 PIN_MODE_INPUT(1) | \
708 PIN_MODE_OUTPUT(2) | \
709 PIN_MODE_OUTPUT(3) | \
710 PIN_MODE_INPUT(4) | \
711 PIN_MODE_INPUT(5) | \
712 PIN_MODE_OUTPUT(6) | \
713 PIN_MODE_OUTPUT(7) | \
714 PIN_MODE_OUTPUT(8) | \
715 PIN_MODE_ALTERNATE(9) | \
716 PIN_MODE_ALTERNATE(10) | \
717 PIN_MODE_ALTERNATE(11) | \
718 PIN_MODE_ALTERNATE(12) | \
719 PIN_MODE_INPUT(13) | \
720 PIN_MODE_OUTPUT(14) | \
721 PIN_MODE_INPUT(15))
722#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
723 PIN_OTYPE_PUSHPULL( 1) | \
724 PIN_OTYPE_PUSHPULL( 2) | \
725 PIN_OTYPE_PUSHPULL( 3) | \
726 PIN_OTYPE_PUSHPULL( 4) | \
727 PIN_OTYPE_PUSHPULL( 5) | \
728 PIN_OTYPE_OPENDRAIN( 6)| \
729 PIN_OTYPE_OPENDRAIN( 7)| \
730 PIN_OTYPE_OPENDRAIN( 8)| \
731 PIN_OTYPE_PUSHPULL( 9) | \
732 PIN_OTYPE_PUSHPULL(10) | \
733 PIN_OTYPE_PUSHPULL(11) | \
734 PIN_OTYPE_PUSHPULL(12) | \
735 PIN_OTYPE_PUSHPULL(13) | \
736 PIN_OTYPE_PUSHPULL(14)| \
737 PIN_OTYPE_PUSHPULL(15))
738#define VAL_GPIOG_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
739 DEFAULT_GPIO_SPEED( 1) | \
740 DEFAULT_GPIO_SPEED( 2) | \
741 DEFAULT_GPIO_SPEED( 3) | \
742 DEFAULT_GPIO_SPEED( 4) | \
743 DEFAULT_GPIO_SPEED( 5) | \
744 DEFAULT_GPIO_SPEED( 6) | \
745 DEFAULT_GPIO_SPEED( 7) | \
746 DEFAULT_GPIO_SPEED( 8) | \
747 PIN_OSPEED_HIGH( 9) | \
748 PIN_OSPEED_HIGH(10) | \
749 PIN_OSPEED_HIGH(11) | \
750 PIN_OSPEED_HIGH(12) | \
751 DEFAULT_GPIO_SPEED(13) | \
752 DEFAULT_GPIO_SPEED(14) | \
753 DEFAULT_GPIO_SPEED(15))
754#define VAL_GPIOG_PUPDR (PIN_PUPDR_FLOATING( 0) | \
755 PIN_PUPDR_PULLUP( 1) | \
756 PIN_PUPDR_FLOATING( 2) | \
757 PIN_PUPDR_FLOATING( 3) | \
758 PIN_PUPDR_PULLUP( 4) | \
759 PIN_PUPDR_PULLUP( 5) | \
760 PIN_PUPDR_FLOATING( 6) | \
761 PIN_PUPDR_FLOATING( 7) | \
762 PIN_PUPDR_FLOATING( 8) | \
763 PIN_PUPDR_PULLUP( 9) | \
764 PIN_PUPDR_PULLUP(10) | \
765 PIN_PUPDR_PULLUP(11) | \
766 PIN_PUPDR_PULLUP(12) | \
767 PIN_PUPDR_PULLUP(13) | \
768 PIN_PUPDR_FLOATING(14) | \
769 PIN_PUPDR_PULLUP(15))
770#define VAL_GPIOG_ODR (PIN_ODR_HIGH(0) | \
771 PIN_ODR_LOW(2) | \
772 PIN_ODR_HIGH(3) | \
773 PIN_ODR_HIGH(6) | \
774 PIN_ODR_HIGH(7) | \
775 PIN_ODR_HIGH(8) | \
776 PIN_ODR_HIGH(14))
777#define VAL_GPIOG_AFRL (PIN_AFIO_AF( 0, 0U) | \
778 PIN_AFIO_AF( 1, 0U) | \
779 PIN_AFIO_AF( 2, 0U) | \
780 PIN_AFIO_AF( 3, 0U) | \
781 PIN_AFIO_AF( 4, 0U) | \
782 PIN_AFIO_AF( 5, 0U) | \
783 PIN_AFIO_AF( 6, 0U) | \
784 PIN_AFIO_AF( 7, 0U))
785#define VAL_GPIOG_AFRH (PIN_AFIO_AF( 8, 0U) | \
786 PIN_AFIO_AF( 9, 11U) | \
787 PIN_AFIO_AF(10, 11U) | \
788 PIN_AFIO_AF(11, 10U) | \
789 PIN_AFIO_AF(12, 11U) | \
790 PIN_AFIO_AF(13, 0U) | \
791 PIN_AFIO_AF(14, 0U) | \
792 PIN_AFIO_AF(15, 0U))
793
794/*
795 * GPIOH setup:
796 *
797 * PH0 - OSC_IN (input floating).
798 * PH1 - OSC_OUT (input floating).
799 * PH2 - n.u.
800 * PH3 - n.u.
801 * PH4 - n.u.
802 * PH5 - n.u.
803 * PH6 - SW reset
804 * PH7 - self shutdown output
805 * PH8 - knock sensor IC hold output (5V pulled)
806 * PH9 - knock sensor IC tst output (5V pulled)
807 * PH10 - Crank position #1
808 * PH11 - watchdog
809 * PH12 - Cam positio #1
810 * PH13 - USB FS overcurrent input
811 * PH14 - USB FS power enable
812 * PH15 - OLED DC output
813 */
814#define VAL_GPIOH_MODER (PIN_MODE_INPUT(0) | \
815 PIN_MODE_INPUT(1) | \
816 PIN_MODE_OUTPUT(2) | \
817 PIN_MODE_OUTPUT(3) | \
818 PIN_MODE_OUTPUT(4) | \
819 PIN_MODE_OUTPUT(5) | \
820 PIN_MODE_OUTPUT(6) | \
821 PIN_MODE_OUTPUT(7) | \
822 PIN_MODE_OUTPUT(8) | \
823 PIN_MODE_OUTPUT(9) | \
824 PIN_MODE_INPUT(10) | \
825 PIN_MODE_OUTPUT(11) | \
826 PIN_MODE_INPUT(12) | \
827 PIN_MODE_INPUT(13) | \
828 PIN_MODE_OUTPUT(14) | \
829 PIN_MODE_OUTPUT(15))
830#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
831 PIN_OTYPE_PUSHPULL( 1) | \
832 PIN_OTYPE_PUSHPULL( 2) | \
833 PIN_OTYPE_PUSHPULL( 3) | \
834 PIN_OTYPE_PUSHPULL( 4) | \
835 PIN_OTYPE_PUSHPULL( 5) | \
836 PIN_OTYPE_PUSHPULL( 6) | \
837 PIN_OTYPE_PUSHPULL( 7) | \
838 PIN_OTYPE_OPENDRAIN( 8)| \
839 PIN_OTYPE_OPENDRAIN( 9)| \
840 PIN_OTYPE_PUSHPULL(10) | \
841 PIN_OTYPE_PUSHPULL(11) | \
842 PIN_OTYPE_PUSHPULL(12) | \
843 PIN_OTYPE_PUSHPULL(13) | \
844 PIN_OTYPE_PUSHPULL(14) | \
845 PIN_OTYPE_PUSHPULL(15))
846#define VAL_GPIOH_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
847 DEFAULT_GPIO_SPEED( 1) | \
848 DEFAULT_GPIO_SPEED( 2) | \
849 DEFAULT_GPIO_SPEED( 3) | \
850 DEFAULT_GPIO_SPEED( 4) | \
851 DEFAULT_GPIO_SPEED( 5) | \
852 DEFAULT_GPIO_SPEED( 6) | \
853 DEFAULT_GPIO_SPEED( 7) | \
854 DEFAULT_GPIO_SPEED( 8) | \
855 DEFAULT_GPIO_SPEED( 9) | \
856 DEFAULT_GPIO_SPEED(10) | \
857 DEFAULT_GPIO_SPEED(11) | \
858 DEFAULT_GPIO_SPEED(12) | \
859 DEFAULT_GPIO_SPEED(13) | \
860 DEFAULT_GPIO_SPEED(14) | \
861 DEFAULT_GPIO_SPEED(15))
862#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING( 0) | \
863 PIN_PUPDR_FLOATING( 1) | \
864 PIN_PUPDR_FLOATING( 2) | \
865 PIN_PUPDR_FLOATING( 3) | \
866 PIN_PUPDR_FLOATING( 4) | \
867 PIN_PUPDR_FLOATING( 5) | \
868 PIN_PUPDR_FLOATING( 6) | \
869 PIN_PUPDR_FLOATING( 7) | \
870 PIN_PUPDR_FLOATING( 8) | \
871 PIN_PUPDR_FLOATING( 9) | \
872 PIN_PUPDR_PULLUP(10) | \
873 PIN_PUPDR_FLOATING(11) | \
874 PIN_PUPDR_PULLUP(12) | \
875 PIN_PUPDR_PULLUP(13) | \
876 PIN_PUPDR_FLOATING(14) | \
877 PIN_PUPDR_FLOATING(15))
878#define VAL_GPIOH_ODR (PIN_ODR_HIGH( 0) | \
879 PIN_ODR_HIGH( 1) | \
880 PIN_ODR_LOW( 2) | \
881 PIN_ODR_LOW( 3) | \
882 PIN_ODR_LOW( 4) | \
883 PIN_ODR_LOW( 5) | \
884 PIN_ODR_LOW( 6) | \
885 PIN_ODR_LOW( 7) | \
886 PIN_ODR_HIGH( 8) | \
887 PIN_ODR_HIGH( 9) | \
888 PIN_ODR_LOW(11) | \
889 PIN_ODR_LOW(14) | \
890 PIN_ODR_LOW(15))
891#define VAL_GPIOH_AFRL (PIN_AFIO_AF( 0, 0U) | \
892 PIN_AFIO_AF( 1, 0U) | \
893 PIN_AFIO_AF( 2, 0U) | \
894 PIN_AFIO_AF( 3, 0U) | \
895 PIN_AFIO_AF( 4, 0U) | \
896 PIN_AFIO_AF( 5, 0U) | \
897 PIN_AFIO_AF( 6, 0U) | \
898 PIN_AFIO_AF( 7, 0U))
899#define VAL_GPIOH_AFRH (PIN_AFIO_AF( 8, 0U) | \
900 PIN_AFIO_AF( 9, 0U) | \
901 PIN_AFIO_AF(10, 0U) | \
902 PIN_AFIO_AF(11, 0U) | \
903 PIN_AFIO_AF(12, 0U) | \
904 PIN_AFIO_AF(13, 0U) | \
905 PIN_AFIO_AF(14, 0U) | \
906 PIN_AFIO_AF(15, 0U))
907
908/*
909 * GPIOI setup:
910 *
911 * PI0 - SPI2 CS0
912 * PI1 - SPI2 SCK
913 * PI2 - SPI2 MISO
914 * PI3 - SPI2 MOSI
915 * PI4 - injector #5
916 * PI5 - injector #3
917 * PI6 - injector #1
918 * PI7 - SW enable
919 * PI8 - ignition (2, 4, 6, 8) spark duration input
920 * PI9 - ignition #8
921 * PI10 - n.u.
922 * PI11 - ignition (2, 4, 6, 8) NOMI input
923 */
924#define VAL_GPIOI_MODER (PIN_MODE_OUTPUT(0) | \
925 PIN_MODE_ALTERNATE(1) | \
926 PIN_MODE_ALTERNATE(2) | \
927 PIN_MODE_ALTERNATE(3) | \
928 PIN_MODE_OUTPUT(4) | \
929 PIN_MODE_OUTPUT(5) | \
930 PIN_MODE_OUTPUT(6) | \
931 PIN_MODE_OUTPUT(7) | \
932 PIN_MODE_INPUT(8) | \
933 PIN_MODE_OUTPUT(9) | \
934 PIN_MODE_OUTPUT(10) | \
935 PIN_MODE_INPUT(11))
936#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
937 PIN_OTYPE_PUSHPULL( 1) | \
938 PIN_OTYPE_PUSHPULL( 2) | \
939 PIN_OTYPE_PUSHPULL( 3) | \
940 PIN_OTYPE_PUSHPULL( 4) | \
941 PIN_OTYPE_PUSHPULL( 5) | \
942 PIN_OTYPE_PUSHPULL( 6) | \
943 PIN_OTYPE_PUSHPULL( 7) | \
944 PIN_OTYPE_PUSHPULL( 8) | \
945 PIN_OTYPE_PUSHPULL( 9) | \
946 PIN_OTYPE_PUSHPULL(10) | \
947 PIN_OTYPE_PUSHPULL(11))
948#define VAL_GPIOI_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
949 DEFAULT_GPIO_SPEED( 1) | \
950 DEFAULT_GPIO_SPEED( 2) | \
951 DEFAULT_GPIO_SPEED( 3) | \
952 DEFAULT_GPIO_SPEED( 4) | \
953 DEFAULT_GPIO_SPEED( 5) | \
954 DEFAULT_GPIO_SPEED( 6) | \
955 DEFAULT_GPIO_SPEED( 7) | \
956 DEFAULT_GPIO_SPEED( 8) | \
957 DEFAULT_GPIO_SPEED( 9) | \
958 DEFAULT_GPIO_SPEED(10) | \
959 DEFAULT_GPIO_SPEED(11))
960#define VAL_GPIOI_PUPDR (PIN_PUPDR_FLOATING( 0) | \
961 PIN_PUPDR_FLOATING( 1) | \
962 PIN_PUPDR_FLOATING( 2) | \
963 PIN_PUPDR_FLOATING( 3) | \
964 PIN_PUPDR_FLOATING( 4) | \
965 PIN_PUPDR_FLOATING( 5) | \
966 PIN_PUPDR_FLOATING( 6) | \
967 PIN_PUPDR_FLOATING( 7) | \
968 PIN_PUPDR_PULLUP( 8) | \
969 PIN_PUPDR_FLOATING( 9) | \
970 PIN_PUPDR_FLOATING(10) | \
971 PIN_PUPDR_PULLUP(11))
972#define VAL_GPIOI_ODR (PIN_ODR_HIGH( 0) | \
973 PIN_ODR_LOW( 4) | \
974 PIN_ODR_LOW( 5) | \
975 PIN_ODR_LOW( 6) | \
976 PIN_ODR_LOW( 7) | \
977 PIN_ODR_LOW( 9))
978#define VAL_GPIOI_AFRL (PIN_AFIO_AF( 0, 0U) | \
979 PIN_AFIO_AF( 1, 5U) | \
980 PIN_AFIO_AF( 2, 5U) | \
981 PIN_AFIO_AF( 3, 5U) | \
982 PIN_AFIO_AF( 4, 0U) | \
983 PIN_AFIO_AF( 5, 0U) | \
984 PIN_AFIO_AF( 6, 0U) | \
985 PIN_AFIO_AF( 7, 0U))
986#define VAL_GPIOI_AFRH (PIN_AFIO_AF( 8, 0U) | \
987 PIN_AFIO_AF( 9, 0U) | \
988 PIN_AFIO_AF(10, 0U) | \
989 PIN_AFIO_AF(11, 0U))
990
991#endif /* BOARD_IO_H */