1 /*
2  * Copyright (c) 2021 YuLong Yao <feilongphone@gmail.com>
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #ifndef GD32E103XX_AFIO_H_
7 #define GD32E103XX_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 /** TIMER1 (no remap) */
46 #define GD32_TIMER1_NORMP	GD32_REMAP(0U, 8U, 0x3U, 0U)
47 /** TIMER1 (partial remap 1) */
48 #define GD32_TIMER1_PRMP1	GD32_REMAP(0U, 8U, 0x3U, 1U)
49 /** TIMER1 (partial remap 2) */
50 #define GD32_TIMER1_PRMP2	GD32_REMAP(0U, 8U, 0x3U, 2U)
51 /** TIMER1 (full remap) */
52 #define GD32_TIMER1_FRMP	GD32_REMAP(0U, 8U, 0x3U, 3U)
53 
54 /** TIMER2 (no remap) */
55 #define GD32_TIMER2_NORMP	GD32_REMAP(0U, 10U, 0x3U, 0U)
56 /** TIMER2 (partial remap) */
57 #define GD32_TIMER2_PRMP	GD32_REMAP(0U, 10U, 0x3U, 2U)
58 /** TIMER2 (full remap) */
59 #define GD32_TIMER2_FRMP	GD32_REMAP(0U, 10U, 0x3U, 3U)
60 
61 /** TIMER3 (no remap) */
62 #define GD32_TIMER3_NORMP	GD32_REMAP(0U, 12U, 0x1U, 0U)
63 /** TIMER3 (remap) */
64 #define GD32_TIMER3_RMP		GD32_REMAP(0U, 12U, 0x1U, 1U)
65 
66 /** TIMER4CH3 (no remap) */
67 #define GD32_TIMER4CH3_NORMP   GD32_REMAP(0U, 16U, 0x1U, 0U)
68 /** TIMER4CH3 (remap) */
69 #define GD32_TIMER4CH3_RMP     GD32_REMAP(0U, 16U, 0x1U, 1U)
70 
71 /** SPI2 (no remap) */
72 #define GD32_SPI2_NORMP		GD32_REMAP(0U, 28U, 0x1U, 0U)
73 /** SPI2 (remap) */
74 #define GD32_SPI2_RMP		GD32_REMAP(0U, 28U, 0x1U, 1U)
75 
76 /** TIMER1_ITR0 (no remap) */
77 #define GD32_TIMER1ITR0_NORMP GD32_REMAP(0U, 29U, 0x1U, 0U)
78 /** TIMER1_ITR0 (remap) */
79 #define GD32_TIMER1ITR0_RMP   GD32_REMAP(0U, 29U, 0x1U, 1U)
80 
81 /** TIMER8 (no remap) */
82 #define GD32_TIMER8_NORMP	GD32_REMAP(1U, 5U, 0x1U, 0U)
83 /** TIMER8 (remap) */
84 #define GD32_TIMER8_RMP		GD32_REMAP(1U, 5U, 0x1U, 1U)
85 
86 /** CTC (no remap) */
87 #define GD32_CTC_NORMP		GD32_REMAP(1U, 11U, 0x3U, 0U)
88 /** CTC (remap) */
89 #define GD32_CTC_PRMP		GD32_REMAP(1U, 11U, 0x3U, 1U)
90 
91 #endif /* GD32E103XX_AFIO_H_ */
92