1 /*
2  * Copyright (c) 2006-2020, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2023-09-25     XYZboom      fix usb_conf.h not found in nuclei-sdk after 0.3.8
9  */
10 #ifndef __USB_CONF_H__
11 #define __USB_CONF_H__
12 
13 #include <stddef.h>
14 #include "gd32vf103.h"
15 
16 #define USE_USB_FS
17 
18 #ifdef USE_USB_FS
19 #define USB_FS_CORE
20 #endif
21 
22 #ifdef USE_USB_HS
23 #define USB_HS_CORE
24 #endif
25 
26 #ifdef USB_FS_CORE
27 #define RX_FIFO_FS_SIZE                         128
28 #define TX0_FIFO_FS_SIZE                        64
29 #define TX1_FIFO_FS_SIZE                        128
30 #define TX2_FIFO_FS_SIZE                        0
31 #define TX3_FIFO_FS_SIZE                        0
32 #define USB_RX_FIFO_FS_SIZE                     128
33 #define USB_HTX_NPFIFO_FS_SIZE                  96
34 #define USB_HTX_PFIFO_FS_SIZE                   96
35 #endif /* USB_FS_CORE */
36 
37 #ifdef USB_HS_CORE
38 #define RX_FIFO_HS_SIZE                          512
39 #define TX0_FIFO_HS_SIZE                         128
40 #define TX1_FIFO_HS_SIZE                         372
41 #define TX2_FIFO_HS_SIZE                         0
42 #define TX3_FIFO_HS_SIZE                         0
43 #define TX4_FIFO_HS_SIZE                         0
44 #define TX5_FIFO_HS_SIZE                         0
45 
46 #ifdef USE_ULPI_PHY
47 #define USB_OTG_ULPI_PHY_ENABLED
48 #endif
49 
50 #ifdef USE_EMBEDDED_PHY
51 #define USB_OTG_EMBEDDED_PHY_ENABLED
52 #endif
53 
54 #define USB_OTG_HS_INTERNAL_DMA_ENABLED
55 #define USB_OTG_HS_DEDICATED_EP1_ENABLED
56 #endif /* USB_HS_CORE */
57 
58 #ifndef USB_SOF_OUTPUT
59 #define USB_SOF_OUTPUT                                     0
60 #endif
61 
62 #ifndef USB_LOW_POWER
63 #define USB_LOW_POWER                                      0
64 #endif
65 
66 #ifndef USE_HOST_MODE
67 #define  USE_DEVICE_MODE
68 #endif
69 
70 #ifndef USB_FS_CORE
71 #ifndef USB_HS_CORE
72 #error "USB_HS_CORE or USB_FS_CORE should be defined"
73 #endif
74 #endif
75 
76 #ifndef USE_DEVICE_MODE
77 #ifndef USE_HOST_MODE
78 #error "USE_DEVICE_MODE or USE_HOST_MODE should be defined"
79 #endif
80 #endif
81 
82 #ifndef USE_USB_HS
83 #ifndef USE_USB_FS
84 #error "USE_USB_HS or USE_USB_FS should be defined"
85 #endif
86 #endif
87 
88 /****************** C Compilers dependant keywords ****************************/
89 /* In HS mode and when the DMA is used, all variables and data structures dealing
90    with the DMA during the transaction process should be 4-bytes aligned */
91 #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
92 #if defined   (__GNUC__)            /* GNU Compiler */
93 #define __ALIGN_END __attribute__ ((aligned(4)))
94 #define __ALIGN_BEGIN
95 #endif                              /* __GNUC__ */
96 #else
97 #define __ALIGN_BEGIN
98 #define __ALIGN_END
99 #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
100 
101 #endif /* __USB_CONF_H__ */
102 
103