mirror of
https://github.com/Fishwaldo/bl_mcu_sdk.git
synced 2025-03-15 19:31:43 +00:00
[feat][usbd] add support for suspend and resume usbd interrupts
This commit is contained in:
parent
607c24d7fe
commit
3652f3584a
2 changed files with 18 additions and 0 deletions
|
@ -143,6 +143,14 @@ int usbd_ep_start_read(const uint8_t ep, uint8_t *data, uint32_t data_len);
|
|||
|
||||
/* usb dcd irq callback */
|
||||
|
||||
/**
|
||||
* @brief Usb resume irq callback.
|
||||
*/
|
||||
void usbd_event_resume_handler(void);
|
||||
/**
|
||||
* @brief Usb suspend irq callback.
|
||||
*/
|
||||
void usbd_event_suspend_handler(void);
|
||||
/**
|
||||
* @brief Usb reset irq callback.
|
||||
*/
|
||||
|
|
|
@ -530,6 +530,8 @@ int usb_dc_init(void)
|
|||
/* enable rst/tx0/rx0 irq in source group2 */
|
||||
regval = 0xffffffff;
|
||||
regval &= ~USB_MUSBRST_INT;
|
||||
regval &= ~USB_MSUSP_INT;
|
||||
regval &= ~USB_MRESM_INT;
|
||||
regval &= ~USB_MTX0BYTE_INT;
|
||||
regval &= ~USB_MRX0BYTE_INT;
|
||||
putreg32(regval, BLFB_USB_BASE + USB_DEV_MISG2_OFFSET);
|
||||
|
@ -888,6 +890,14 @@ void USBD_IRQHandler(int irq, void *arg)
|
|||
if (dev_intstatus & USB_INT_G2) {
|
||||
subgroup_intstatus = bflb_usb_get_source_group_intstatus(2);
|
||||
|
||||
if (subgroup_intstatus & USB_SUSP_INT) {
|
||||
bflb_usb_source_group_int_clear(2, USB_SUSP_INT);
|
||||
usbd_event_suspend_handler();
|
||||
}
|
||||
if (subgroup_intstatus & USB_RESM_INT) {
|
||||
bflb_usb_source_group_int_clear(2, USB_RESM_INT);
|
||||
usbd_event_resume_handler();
|
||||
}
|
||||
if (subgroup_intstatus & USB_TX0BYTE_INT) {
|
||||
for (uint8_t i = 1; i < 5; i++) {
|
||||
if (bflb_usb_get_tx_zlp_intstatus() & (1 << (i - 1))) {
|
||||
|
|
Loading…
Add table
Reference in a new issue