diff --git a/core/usbd_core.h b/core/usbd_core.h index 58566826..f03608bc 100644 --- a/core/usbd_core.h +++ b/core/usbd_core.h @@ -56,6 +56,7 @@ enum usbd_event_type { typedef int (*usbd_request_handler)(uint8_t busid, struct usb_setup_packet *setup, uint8_t **data, uint32_t *len); typedef void (*usbd_endpoint_callback)(uint8_t busid, uint8_t ep, uint32_t nbytes); typedef void (*usbd_notify_handler)(uint8_t busid, uint8_t event, void *arg); +typedef void (*usbd_event_handler_t)(uint8_t busid, uint8_t event); struct usbd_endpoint { uint8_t ep_addr; @@ -115,7 +116,7 @@ bool usb_device_is_suspend(uint8_t busid); int usbd_send_remote_wakeup(uint8_t busid); uint8_t usbd_get_ep0_next_state(uint8_t busid); -int usbd_initialize(uint8_t busid, uintptr_t reg_base, void (*event_handler)(uint8_t busid, uint8_t event)); +int usbd_initialize(uint8_t busid, uintptr_t reg_base, usbd_event_handler_t event_handler); int usbd_deinitialize(uint8_t busid); #ifdef __cplusplus diff --git a/core/usbh_core.c b/core/usbh_core.c index dcede253..e26623ae 100644 --- a/core/usbh_core.c +++ b/core/usbh_core.c @@ -1211,5 +1211,7 @@ int lsusb(int argc, char **argv) __WEAK uint8_t usbh_get_hport_active_config_index(struct usbh_hubport *hport) { + ARG_UNUSED(hport); + return 0; // Default to configuration index 0 } \ No newline at end of file diff --git a/core/usbh_core.h b/core/usbh_core.h index 153c8a36..903ce14f 100644 --- a/core/usbh_core.h +++ b/core/usbh_core.h @@ -202,7 +202,7 @@ struct usbh_bus { usb_osal_thread_t hub_thread; usb_osal_mq_t hub_mq; usb_osal_mutex_t mutex; - void (*event_handler)(uint8_t busid, uint8_t hub_index, uint8_t hub_port, uint8_t intf, uint8_t event); + usbh_event_handler_t event_handler; }; static inline void usbh_control_urb_fill(struct usbh_urb *urb, diff --git a/core/usbotg_core.c b/core/usbotg_core.c index fb7e64ce..80cf9708 100644 --- a/core/usbotg_core.c +++ b/core/usbotg_core.c @@ -17,8 +17,8 @@ struct usbotg_core_priv { uint32_t reg_base; bool usbh_initialized; bool usbd_initialized; - void *device_event_callback; - void *host_event_callback; + usbd_event_handler_t device_event_callback; + usbh_event_handler_t host_event_callback; uint8_t current_mode; usb_osal_sem_t change_sem; usb_osal_thread_t change_thread; @@ -31,14 +31,14 @@ static void usbotg_host_initialize(uint8_t busid) } if (g_usbotg_core[busid].usbd_initialized) { - g_usbotg_core[busid].usbd_initialized = false; usbd_deinitialize(busid); + g_usbotg_core[busid].usbd_initialized = false; } USB_LOG_INFO("Switch to HOST mode\r\n"); - usbh_initialize(busid, g_usbotg_core[busid].reg_base); g_usbotg_core[busid].usbh_initialized = true; + usbh_initialize(busid, g_usbotg_core[busid].reg_base); } static void usbotg_device_initialize(uint8_t busid) @@ -48,14 +48,14 @@ static void usbotg_device_initialize(uint8_t busid) } if (g_usbotg_core[busid].usbh_initialized) { - g_usbotg_core[busid].usbh_initialized = false; usbh_deinitialize(busid); + g_usbotg_core[busid].usbh_initialized = false; } USB_LOG_INFO("Switch to DEVICE mode\r\n"); - usbd_initialize(g_usbotg_core[busid].busid, g_usbotg_core[busid].reg_base, g_usbotg_core[busid].device_event_callback); g_usbotg_core[busid].usbd_initialized = true; + usbd_initialize(g_usbotg_core[busid].busid, g_usbotg_core[busid].reg_base, g_usbotg_core[busid].device_event_callback); } static void usbotg_rolechange_thread(void *argument) @@ -75,7 +75,7 @@ static void usbotg_rolechange_thread(void *argument) } } -int usbotg_initialize(uint8_t busid, uint32_t reg_base, void *device_event_callback, void *host_event_callback, uint8_t default_role) +int usbotg_initialize(uint8_t busid, uint32_t reg_base, usbd_event_handler_t device_event_callback, usbh_event_handler_t host_event_callback, uint8_t default_role) { char thread_name[32] = { 0 }; diff --git a/core/usbotg_core.h b/core/usbotg_core.h index 4729d8c8..7eadb878 100644 --- a/core/usbotg_core.h +++ b/core/usbotg_core.h @@ -14,7 +14,7 @@ extern "C" { #include "usbh_core.h" #include "usb_otg.h" -int usbotg_initialize(uint8_t busid, uint32_t reg_base, void *device_event_callback, void *host_event_callback, uint8_t default_role); +int usbotg_initialize(uint8_t busid, uint32_t reg_base, usbd_event_handler_t device_event_callback, usbh_event_handler_t host_event_callback, uint8_t default_role); int usbotg_deinitialize(uint8_t busid); /* called by user */