/* send the command of get HID descriptor to the device  */
static usbh_status usbh_hid_desc_get(usbh_host *uhost, uint16_t len)
/* send the command of get HID descriptor to the device  */
static usbh_status usbh_hid_desc_get(usbh_host *uhost, uint16_t len)
{
    usbh_status status = USBH_BUSY;
    if (CTL_IDLE == uhost->control.ctl_state) {
        uhost->control.setup.req = (usb_req) {
            .bmRequestType = USB_TRX_IN | USB_RECPTYPE_ITF | USB_REQTYPE_STRD,
            .bRequest      = USB_GET_DESCRIPTOR,
            .wValue        = USBH_DESC(USB_DESCTYPE_HID),
            .wIndex        = 0U,
            .wLength       = len
        };
        usbh_ctlstate_config (uhost, uhost->dev_prop.data, len);
    }
    status = usbh_ctl_handler (uhost);
    return status;
}