implement dcd_sof_enable() for rp2040
This commit is contained in:
		@@ -247,6 +247,12 @@ static void dcd_rp2040_irq(void)
 | 
				
			|||||||
    uint32_t const status = usb_hw->ints;
 | 
					    uint32_t const status = usb_hw->ints;
 | 
				
			||||||
    uint32_t handled = 0;
 | 
					    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
 | 
					    // 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.
 | 
					    // before closing the EP, the events will be delivered in same order.
 | 
				
			||||||
    if (status & USB_INTS_BUFF_STATUS_BITS)
 | 
					    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;
 | 
					  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
 | 
					/* DCD Endpoint port
 | 
				
			||||||
 *------------------------------------------------------------------*/
 | 
					 *------------------------------------------------------------------*/
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user