From 3a7f8b3ac3988eeb653ada6e3efdd7acb68fbe0f Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 11 May 2021 17:32:52 +0700 Subject: [PATCH] separte tusb_init/inited() to tud/tuh init/inited add rhport to tud_init() --- src/device/usbd.c | 14 +++++++------- src/device/usbd.h | 2 +- src/host/usbh.c | 14 +++++++------- src/host/usbh.h | 2 +- src/tusb.c | 27 +++++++++++++++------------ 5 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/device/usbd.c b/src/device/usbd.c index fe18b21b..28023591 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -242,7 +242,7 @@ static inline usbd_class_driver_t const * get_driver(uint8_t drvid) // DCD Event //--------------------------------------------------------------------+ -static bool _initialized = false; +static bool _usbd_initialized = false; // Event queue // OPT_MODE_DEVICE is used by OS NONE for mutex (disable usb isr) @@ -373,13 +373,13 @@ bool tud_connect(void) //--------------------------------------------------------------------+ bool tud_inited(void) { - return _initialized; + return _usbd_initialized; } -bool tud_init (void) +bool tud_init (uint8_t rhport) { // skip if already initialized - if (_initialized) return _initialized; + if (_usbd_initialized) return _usbd_initialized; TU_LOG2("USBD init\r\n"); @@ -410,10 +410,10 @@ bool tud_init (void) } // Init device controller driver - dcd_init(TUD_OPT_RHPORT); - dcd_int_enable(TUD_OPT_RHPORT); + dcd_init(rhport); + dcd_int_enable(rhport); - _initialized = true; + _usbd_initialized = true; return true; } diff --git a/src/device/usbd.h b/src/device/usbd.h index 10fbe0bf..c0bec956 100644 --- a/src/device/usbd.h +++ b/src/device/usbd.h @@ -41,7 +41,7 @@ extern "C" { //--------------------------------------------------------------------+ // Init device stack -bool tud_init (void); +bool tud_init (uint8_t rhport); // Check if device stack is already initialized bool tud_inited(void); diff --git a/src/host/usbh.c b/src/host/usbh.c index 411945fd..5132d7e9 100644 --- a/src/host/usbh.c +++ b/src/host/usbh.c @@ -121,7 +121,7 @@ enum { CONFIG_NUM = 1 }; // default to use configuration 1 // INTERNAL OBJECT & FUNCTION DECLARATION //--------------------------------------------------------------------+ -static bool _initialized = false; +static bool _usbh_initialized = false; // including zero-address CFG_TUSB_MEM_SECTION usbh_device_t _usbh_devices[CFG_TUSB_HOST_DEVICE_MAX+1]; @@ -175,13 +175,13 @@ void osal_task_delay(uint32_t msec) bool tuh_inited(void) { - return _initialized; + return _usbh_initialized; } -bool tuh_init(void) +bool tuh_init(uint8_t rhport) { // skip if already initialized - if (_initialized) return _initialized; + if (_usbh_initialized) return _usbh_initialized; TU_LOG2("USBH init\r\n"); @@ -212,10 +212,10 @@ bool tuh_init(void) usbh_class_drivers[drv_id].init(); } - TU_ASSERT(hcd_init(TUH_OPT_RHPORT)); - hcd_int_enable(TUH_OPT_RHPORT); + TU_ASSERT(hcd_init(rhport)); + hcd_int_enable(rhport); - _initialized = true; + _usbh_initialized = true; return true; } diff --git a/src/host/usbh.h b/src/host/usbh.h index 732a4b66..809ffd40 100644 --- a/src/host/usbh.h +++ b/src/host/usbh.h @@ -76,7 +76,7 @@ typedef bool (*tuh_control_complete_cb_t)(uint8_t dev_addr, tusb_control_request //--------------------------------------------------------------------+ // Init host stack -bool tuh_init(void); +bool tuh_init(uint8_t rhport); // Check if host stack is already initialized bool tuh_inited(void); diff --git a/src/tusb.c b/src/tusb.c index 31452e89..0350fa1d 100644 --- a/src/tusb.c +++ b/src/tusb.c @@ -30,8 +30,6 @@ #include "tusb.h" -static bool _initialized = false; - // TODO clean up #if TUSB_OPT_DEVICE_ENABLED #include "device/usbd_pvt.h" @@ -39,25 +37,30 @@ static bool _initialized = false; bool tusb_init(void) { - // skip if already initialized - if (_initialized) return true; +#if TUSB_OPT_DEVICE_ENABLED + TU_ASSERT ( tud_init(TUD_OPT_RHPORT) ); // init device stack +#endif #if TUSB_OPT_HOST_ENABLED - TU_ASSERT( tuh_init() ); // init host stack + TU_ASSERT( tuh_init(TUH_OPT_RHPORT) ); // init host stack #endif -#if TUSB_OPT_DEVICE_ENABLED - TU_ASSERT ( tud_init() ); // init device stack -#endif - - _initialized = true; - return true; } bool tusb_inited(void) { - return _initialized; + bool ret = false; + +#if TUSB_OPT_DEVICE_ENABLED + ret = ret || tud_inited(); +#endif + +#if TUSB_OPT_HOST_ENABLED + ret = ret || tuh_inited(); +#endif + + return ret; } /*------------------------------------------------------------------*/