1 /*
2  * Copyright (C) 2022-2024, Xiaohua Semiconductor Co., Ltd.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2022-04-28     CDT          first version
9  */
10 
11 
12 #ifndef __BOARD_CONFIG_H__
13 #define __BOARD_CONFIG_H__
14 
15 #include <rtconfig.h>
16 #include "hc32_ll.h"
17 #include "drv_config.h"
18 
19 
20 /************************* XTAL port **********************/
21 #define XTAL_PORT                       (GPIO_PORT_H)
22 #define XTAL_IN_PIN                     (GPIO_PIN_01)
23 #define XTAL_OUT_PIN                    (GPIO_PIN_00)
24 
25 /************************ USART port **********************/
26 #if defined(BSP_USING_UART2)
27     #define USART2_RX_PORT                  (GPIO_PORT_A)
28     #define USART2_RX_PIN                   (GPIO_PIN_03)
29     #define USART2_RX_FUNC                  (GPIO_FUNC_37)
30 
31     #define USART2_TX_PORT                  (GPIO_PORT_A)
32     #define USART2_TX_PIN                   (GPIO_PIN_02)
33     #define USART2_TX_FUNC                  (GPIO_FUNC_36)
34 #endif
35 
36 #if defined(BSP_USING_UART4)
37     #define USART4_RX_PORT                  (GPIO_PORT_B)
38     #define USART4_RX_PIN                   (GPIO_PIN_09)
39     #define USART4_RX_FUNC                  (GPIO_FUNC_37)
40 
41     #define USART4_TX_PORT                  (GPIO_PORT_E)
42     #define USART4_TX_PIN                   (GPIO_PIN_06)
43     #define USART4_TX_FUNC                  (GPIO_FUNC_36)
44 #endif
45 
46 /************************ I2C port **********************/
47 #if defined(BSP_USING_I2C1)
48     #define I2C1_SDA_PORT                   (GPIO_PORT_A)
49     #define I2C1_SDA_PIN                    (GPIO_PIN_07)
50     #define I2C1_SDA_FUNC                   (GPIO_FUNC_48)
51 
52     #define I2C1_SCL_PORT                   (GPIO_PORT_C)
53     #define I2C1_SCL_PIN                    (GPIO_PIN_04)
54     #define I2C1_SCL_FUNC                   (GPIO_FUNC_49)
55 #endif
56 
57 #if defined(BSP_USING_I2C3)
58     #define I2C3_SDA_PORT                   (GPIO_PORT_B)
59     #define I2C3_SDA_PIN                    (GPIO_PIN_05)
60     #define I2C3_SDA_FUNC                   (GPIO_FUNC_48)
61 
62     #define I2C3_SCL_PORT                   (GPIO_PORT_E)
63     #define I2C3_SCL_PIN                    (GPIO_PIN_15)
64     #define I2C3_SCL_FUNC                   (GPIO_FUNC_49)
65 #endif
66 
67 /***********  ADC configure *********/
68 #if defined(BSP_USING_ADC1)
69     #define ADC1_CH_PORT                    (GPIO_PORT_C)   /* Default ADC12_IN10 */
70     #define ADC1_CH_PIN                     (GPIO_PIN_00)
71 #endif
72 
73 #if defined(BSP_USING_ADC2)
74     #define ADC2_CH_PORT                    (GPIO_PORT_C)   /* Default ADC12_IN11 */
75     #define ADC2_CH_PIN                     (GPIO_PIN_01)
76 #endif
77 
78 /***********  CAN configure *********/
79 #if defined(BSP_USING_CAN1)
80     #define CAN1_TX_PORT                    (GPIO_PORT_B)
81     #define CAN1_TX_PIN                     (GPIO_PIN_07)
82     #define CAN1_TX_PIN_FUNC                (GPIO_FUNC_50)
83 
84     #define CAN1_RX_PORT                    (GPIO_PORT_B)
85     #define CAN1_RX_PIN                     (GPIO_PIN_06)
86     #define CAN1_RX_PIN_FUNC                (GPIO_FUNC_51)
87 
88     #define CAN1_STB_PORT                   (GPIO_PORT_D)
89     #define CAN1_STB_PIN                    (GPIO_PIN_15)
90 #endif
91 
92 /************************* SPI port ***********************/
93 #if defined(BSP_USING_SPI3)
94     #define SPI3_CS_PORT                (GPIO_PORT_C)
95     #define SPI3_CS_PIN                 (GPIO_PIN_07)
96 
97     #define SPI3_SCK_PORT               (GPIO_PORT_C)
98     #define SPI3_SCK_PIN                (GPIO_PIN_06)
99     #define SPI3_SCK_FUNC               (GPIO_FUNC_43)
100 
101     #define SPI3_MOSI_PORT              (GPIO_PORT_D)
102     #define SPI3_MOSI_PIN               (GPIO_PIN_08)
103     #define SPI3_MOSI_FUNC              (GPIO_FUNC_40)
104 
105     #define SPI3_MISO_PORT              (GPIO_PORT_D)
106     #define SPI3_MISO_PIN               (GPIO_PIN_09)
107     #define SPI3_MISO_FUNC              (GPIO_FUNC_41)
108 
109     #define SPI3_WP_PORT                (GPIO_PORT_D)
110     #define SPI3_WP_PIN                 (GPIO_PIN_10)
111 
112     #define SPI3_HOLD_PORT              (GPIO_PORT_D)
113     #define SPI3_HOLD_PIN               (GPIO_PIN_11)
114 #endif
115 
116 /************************ SDIOC port **********************/
117 #if defined(BSP_USING_SDIO1)
118     #define SDIOC1_CK_PORT                  (GPIO_PORT_C)
119     #define SDIOC1_CK_PIN                   (GPIO_PIN_12)
120     #define SDIOC1_CK_FUNC                  (GPIO_FUNC_9)
121 
122     #define SDIOC1_CMD_PORT                 (GPIO_PORT_D)
123     #define SDIOC1_CMD_PIN                  (GPIO_PIN_02)
124     #define SDIOC1_CMD_FUNC                 (GPIO_FUNC_9)
125 
126     #define SDIOC1_D0_PORT                  (GPIO_PORT_C)
127     #define SDIOC1_D0_PIN                   (GPIO_PIN_08)
128     #define SDIOC1_D0_FUNC                  (GPIO_FUNC_9)
129 
130     #define SDIOC1_D1_PORT                  (GPIO_PORT_C)
131     #define SDIOC1_D1_PIN                   (GPIO_PIN_09)
132     #define SDIOC1_D1_FUNC                  (GPIO_FUNC_9)
133 
134     #define SDIOC1_D2_PORT                  (GPIO_PORT_C)
135     #define SDIOC1_D2_PIN                   (GPIO_PIN_10)
136     #define SDIOC1_D2_FUNC                  (GPIO_FUNC_9)
137 
138     #define SDIOC1_D3_PORT                  (GPIO_PORT_C)
139     #define SDIOC1_D3_PIN                   (GPIO_PIN_11)
140     #define SDIOC1_D3_FUNC                  (GPIO_FUNC_9)
141 #endif
142 
143 /************************ RTC/PM *****************************/
144 #if defined(BSP_USING_RTC) || defined(RT_USING_PM)
145     #if defined(BSP_RTC_USING_XTAL32) || defined(RT_USING_PM)
146         #define XTAL32_PORT                     (GPIO_PORT_C)
147         #define XTAL32_IN_PIN                   (GPIO_PIN_15)
148         #define XTAL32_OUT_PIN                  (GPIO_PIN_14)
149     #endif
150 #endif
151 
152 #if defined(RT_USING_PWM)
153     /***********  PWM_TMRA configure *********/
154     #if defined(BSP_USING_PWM_TMRA_1)
155         #if defined(BSP_USING_PWM_TMRA_1_CH1)
156             #define PWM_TMRA_1_CH1_PORT             (GPIO_PORT_A)
157             #define PWM_TMRA_1_CH1_PIN              (GPIO_PIN_08)
158             #define PWM_TMRA_1_CH1_PIN_FUNC         (GPIO_FUNC_4)
159         #endif
160         #if defined(BSP_USING_PWM_TMRA_1_CH2)
161             #define PWM_TMRA_1_CH2_PORT             (GPIO_PORT_A)
162             #define PWM_TMRA_1_CH2_PIN              (GPIO_PIN_09)
163             #define PWM_TMRA_1_CH2_PIN_FUNC         (GPIO_FUNC_4)
164         #endif
165         #if defined(BSP_USING_PWM_TMRA_1_CH3)
166             #define PWM_TMRA_1_CH3_PORT             (GPIO_PORT_A)
167             #define PWM_TMRA_1_CH3_PIN              (GPIO_PIN_10)
168             #define PWM_TMRA_1_CH3_PIN_FUNC         (GPIO_FUNC_4)
169         #endif
170         #if defined(BSP_USING_PWM_TMRA_1_CH4)
171             #define PWM_TMRA_1_CH4_PORT             (GPIO_PORT_A)
172             #define PWM_TMRA_1_CH4_PIN              (GPIO_PIN_11)
173             #define PWM_TMRA_1_CH4_PIN_FUNC         (GPIO_FUNC_4)
174         #endif
175     #endif
176 
177     /***********  PWM_TMR4 configure *********/
178     #if defined(BSP_USING_PWM_TMR4_1)
179         #if defined(BSP_USING_PWM_TMR4_1_OUH)
180             #define PWM_TMR4_1_OUH_PORT             (GPIO_PORT_E)
181             #define PWM_TMR4_1_OUH_PIN              (GPIO_PIN_09)
182             #define PWM_TMR4_1_OUH_PIN_FUNC         (GPIO_FUNC_2)
183         #endif
184         #if defined(BSP_USING_PWM_TMR4_1_OUL)
185             #define PWM_TMR4_1_OUL_PORT             (GPIO_PORT_E)
186             #define PWM_TMR4_1_OUL_PIN              (GPIO_PIN_08)
187             #define PWM_TMR4_1_OUL_PIN_FUNC         (GPIO_FUNC_2)
188         #endif
189         #if defined(BSP_USING_PWM_TMR4_1_OVH)
190             #define PWM_TMR4_1_OVH_PORT             (GPIO_PORT_E)
191             #define PWM_TMR4_1_OVH_PIN              (GPIO_PIN_11)
192             #define PWM_TMR4_1_OVH_PIN_FUNC         (GPIO_FUNC_2)
193         #endif
194         #if defined(BSP_USING_PWM_TMR4_1_OVL)
195             #define PWM_TMR4_1_OVL_PORT             (GPIO_PORT_E)
196             #define PWM_TMR4_1_OVL_PIN              (GPIO_PIN_10)
197             #define PWM_TMR4_1_OVL_PIN_FUNC         (GPIO_FUNC_2)
198         #endif
199         #if defined(BSP_USING_PWM_TMR4_1_OWH)
200             #define PWM_TMR4_1_OWH_PORT             (GPIO_PORT_E)
201             #define PWM_TMR4_1_OWH_PIN              (GPIO_PIN_13)
202             #define PWM_TMR4_1_OWH_PIN_FUNC         (GPIO_FUNC_2)
203         #endif
204         #if defined(BSP_USING_PWM_TMR4_1_OWL)
205             #define PWM_TMR4_1_OWL_PORT             (GPIO_PORT_E)
206             #define PWM_TMR4_1_OWL_PIN              (GPIO_PIN_12)
207             #define PWM_TMR4_1_OWL_PIN_FUNC         (GPIO_FUNC_2)
208         #endif
209     #endif
210 
211     /***********  PWM_TMR6 configure *********/
212     #if defined(BSP_USING_PWM_TMR6_1)
213         #if defined(BSP_USING_PWM_TMR6_1_A)
214             #define PWM_TMR6_1_A_PORT               (GPIO_PORT_A)
215             #define PWM_TMR6_1_A_PIN                (GPIO_PIN_08)
216             #define PWM_TMR6_1_A_PIN_FUNC           (GPIO_FUNC_3)
217         #endif
218         #if defined(BSP_USING_PWM_TMR6_1_B)
219             #define PWM_TMR6_1_B_PORT               (GPIO_PORT_A)
220             #define PWM_TMR6_1_B_PIN                (GPIO_PIN_07)
221             #define PWM_TMR6_1_B_PIN_FUNC           (GPIO_FUNC_3)
222         #endif
223     #endif
224 
225 #endif
226 
227 #if defined(BSP_USING_INPUT_CAPTURE)
228     #if defined(BSP_USING_INPUT_CAPTURE_TMR6_1)
229         #define INPUT_CAPTURE_TMR6_1_PORT           (GPIO_PORT_A)
230         #define INPUT_CAPTURE_TMR6_1_PIN            (GPIO_PIN_08)
231         #define INPUT_CAPTURE_TMR6_1_PIN_FUNC       (GPIO_FUNC_3)
232     #endif
233     #if defined(BSP_USING_INPUT_CAPTURE_TMR6_2)
234         #define INPUT_CAPTURE_TMR6_2_PORT           (GPIO_PORT_B)
235         #define INPUT_CAPTURE_TMR6_2_PIN            (GPIO_PIN_02)
236         #define INPUT_CAPTURE_TMR6_2_PIN_FUNC       (GPIO_FUNC_3)
237     #endif
238     #if defined(BSP_USING_INPUT_CAPTURE_TMR6_3)
239         #define INPUT_CAPTURE_TMR6_3_PORT           (GPIO_PORT_A)
240         #define INPUT_CAPTURE_TMR6_3_PIN            (GPIO_PIN_12)
241         #define INPUT_CAPTURE_TMR6_3_PIN_FUNC       (GPIO_FUNC_3)
242     #endif
243 #endif
244 
245 #if defined(BSP_USING_USBD) || defined(BSP_USING_USBH)
246     #if defined(BSP_USING_USBFS)
247         /* USBFS Core*/
248         #define USBF_DP_PORT                    (GPIO_PORT_A)
249         #define USBF_DP_PIN                     (GPIO_PIN_12)
250         #define USBF_DM_PORT                    (GPIO_PORT_A)
251         #define USBF_DM_PIN                     (GPIO_PIN_11)
252         #define USBF_VBUS_PORT                  (GPIO_PORT_A)
253         #define USBF_VBUS_PIN                   (GPIO_PIN_09)
254         #define USBF_VBUS_FUNC                  (GPIO_FUNC_10)
255         #define USBF_DRVVBUS_PORT               (GPIO_PORT_B)
256         #define USBF_DRVVBUS_PIN                (GPIO_PIN_08)
257         #define USBF_DRVVBUS_FUNC               (GPIO_FUNC_10)
258     #endif
259 #endif
260 
261 #if defined(BSP_USING_QSPI)
262     #ifndef BSP_QSPI_USING_SOFT_CS
263         /* QSSN */
264         #define QSPI_FLASH_CS_PORT              (GPIO_PORT_C)
265         #define QSPI_FLASH_CS_PIN               (GPIO_PIN_07)
266         #define QSPI_FLASH_CS_FUNC              (GPIO_FUNC_7)
267     #endif
268     /* QSCK */
269     #define QSPI_FLASH_SCK_PORT             (GPIO_PORT_C)
270     #define QSPI_FLASH_SCK_PIN              (GPIO_PIN_06)
271     #define QSPI_FLASH_SCK_FUNC             (GPIO_FUNC_7)
272     /* QSIO0 */
273     #define QSPI_FLASH_IO0_PORT             (GPIO_PORT_D)
274     #define QSPI_FLASH_IO0_PIN              (GPIO_PIN_08)
275     #define QSPI_FLASH_IO0_FUNC             (GPIO_FUNC_7)
276     /* QSIO1 */
277     #define QSPI_FLASH_IO1_PORT             (GPIO_PORT_D)
278     #define QSPI_FLASH_IO1_PIN              (GPIO_PIN_09)
279     #define QSPI_FLASH_IO1_FUNC             (GPIO_FUNC_7)
280     /* QSIO2 */
281     #define QSPI_FLASH_IO2_PORT             (GPIO_PORT_D)
282     #define QSPI_FLASH_IO2_PIN              (GPIO_PIN_10)
283     #define QSPI_FLASH_IO2_FUNC             (GPIO_FUNC_7)
284     /* QSIO3 */
285     #define QSPI_FLASH_IO3_PORT             (GPIO_PORT_D)
286     #define QSPI_FLASH_IO3_PIN              (GPIO_PIN_11)
287     #define QSPI_FLASH_IO3_FUNC             (GPIO_FUNC_7)
288 #endif
289 
290 /*********** TMRA_PULSE_ENCODER configure *********/
291 #if defined(RT_USING_PULSE_ENCODER)
292     #if defined(BSP_USING_TMRA_PULSE_ENCODER)
293         #if defined(BSP_USING_PULSE_ENCODER_TMRA_1)
294             #define PULSE_ENCODER_TMRA_1_A_PORT      (GPIO_PORT_A)
295             #define PULSE_ENCODER_TMRA_1_A_PIN       (GPIO_PIN_08)
296             #define PULSE_ENCODER_TMRA_1_A_PIN_FUNC  (GPIO_FUNC_4)
297             #define PULSE_ENCODER_TMRA_1_B_PORT      (GPIO_PORT_A)
298             #define PULSE_ENCODER_TMRA_1_B_PIN       (GPIO_PIN_09)
299             #define PULSE_ENCODER_TMRA_1_B_PIN_FUNC  (GPIO_FUNC_4)
300         #endif /* BSP_USING_PULSE_ENCODER_TMRA_1 */
301     #endif /* BSP_USING_TMRA_PULSE_ENCODER */
302 
303     #if defined(BSP_USING_TMR6_PULSE_ENCODER)
304         #if defined(BSP_USING_PULSE_ENCODER_TMR6_1)
305             #define PULSE_ENCODER_TMR6_1_A_PORT      (GPIO_PORT_E)
306             #define PULSE_ENCODER_TMR6_1_A_PIN       (GPIO_PIN_09)
307             #define PULSE_ENCODER_TMR6_1_A_PIN_FUNC  (GPIO_FUNC_3)
308             #define PULSE_ENCODER_TMR6_1_B_PORT      (GPIO_PORT_E)
309             #define PULSE_ENCODER_TMR6_1_B_PIN       (GPIO_PIN_08)
310             #define PULSE_ENCODER_TMR6_1_B_PIN_FUNC  (GPIO_FUNC_3)
311         #endif /* BSP_USING_PULSE_ENCODER_TMR6_1 */
312     #endif /* BSP_USING_TMR6_PULSE_ENCODER */
313 #endif /* RT_USING_PULSE_ENCODER */
314 
315 #endif
316 
317