summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2024-10-11 15:21:32 +0700
committerhathach <[email protected]>2024-10-11 15:31:49 +0700
commitd997f0071ea5d2d07e340d183fffb97e09526773 (patch)
treed796bbf0db3b860f506554029f4fe019ed892936
parent92602b9de3675c2d3e240bcd0838082e1a07b13b (diff)
change dcd_init() to take rhport struct
-rw-r--r--.pre-commit-config.yaml15
-rw-r--r--src/device/dcd.h2
-rw-r--r--src/device/usbd.c2
-rw-r--r--src/portable/bridgetek/ft9xx/dcd_ft9xx.c4
-rw-r--r--src/portable/chipidea/ci_fs/dcd_ci_fs.c4
-rw-r--r--src/portable/chipidea/ci_hs/dcd_ci_hs.c4
-rw-r--r--src/portable/dialog/da146xx/dcd_da146xx.c4
-rw-r--r--src/portable/espressif/esp32sx/dcd_esp32sx.c4
-rw-r--r--src/portable/mentor/musb/dcd_musb.c3
-rw-r--r--src/portable/microchip/pic/dcd_pic.c4
-rw-r--r--src/portable/microchip/pic32mz/dcd_pic32mz.c4
-rw-r--r--src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c4
-rw-r--r--src/portable/nordic/nrf5x/dcd_nrf5x.c3
-rw-r--r--src/portable/nuvoton/nuc120/dcd_nuc120.c4
-rw-r--r--src/portable/nuvoton/nuc121/dcd_nuc121.c4
-rw-r--r--src/portable/nuvoton/nuc505/dcd_nuc505.c4
-rw-r--r--src/portable/nxp/khci/dcd_khci.c4
-rw-r--r--src/portable/nxp/lpc17_40/dcd_lpc17_40.c4
-rw-r--r--src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c4
-rw-r--r--src/portable/raspberrypi/rp2040/dcd_rp2040.c3
-rw-r--r--src/portable/renesas/rusb2/dcd_rusb2.c4
-rw-r--r--src/portable/sony/cxd56/dcd_cxd56.c4
-rw-r--r--src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c3
-rw-r--r--src/portable/sunxi/dcd_sunxi_musb.c4
-rw-r--r--src/portable/synopsys/dwc2/dcd_dwc2.c3
-rw-r--r--src/portable/ti/msp430x5xx/dcd_msp430x5xx.c12
-rw-r--r--src/portable/valentyusb/eptri/dcd_eptri.c4
-rw-r--r--src/portable/wch/dcd_ch32_usbfs.c3
-rw-r--r--src/portable/wch/dcd_ch32_usbhs.c3
-rw-r--r--test/unit-test/test/device/msc/test_msc_device.c7
-rw-r--r--test/unit-test/test/device/usbd/test_usbd.c10
31 files changed, 83 insertions, 58 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index bba217cc9..21da285c1 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -42,3 +42,18 @@ repos:
pass_filenames: false
types_or: [c, header]
language: system
+
+ - id: build-fuzzer
+ name: build-fuzzer
+ files: ^(src/|test/fuzz/)
+ language: system
+ types_or: [c, header]
+ entry: |
+ export CC=clang
+ export CXX=clang++
+ fuzz_harness=$(ls -d test/fuzz/device/*/)
+ for h in $fuzz_harness
+ do
+ make -C $h get-deps
+ make -C $h all
+ done
diff --git a/src/device/dcd.h b/src/device/dcd.h
index 3ef5188fc..8fa7b8bc1 100644
--- a/src/device/dcd.h
+++ b/src/device/dcd.h
@@ -108,7 +108,7 @@ void dcd_dcache_clean_invalidate(void const* addr, uint32_t data_size) TU_ATTR_W
//--------------------------------------------------------------------+
// Initialize controller to device mode
-void dcd_init(uint8_t rhport);
+void dcd_init(const tusb_rhport_init_t* rh_init);
// Deinitialize controller, unset device mode.
bool dcd_deinit(uint8_t rhport);
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 7e35c976c..12f95ab40 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -490,7 +490,7 @@ bool tud_rhport_init(const tusb_rhport_init_t* rh_init) {
_usbd_rhport = rh_init->rhport;
// Init device controller driver
- dcd_init(rh_init->rhport);
+ dcd_init(rh_init);
dcd_int_enable(rh_init->rhport);
return true;
diff --git a/src/portable/bridgetek/ft9xx/dcd_ft9xx.c b/src/portable/bridgetek/ft9xx/dcd_ft9xx.c
index f02415904..f4b236da6 100644
--- a/src/portable/bridgetek/ft9xx/dcd_ft9xx.c
+++ b/src/portable/bridgetek/ft9xx/dcd_ft9xx.c
@@ -517,8 +517,8 @@ static uint16_t _ft9xx_dusb_out(uint8_t ep_number, uint8_t *buffer, uint16_t len
*------------------------------------------------------------------*/
// Initialize controller to device mode
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
TU_LOG2("FT9xx initialisation\r\n");
_dcd_ft9xx_attach();
diff --git a/src/portable/chipidea/ci_fs/dcd_ci_fs.c b/src/portable/chipidea/ci_fs/dcd_ci_fs.c
index 02f813ab5..315e9a86d 100644
--- a/src/portable/chipidea/ci_fs/dcd_ci_fs.c
+++ b/src/portable/chipidea/ci_fs/dcd_ci_fs.c
@@ -267,8 +267,8 @@ static void process_bus_resume(uint8_t rhport)
/*------------------------------------------------------------------*/
/* Device API
*------------------------------------------------------------------*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
// save crystal-less setting (if available)
diff --git a/src/portable/chipidea/ci_hs/dcd_ci_hs.c b/src/portable/chipidea/ci_hs/dcd_ci_hs.c
index 93e1d78dd..bdb7abe41 100644
--- a/src/portable/chipidea/ci_hs/dcd_ci_hs.c
+++ b/src/portable/chipidea/ci_hs/dcd_ci_hs.c
@@ -234,8 +234,8 @@ static void bus_reset(uint8_t rhport)
dcd_dcache_clean_invalidate(&_dcd_data, sizeof(dcd_data_t));
}
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
tu_memclr(&_dcd_data, sizeof(dcd_data_t));
ci_hs_regs_t* dcd_reg = CI_HS_REG(rhport);
diff --git a/src/portable/dialog/da146xx/dcd_da146xx.c b/src/portable/dialog/da146xx/dcd_da146xx.c
index d1e85c2df..05cebea0b 100644
--- a/src/portable/dialog/da146xx/dcd_da146xx.c
+++ b/src/portable/dialog/da146xx/dcd_da146xx.c
@@ -804,8 +804,8 @@ static void handle_ep0_nak(void)
/*------------------------------------------------------------------*/
/* Controller API
*------------------------------------------------------------------*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
_dcd.init_called = true;
diff --git a/src/portable/espressif/esp32sx/dcd_esp32sx.c b/src/portable/espressif/esp32sx/dcd_esp32sx.c
index 61911ab4c..3d4757f03 100644
--- a/src/portable/espressif/esp32sx/dcd_esp32sx.c
+++ b/src/portable/espressif/esp32sx/dcd_esp32sx.c
@@ -172,8 +172,8 @@ static void enum_done_processing(void)
/*------------------------------------------------------------------*/
/* Controller API
*------------------------------------------------------------------*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
ESP_LOGV(TAG, "DCD init - Start");
// A. Disconnect
diff --git a/src/portable/mentor/musb/dcd_musb.c b/src/portable/mentor/musb/dcd_musb.c
index a40b3dc07..a8437ad5b 100644
--- a/src/portable/mentor/musb/dcd_musb.c
+++ b/src/portable/mentor/musb/dcd_musb.c
@@ -582,7 +582,8 @@ void print_musb_info(musb_regs_t* musb_regs) {
}
#endif
-void dcd_init(uint8_t rhport) {
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
musb_regs_t* musb_regs = MUSB_REGS(rhport);
#if CFG_TUSB_DEBUG >= MUSB_DEBUG
diff --git a/src/portable/microchip/pic/dcd_pic.c b/src/portable/microchip/pic/dcd_pic.c
index ccc27c3c9..3ee0ab6d5 100644
--- a/src/portable/microchip/pic/dcd_pic.c
+++ b/src/portable/microchip/pic/dcd_pic.c
@@ -470,8 +470,8 @@ static void process_bus_resume(uint8_t rhport)
/*------------------------------------------------------------------*/
/* Device API
*------------------------------------------------------------------*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
intr_disable(rhport);
intr_clear(rhport);
diff --git a/src/portable/microchip/pic32mz/dcd_pic32mz.c b/src/portable/microchip/pic32mz/dcd_pic32mz.c
index 9ad755670..004990046 100644
--- a/src/portable/microchip/pic32mz/dcd_pic32mz.c
+++ b/src/portable/microchip/pic32mz/dcd_pic32mz.c
@@ -120,8 +120,8 @@ static ep0_stage_t ep0_get_stage(void)
/*------------------------------------------------------------------*/
/* Controller API
*------------------------------------------------------------------*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
// Disable endpoint interrupts for now
USB_REGS->INTRRXEbits.w = 0;
USB_REGS->INTRTXEbits.w = 0;
diff --git a/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c b/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c
index d5c0daaeb..4117ab45f 100644
--- a/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c
+++ b/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c
@@ -245,8 +245,8 @@ static void process_bus_active(uint8_t rhport)
/*------------------------------------------------------------------*/
/* Device API
*------------------------------------------------------------------*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
tu_memclr(&_dcd, sizeof(_dcd));
diff --git a/src/portable/nordic/nrf5x/dcd_nrf5x.c b/src/portable/nordic/nrf5x/dcd_nrf5x.c
index a63e442f3..c1084c20c 100644
--- a/src/portable/nordic/nrf5x/dcd_nrf5x.c
+++ b/src/portable/nordic/nrf5x/dcd_nrf5x.c
@@ -230,7 +230,8 @@ static void xact_in_dma(uint8_t epnum) {
//--------------------------------------------------------------------+
// Controller API
//--------------------------------------------------------------------+
-void dcd_init(uint8_t rhport) {
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
TU_LOG2("dcd init\r\n");
(void) rhport;
}
diff --git a/src/portable/nuvoton/nuc120/dcd_nuc120.c b/src/portable/nuvoton/nuc120/dcd_nuc120.c
index fb12122e0..c9e8d86fd 100644
--- a/src/portable/nuvoton/nuc120/dcd_nuc120.c
+++ b/src/portable/nuvoton/nuc120/dcd_nuc120.c
@@ -201,8 +201,8 @@ static const uint32_t enabled_irqs = USBD_INTSTS_FLDET_STS_Msk | USBD_INTSTS_BUS
NUC100/NUC120 TinyUSB API driver implementation
*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
USBD->ATTR = 0x7D0;
diff --git a/src/portable/nuvoton/nuc121/dcd_nuc121.c b/src/portable/nuvoton/nuc121/dcd_nuc121.c
index 873b1b7ef..78c65a91c 100644
--- a/src/portable/nuvoton/nuc121/dcd_nuc121.c
+++ b/src/portable/nuvoton/nuc121/dcd_nuc121.c
@@ -209,8 +209,8 @@ enum {
NUC121/NUC125/NUC126 TinyUSB API driver implementation
*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
#ifdef SUPPORT_LPM
diff --git a/src/portable/nuvoton/nuc505/dcd_nuc505.c b/src/portable/nuvoton/nuc505/dcd_nuc505.c
index 3a92c9794..caeb89a0a 100644
--- a/src/portable/nuvoton/nuc505/dcd_nuc505.c
+++ b/src/portable/nuvoton/nuc505/dcd_nuc505.c
@@ -279,8 +279,8 @@ static const uint32_t enabled_irqs = USBD_GINTEN_USBIEN_Msk | \
NUC505 TinyUSB API driver implementation
*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
/* configure interrupts in their initial state; BUSINTEN and CEPINTEN will be subsequently and dynamically re-written as needed */
diff --git a/src/portable/nxp/khci/dcd_khci.c b/src/portable/nxp/khci/dcd_khci.c
index ef61146aa..2d08e84a5 100644
--- a/src/portable/nxp/khci/dcd_khci.c
+++ b/src/portable/nxp/khci/dcd_khci.c
@@ -265,8 +265,8 @@ static void process_bus_resume(uint8_t rhport)
/*------------------------------------------------------------------*/
/* Device API
*------------------------------------------------------------------*/
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
// save crystal-less setting (if available)
diff --git a/src/portable/nxp/lpc17_40/dcd_lpc17_40.c b/src/portable/nxp/lpc17_40/dcd_lpc17_40.c
index 75b29faf3..e28b27919 100644
--- a/src/portable/nxp/lpc17_40/dcd_lpc17_40.c
+++ b/src/portable/nxp/lpc17_40/dcd_lpc17_40.c
@@ -167,8 +167,8 @@ static void bus_reset(void)
tu_memclr(&_dcd, sizeof(dcd_data_t));
}
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
//------------- user manual 11.13 usb device controller initialization -------------//
diff --git a/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c b/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c
index cc18cf59b..06a82c4e7 100644
--- a/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c
+++ b/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c
@@ -289,8 +289,8 @@ static void edpt_reset_all(uint8_t rhport)
}
prepare_setup_packet(rhport);
}
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
edpt_reset_all(rhport);
dcd_registers_t* dcd_reg = _dcd_controller[rhport].regs;
diff --git a/src/portable/raspberrypi/rp2040/dcd_rp2040.c b/src/portable/raspberrypi/rp2040/dcd_rp2040.c
index bc0deee32..9473d3bd8 100644
--- a/src/portable/raspberrypi/rp2040/dcd_rp2040.c
+++ b/src/portable/raspberrypi/rp2040/dcd_rp2040.c
@@ -369,7 +369,8 @@ static void __tusb_irq_path_func(dcd_rp2040_irq)(void) {
#define PICO_SHARED_IRQ_HANDLER_HIGHEST_ORDER_PRIORITY 0xff
#endif
-void dcd_init(uint8_t rhport) {
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
assert(rhport == 0);
TU_LOG(2, "Chip Version B%u\r\n", rp2040_chip_version());
diff --git a/src/portable/renesas/rusb2/dcd_rusb2.c b/src/portable/renesas/rusb2/dcd_rusb2.c
index 7c6044ca0..e8e1bf041 100644
--- a/src/portable/renesas/rusb2/dcd_rusb2.c
+++ b/src/portable/renesas/rusb2/dcd_rusb2.c
@@ -657,8 +657,8 @@ static void enable_interrupt(uint32_t pswi)
}
#endif
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
rusb2_reg_t* rusb = RUSB2_REG(rhport);
rusb2_module_start(rhport, true);
diff --git a/src/portable/sony/cxd56/dcd_cxd56.c b/src/portable/sony/cxd56/dcd_cxd56.c
index 41814370e..fe1c42249 100644
--- a/src/portable/sony/cxd56/dcd_cxd56.c
+++ b/src/portable/sony/cxd56/dcd_cxd56.c
@@ -201,8 +201,8 @@ static void _dcd_resume(FAR struct usbdevclass_driver_s *driver, FAR struct usbd
dcd_event_bus_signal(0, DCD_EVENT_RESUME, true);
}
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
usbdcd_driver.usbdevclass_driver.speed = USB_SPEED_HIGH;
diff --git a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
index 6eea1ab32..8e9bb0b30 100644
--- a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
+++ b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
@@ -184,7 +184,8 @@ TU_ATTR_ALWAYS_INLINE static inline xfer_ctl_t *xfer_ctl_ptr(uint8_t epnum, uint
//--------------------------------------------------------------------+
// Controller API
//--------------------------------------------------------------------+
-void dcd_init(uint8_t rhport) {
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
// Follow the RM mentions to use a special ordering of PDWN and FRES
for (volatile uint32_t i = 0; i < 200; i++) { // should be a few us
asm("NOP");
diff --git a/src/portable/sunxi/dcd_sunxi_musb.c b/src/portable/sunxi/dcd_sunxi_musb.c
index 6f36ad441..d7bf1068a 100644
--- a/src/portable/sunxi/dcd_sunxi_musb.c
+++ b/src/portable/sunxi/dcd_sunxi_musb.c
@@ -867,8 +867,8 @@ static void usb_isr_handler(void) {
dcd_int_handler(0);
}
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
dcd_disconnect(rhport);
USBC_HardwareReset();
USBC_PhyConfig();
diff --git a/src/portable/synopsys/dwc2/dcd_dwc2.c b/src/portable/synopsys/dwc2/dcd_dwc2.c
index 1ba3507ef..580960e24 100644
--- a/src/portable/synopsys/dwc2/dcd_dwc2.c
+++ b/src/portable/synopsys/dwc2/dcd_dwc2.c
@@ -650,9 +650,10 @@ static bool check_dwc2(dwc2_regs_t* dwc2) {
return true;
}
-void dcd_init(uint8_t rhport) {
+void dcd_init(const tusb_rhport_init_t* rh_init) {
// Programming model begins in the last section of the chapter on the USB
// peripheral in each Reference Manual.
+ const uint8_t rhport = rh_init->rhport;
dwc2_regs_t* dwc2 = DWC2_REG(rhport);
// Check Synopsys ID register, failed if controller clock/power is not enabled
diff --git a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
index 6b60bc657..120d5c4b9 100644
--- a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
+++ b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
@@ -130,9 +130,8 @@ static void enable_functional_reset(const bool enable)
/*------------------------------------------------------------------*/
/* Controller API
*------------------------------------------------------------------*/
-void dcd_init (uint8_t rhport)
-{
- (void) rhport;
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ (void) rh_init;
USBKEYPID = USBKEY;
@@ -699,7 +698,12 @@ static void handle_bus_power_event(void *param) {
// A successful lock is indicated by all PLL-related interrupt flags being cleared.
if(!USBPLLIR) {
- dcd_init(0); // Re-initialize the USB module.
+ const tusb_rhport_init_t rhport_init = {
+ .rhport = 0,
+ .role = TUSB_ROLE_DEVICE,
+ .speed = TUSB_SPEED_FULL
+ };
+ dcd_init(&rhport_init); // Re-initialize the USB module.
}
} else { // Event caused by removal of bus power.
USBPWRCTL |= VBONIE; // Enable bus-power-applied interrupt.
diff --git a/src/portable/valentyusb/eptri/dcd_eptri.c b/src/portable/valentyusb/eptri/dcd_eptri.c
index 8f40e3349..da7a5a81a 100644
--- a/src/portable/valentyusb/eptri/dcd_eptri.c
+++ b/src/portable/valentyusb/eptri/dcd_eptri.c
@@ -336,8 +336,8 @@ static void dcd_reset(void)
}
// Initializes the USB peripheral for device mode and enables it.
-void dcd_init(uint8_t rhport)
-{
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
usb_pullup_out_write(0);
diff --git a/src/portable/wch/dcd_ch32_usbfs.c b/src/portable/wch/dcd_ch32_usbfs.c
index 9ed370b40..4a7ad704b 100644
--- a/src/portable/wch/dcd_ch32_usbfs.c
+++ b/src/portable/wch/dcd_ch32_usbfs.c
@@ -123,7 +123,8 @@ static void update_out(uint8_t rhport, uint8_t ep, size_t rx_len) {
}
/* public functions */
-void dcd_init(uint8_t rhport) {
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
// init registers
USBOTG_FS->BASE_CTRL = USBFS_CTRL_SYS_CTRL | USBFS_CTRL_INT_BUSY | USBFS_CTRL_DMA_EN;
USBOTG_FS->UDEV_CTRL = USBFS_UDEV_CTRL_PD_DIS | USBFS_UDEV_CTRL_PORT_EN;
diff --git a/src/portable/wch/dcd_ch32_usbhs.c b/src/portable/wch/dcd_ch32_usbhs.c
index 622f9c508..77ebc378c 100644
--- a/src/portable/wch/dcd_ch32_usbhs.c
+++ b/src/portable/wch/dcd_ch32_usbhs.c
@@ -131,7 +131,8 @@ static void xfer_data_packet(uint8_t ep_num, tusb_dir_t ep_dir, xfer_ctl_t* xfer
ep_set_response_and_toggle(ep_num, ep_dir, USBHS_EP_R_RES_ACK);
}
-void dcd_init(uint8_t rhport) {
+void dcd_init(const tusb_rhport_init_t* rh_init) {
+ const uint8_t rhport = rh_init->rhport;
(void) rhport;
memset(&xfer_status, 0, sizeof(xfer_status));
diff --git a/test/unit-test/test/device/msc/test_msc_device.c b/test/unit-test/test/device/msc/test_msc_device.c
index 3444d81c5..4033bf158 100644
--- a/test/unit-test/test/device/msc/test_msc_device.c
+++ b/test/unit-test/test/device/msc/test_msc_device.c
@@ -197,15 +197,14 @@ void setUp(void)
dcd_int_disable_Ignore();
dcd_int_enable_Ignore();
- if ( !tud_inited() )
- {
- dcd_init_Expect(rhport);
-
+ if ( !tud_inited() ) {
tusb_rhport_init_t dev_init = {
.rhport = 0,
.role = TUSB_ROLE_DEVICE,
.speed = TUSB_SPEED_AUTO
};
+
+ dcd_init_Expect(&dev_init);
tusb_init(&dev_init);
}
diff --git a/test/unit-test/test/device/usbd/test_usbd.c b/test/unit-test/test/device/usbd/test_usbd.c
index faa6b159e..8f900f656 100644
--- a/test/unit-test/test/device/usbd/test_usbd.c
+++ b/test/unit-test/test/device/usbd/test_usbd.c
@@ -124,16 +124,16 @@ void setUp(void)
dcd_int_disable_Ignore();
dcd_int_enable_Ignore();
- if ( !tud_inited() )
- {
- mscd_init_Expect();
- dcd_init_Expect(rhport);
-
+ if ( !tud_inited() ) {
tusb_rhport_init_t dev_init = {
.rhport = 0,
.role = TUSB_ROLE_DEVICE,
.speed = TUSB_SPEED_AUTO
};
+
+ mscd_init_Expect();
+ dcd_init_Expect(&dev_init);
+
tusb_init(&dev_init);
}
}