diff options
| author | Ha Thach <[email protected]> | 2022-05-31 22:25:14 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-05-31 22:25:14 +0700 |
| commit | fdeac8508be5cdd95966422d1e776604efbc9b3f (patch) | |
| tree | e3e1ddf37ebd5500145ac610239f2d5baeceb6fa /src/portable/raspberrypi | |
| parent | ab7c23a787a024dcaadb698c9d7533ad85209cd7 (diff) | |
| parent | e384d16d576089daa3a5c993ead06cffb7a50cbe (diff) | |
Merge pull request #1381 from hathach/add-sof-isr
Add SOF IRQ Handler
Diffstat (limited to 'src/portable/raspberrypi')
| -rw-r--r-- | src/portable/raspberrypi/rp2040/dcd_rp2040.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/portable/raspberrypi/rp2040/dcd_rp2040.c b/src/portable/raspberrypi/rp2040/dcd_rp2040.c index 2d77ad4f9..48793b0d0 100644 --- a/src/portable/raspberrypi/rp2040/dcd_rp2040.c +++ b/src/portable/raspberrypi/rp2040/dcd_rp2040.c @@ -247,6 +247,12 @@ static void dcd_rp2040_irq(void) uint32_t const status = usb_hw->ints; uint32_t handled = 0; + if (status & USB_INTF_DEV_SOF_BITS) + { + handled |= USB_INTF_DEV_SOF_BITS; + dcd_event_sof(0, usb_hw->sof_rd & USB_SOF_RD_BITS, true); + } + // xfer events are handled before setup req. So if a transfer completes immediately // before closing the EP, the events will be delivered in same order. if (status & USB_INTS_BUFF_STATUS_BITS) @@ -424,6 +430,23 @@ void dcd_connect(__unused uint8_t rhport) usb_hw_set->sie_ctrl = USB_SIE_CTRL_PULLUP_EN_BITS; } +void dcd_sof_enable(uint8_t rhport, bool en) +{ + (void) rhport; + + uint32_t inte = usb_hw->inte; + + if (en) + { + inte |= USB_INTS_DEV_SOF_BITS; + }else + { + inte &= ~USB_INTS_DEV_SOF_BITS; + } + + usb_hw->inte = inte; +} + /*------------------------------------------------------------------*/ /* DCD Endpoint port *------------------------------------------------------------------*/ |
