Merge pull request #2181 from Xelus22/ch32v307_SOF

Add SOF interrupt to CH32V307
This commit is contained in:
HiFiPhile 2024-05-09 14:48:42 +02:00 committed by GitHub
commit 1af56a30cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -135,6 +135,16 @@ void dcd_remote_wakeup(uint8_t rhport)
(void) rhport;
}
void dcd_sof_enable(uint8_t rhport, bool en)
{
(void) rhport;
if (en) {
USBHSD->INT_EN |= USBHS_SOF_ACT_EN;
} else {
USBHSD->INT_EN &= ~(USBHS_SOF_ACT_EN);
}
}
void dcd_edpt0_status_complete(uint8_t rhport, tusb_control_request_t const *request) {
(void)rhport;
@ -332,7 +342,10 @@ void dcd_int_handler(uint8_t rhport) {
xfer_ctl_t *xfer = XFER_CTL_BASE(end_num, tu_edpt_dir(endp));
if (rx_token == PID_OUT) {
if (rx_token == PID_SOF) {
dcd_event_sof(rhport, USBHSD->FRAME_NO, true);
} else if (rx_token == PID_OUT) {
uint16_t rx_len = USBHSD->RX_LEN;
receive_packet(xfer, rx_len);