|
28 | 28 | #ifndef USB_CH32_USBFS_REG_H
|
29 | 29 | #define USB_CH32_USBFS_REG_H
|
30 | 30 |
|
31 |
| -#if CFG_TUSB_MCU == OPT_MCU_CH32V307 |
32 |
| - #include <ch32v30x.h> |
33 |
| - #define USBHD_IRQn OTG_FS_IRQn |
| 31 | +// https://github.com/openwch/ch32v307/pull/90 |
| 32 | +// https://github.com/openwch/ch32v20x/pull/12 |
| 33 | +#ifdef __GNUC__ |
| 34 | +#pragma GCC diagnostic push |
| 35 | +#pragma GCC diagnostic ignored "-Wstrict-prototypes" |
| 36 | +#endif |
| 37 | + |
| 38 | +#if CFG_TUSB_MCU == OPT_MCU_CH32F20X |
| 39 | + #include <ch32f20x.h> |
| 40 | +#elif CFG_TUSB_MCU == OPT_MCU_CH32V103 |
| 41 | + #include <ch32v10x.h> |
| 42 | + typedef struct |
| 43 | + { |
| 44 | + __IO uint8_t BASE_CTRL; |
| 45 | + __IO uint8_t UDEV_CTRL; |
| 46 | + __IO uint8_t INT_EN; |
| 47 | + __IO uint8_t DEV_ADDR; |
| 48 | + __IO uint8_t Reserve0; |
| 49 | + __IO uint8_t MIS_ST; |
| 50 | + __IO uint8_t INT_FG; |
| 51 | + __IO uint8_t INT_ST; |
| 52 | + __IO uint32_t RX_LEN; |
| 53 | + __IO uint8_t UEP4_1_MOD; |
| 54 | + __IO uint8_t UEP2_3_MOD; |
| 55 | + __IO uint8_t UEP5_6_MOD; |
| 56 | + __IO uint8_t UEP7_MOD; |
| 57 | + __IO uint32_t UEP0_DMA; |
| 58 | + __IO uint32_t UEP1_DMA; |
| 59 | + __IO uint32_t UEP2_DMA; |
| 60 | + __IO uint32_t UEP3_DMA; |
| 61 | + __IO uint32_t UEP4_DMA; |
| 62 | + __IO uint32_t UEP5_DMA; |
| 63 | + __IO uint32_t UEP6_DMA; |
| 64 | + __IO uint32_t UEP7_DMA; |
| 65 | + __IO uint16_t UEP0_TX_LEN; |
| 66 | + __IO uint8_t UEP0_TX_CTRL; |
| 67 | + __IO uint8_t UEP0_RX_CTRL; |
| 68 | + __IO uint16_t UEP1_TX_LEN; |
| 69 | + __IO uint8_t UEP1_TX_CTRL; |
| 70 | + __IO uint8_t UEP1_RX_CTRL; |
| 71 | + __IO uint16_t UEP2_TX_LEN; |
| 72 | + __IO uint8_t UEP2_TX_CTRL; |
| 73 | + __IO uint8_t UEP2_RX_CTRL; |
| 74 | + __IO uint16_t UEP3_TX_LEN; |
| 75 | + __IO uint8_t UEP3_TX_CTRL; |
| 76 | + __IO uint8_t UEP3_RX_CTRL; |
| 77 | + __IO uint16_t UEP4_TX_LEN; |
| 78 | + __IO uint8_t UEP4_TX_CTRL; |
| 79 | + __IO uint8_t UEP4_RX_CTRL; |
| 80 | + __IO uint16_t UEP5_TX_LEN; |
| 81 | + __IO uint8_t UEP5_TX_CTRL; |
| 82 | + __IO uint8_t UEP5_RX_CTRL; |
| 83 | + __IO uint16_t UEP6_TX_LEN; |
| 84 | + __IO uint8_t UEP6_TX_CTRL; |
| 85 | + __IO uint8_t UEP6_RX_CTRL; |
| 86 | + __IO uint16_t UEP7_TX_LEN; |
| 87 | + __IO uint8_t UEP7_TX_CTRL; |
| 88 | + __IO uint8_t UEP7_RX_CTRL; |
| 89 | + __IO uint32_t Reserve1; |
| 90 | + __IO uint32_t OTG_CR; |
| 91 | + __IO uint32_t OTG_SR; |
| 92 | + } USBOTG_FS_TypeDef; |
34 | 93 |
|
| 94 | + #define USBOTG_FS ((USBOTG_FS_TypeDef *) 0x40023400) |
35 | 95 | #elif CFG_TUSB_MCU == OPT_MCU_CH32V20X
|
36 | 96 | #include <ch32v20x.h>
|
| 97 | +#elif CFG_TUSB_MCU == OPT_MCU_CH32V307 |
| 98 | + #include <ch32v30x.h> |
| 99 | + #define USBHD_IRQn OTG_FS_IRQn |
| 100 | +#endif |
37 | 101 |
|
38 |
| -#elif CFG_TUSB_MCU == OPT_MCU_CH32F20X |
39 |
| - #include <ch32f20x.h> |
| 102 | +#ifdef __GNUC__ |
| 103 | +#pragma GCC diagnostic pop |
40 | 104 | #endif
|
41 | 105 |
|
42 | 106 | // CTRL
|
|
0 commit comments