1 /*
2  * Copyright (c) 2021 Teslabs Engineering S.L.
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #ifndef GD32F403XX_AFIO_H_
7 #define GD32F403XX_AFIO_H_
8 
9 #include "gd32-afio.h"
10 
11 /** SPI0 (no remap) */
12 #define GD32_SPI0_NORMP		GD32_REMAP(0U, 0U, 0x1U, 0U)
13 /** SPI0 (remap) */
14 #define GD32_SPI0_RMP		GD32_REMAP(0U, 0U, 0x1U, 1U)
15 
16 /** I2C0 (no remap) */
17 #define GD32_I2C0_NORMP		GD32_REMAP(0U, 1U, 0x1U, 0U)
18 /** I2C0 (remap) */
19 #define GD32_I2C0_RMP		GD32_REMAP(0U, 1U, 0x1U, 1U)
20 
21 /** USART0 (no remap) */
22 #define GD32_USART0_NORMP	GD32_REMAP(0U, 2U, 0x1U, 0U)
23 /** USART0 (remap) */
24 #define GD32_USART0_RMP		GD32_REMAP(0U, 2U, 0x1U, 1U)
25 
26 /** USART1 (no remap) */
27 #define GD32_USART1_NORMP	GD32_REMAP(0U, 3U, 0x1U, 0U)
28 /** USART1 (remap) */
29 #define GD32_USART1_RMP		GD32_REMAP(0U, 3U, 0x1U, 1U)
30 
31 /** USART2 (no remap) */
32 #define GD32_USART2_NORMP	GD32_REMAP(0U, 4U, 0x3U, 0U)
33 /** USART2 (partial remap) */
34 #define GD32_USART2_PRMP	GD32_REMAP(0U, 4U, 0x3U, 1U)
35 /** USART2 (full remap) */
36 #define GD32_USART2_FRMP	GD32_REMAP(0U, 4U, 0x3U, 3U)
37 
38 /** TIMER0 (no remap) */
39 #define GD32_TIMER0_NORMP	GD32_REMAP(0U, 6U, 0x3U, 0U)
40 /** TIMER0 (partial remap) */
41 #define GD32_TIMER0_PRMP	GD32_REMAP(0U, 6U, 0x3U, 1U)
42 /** TIMER0 (full remap) */
43 #define GD32_TIMER0_FRMP	GD32_REMAP(0U, 6U, 0x3U, 3U)
44 
45 /** TIMER2 (no remap) */
46 #define GD32_TIMER2_NORMP	GD32_REMAP(0U, 10U, 0x3U, 0U)
47 /** TIMER2 (partial remap) */
48 #define GD32_TIMER2_PRMP	GD32_REMAP(0U, 10U, 0x3U, 2U)
49 /** TIMER2 (full remap) */
50 #define GD32_TIMER2_FRMP	GD32_REMAP(0U, 10U, 0x3U, 3U)
51 
52 /** TIMER3 (no remap) */
53 #define GD32_TIMER3_NORMP	GD32_REMAP(0U, 12U, 0x1U, 0U)
54 /** TIMER3 (remap) */
55 #define GD32_TIMER3_RMP		GD32_REMAP(0U, 12U, 0x1U, 1U)
56 
57 /** CAN0 (no remap) */
58 #define GD32_CAN0_NORMP		GD32_REMAP(0U, 13U, 0x3U, 0U)
59 /** CAN0 (partial remap) */
60 #define GD32_CAN0_PRMP		GD32_REMAP(0U, 13U, 0x3U, 2U)
61 /** CAN0 (full remap) */
62 #define GD32_CAN0_FRMP		GD32_REMAP(0U, 13U, 0x3U, 3U)
63 
64 /** CAN1 (no remap) */
65 #define GD32_CAN1_NORMP		GD32_REMAP(0U, 22U, 0x1U, 0U)
66 /** CAN1 (remap) */
67 #define GD32_CAN1_RMP		GD32_REMAP(0U, 22U, 0x1U, 1U)
68 
69 /** SPI2 (no remap) */
70 #define GD32_SPI2_NORMP		GD32_REMAP(0U, 28U, 0x1U, 0U)
71 /** SPI2 (remap) */
72 #define GD32_SPI2_RMP		GD32_REMAP(0U, 28U, 0x1U, 1U)
73 
74 /** TIMER8 (no remap) */
75 #define GD32_TIMER8_NORMP	GD32_REMAP(1U, 5U, 0x1U, 0U)
76 /** TIMER8 (remap) */
77 #define GD32_TIMER8_RMP		GD32_REMAP(1U, 5U, 0x1U, 1U)
78 
79 /** TIMER9 (no remap) */
80 #define GD32_TIMER9_NORMP	GD32_REMAP(1U, 6U, 0x1U, 0U)
81 /** TIMER9 (remap) */
82 #define GD32_TIMER9_RMP		GD32_REMAP(1U, 6U, 0x1U, 1U)
83 
84 /** TIMER10 (no remap) */
85 #define GD32_TIMER10_NORMP	GD32_REMAP(1U, 7U, 0x1U, 0U)
86 /** TIMER10 (remap) */
87 #define GD32_TIMER10_RMP	GD32_REMAP(1U, 7U, 0x1U, 1U)
88 
89 /** TIMER12 (no remap) */
90 #define GD32_TIMER12_NORMP	GD32_REMAP(1U, 8U, 0x1U, 0U)
91 /** TIMER12 (remap) */
92 #define GD32_TIMER12_RMP	GD32_REMAP(1U, 8U, 0x1U, 1U)
93 
94 /** TIMER13 (no remap) */
95 #define GD32_TIMER13_NORMP	GD32_REMAP(1U, 9U, 0x1U, 0U)
96 /** TIMER13 (remap) */
97 #define GD32_TIMER13_RMP	GD32_REMAP(1U, 9U, 0x1U, 1U)
98 
99 /** CTC (no remap) */
100 #define GD32_CTC_NORMP		GD32_REMAP(1U, 11U, 0x3U, 0U)
101 /** CTC (partial remap) */
102 #define GD32_CTC_PRMP		GD32_REMAP(1U, 11U, 0x3U, 1U)
103 /** CTC (full remap) */
104 #define GD32_CTC_FRMP		GD32_REMAP(1U, 11U, 0x3U, 2U)
105 
106 #endif /* GD32F403XX_AFIO_H_ */
107