got interrupt endpoint working
This commit is contained in:
		@@ -167,8 +167,45 @@ bool hcd_edpt_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_endpoint_t const
 | 
			
		||||
{
 | 
			
		||||
  rhport = RHPORT_PIO(rhport);
 | 
			
		||||
 | 
			
		||||
  usb_device[0].event = EVENT_NONE;
 | 
			
		||||
  usb_device[0].address = dev_addr;
 | 
			
		||||
  usb_device_t *device = &usb_device[0];
 | 
			
		||||
 | 
			
		||||
  static uint8_t ep_id_idx; // TODO remove later
 | 
			
		||||
 | 
			
		||||
  if (ep_desc->bEndpointAddress == 0)
 | 
			
		||||
  {
 | 
			
		||||
    device->event = EVENT_NONE;
 | 
			
		||||
    device->address = dev_addr;
 | 
			
		||||
 | 
			
		||||
    ep_id_idx = 0;
 | 
			
		||||
  }else  if (ep_desc->bmAttributes.xfer == TUSB_XFER_INTERRUPT) // only support interrupt endpoint
 | 
			
		||||
  {
 | 
			
		||||
    endpoint_t *ep = NULL;
 | 
			
		||||
    for ( int ep_pool_idx = 0; ep_pool_idx < PIO_USB_EP_POOL_CNT; ep_pool_idx++ )
 | 
			
		||||
    {
 | 
			
		||||
      if ( ep_pool[ep_pool_idx].ep_num == 0 )
 | 
			
		||||
      {
 | 
			
		||||
        ep = &ep_pool[ep_pool_idx];
 | 
			
		||||
        device->endpoint_id[ep_id_idx] = ep_pool_idx + 1;
 | 
			
		||||
        ep_id_idx++;
 | 
			
		||||
 | 
			
		||||
        ep->data_id = 0;
 | 
			
		||||
        ep->ep_num = ep_desc->bEndpointAddress;
 | 
			
		||||
        ep->interval = ep_desc->bInterval;
 | 
			
		||||
        ep->interval_counter = 0;
 | 
			
		||||
        ep->size = (uint8_t) tu_edpt_packet_size(ep_desc);
 | 
			
		||||
        ep->attr = EP_ATTR_INTERRUPT;
 | 
			
		||||
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//    TU_LOG1_INT(device->connected);
 | 
			
		||||
//    TU_LOG1_INT(device->root);
 | 
			
		||||
//    TU_LOG1_INT(device->is_root);
 | 
			
		||||
//    TU_LOG1_INT(device->is_fullspeed);
 | 
			
		||||
//
 | 
			
		||||
//    TU_LOG1_INT(ep_id_idx);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user