static void cdc_set_config(usbd_device *usbd_dev, uint16_t wValue) { (void)wValue; usbd_ep_setup(usbd_dev, ENDP_CDC_DATA_OUT, USB_ENDPOINT_ATTR_BULK, 64, cdc_bulk_data_out); usbd_ep_setup(usbd_dev, ENDP_CDC_DATA_IN, USB_ENDPOINT_ATTR_BULK, 64, NULL); usbd_ep_setup(usbd_dev, ENDP_CDC_COMM_IN, USB_ENDPOINT_ATTR_INTERRUPT, 16, NULL); cmp_usb_register_control_class_callback(INTF_CDC_DATA, cdc_control_class_request); cmp_usb_register_control_class_callback(INTF_CDC_COMM, cdc_control_class_request); }
static void __cdcacm_set_config(usbd_device *usbd_dev, uint16_t wValue) { (void)wValue; usbd_ep_setup(usbd_dev, 0x01, USB_ENDPOINT_ATTR_BULK, 64, __cdcacm_data_rx_cb); usbd_ep_setup(usbd_dev, 0x82, USB_ENDPOINT_ATTR_BULK, 64, NULL); usbd_ep_setup(usbd_dev, 0x83, USB_ENDPOINT_ATTR_INTERRUPT, 16, NULL); usbd_register_control_callback( usbd_dev, USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, __cdcacm_control_request); }
static void hid_set_config(usbd_device* usbd_dev, uint16_t wValue) { (void)wValue; usbd_ep_setup(usbd_dev, ENDP_HID_REPORT_OUT, USB_ENDPOINT_ATTR_INTERRUPT, 64, &hid_interrupt_out); usbd_ep_setup(usbd_dev, ENDP_HID_REPORT_IN, USB_ENDPOINT_ATTR_INTERRUPT, 64, &hid_interrupt_in); usbd_register_control_callback( usbd_dev, USB_REQ_TYPE_STANDARD | USB_REQ_TYPE_INTERFACE, USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, hid_control_standard_request); cmp_usb_register_control_class_callback(INTF_HID, hid_control_class_request); }
void _usbd_reset(usbd_device *usbd_dev) { usbd_dev->current_address = 0; usbd_dev->current_config = 0; usbd_ep_setup(usbd_dev, 0, USB_ENDPOINT_ATTR_CONTROL, 64, NULL); usbd_dev->driver->set_address(usbd_dev, 0); if (usbd_dev->user_callback_reset) usbd_dev->user_callback_reset(); }
void _usbd_reset(void) { _usbd_device.current_address = 0; _usbd_device.current_config = 0; usbd_ep_setup(0, USB_ENDPOINT_ATTR_CONTROL, 64, NULL); _usbd_hw_set_address(0); if (_usbd_device.user_callback_reset) _usbd_device.user_callback_reset(); }
static void usbmanager_set_config(usbd_device *usbd_dev, u16 wValue) { (void) wValue; usbd_ep_setup(usbd_dev, CDC_RECEIVING_EP, USB_ENDPOINT_ATTR_BULK, CDC_ENDPOINT_PACKAGE_SIZE, cdcacm_data_rx_cb); usbd_ep_setup(usbd_dev, CDC_SENDING_EP, USB_ENDPOINT_ATTR_BULK, CDC_ENDPOINT_PACKAGE_SIZE, NULL); usbd_ep_setup(usbd_dev, CDC_INTERRUPT_EP, USB_ENDPOINT_ATTR_INTERRUPT, 16, NULL); usbd_ep_setup(usbd_dev, MSC_RECEIVING_EP, USB_ENDPOINT_ATTR_BULK, MSC_ENDPOINT_PACKAGE_SIZE, msc_data_rx_cb); usbd_ep_setup(usbd_dev, MSC_SENDING_EP, USB_ENDPOINT_ATTR_BULK, MSC_ENDPOINT_PACKAGE_SIZE, NULL); tx_ep_sizes[0] = USBMANAGER_FIFO0_SIZE; tx_ep_sizes[CDC_SENDING_EP & 0x7F] = CDC_ENDPOINT_PACKAGE_SIZE; tx_ep_sizes[CDC_INTERRUPT_EP & 0x7F] = 16; tx_ep_sizes[MSC_SENDING_EP & 0x7F] = MSC_ENDPOINT_PACKAGE_SIZE; usbd_register_control_callback( usbd_dev, USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, usbmanager_control_request); }
static void usb_set_config(usbd_device *usbd_dev, uint16_t wValue) { (void)wValue; usbd_ep_setup(usbd_dev, 0x81, USB_ENDPOINT_ATTR_INTERRUPT, 4, NULL); usbd_register_control_callback( usbd_dev, USB_REQ_TYPE_VENDOR | USB_REQ_TYPE_INTERFACE, USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, usb_control_request); }