/* clear the interface value to the connected device  */
usbh_status usbh_clrdevfeature(usbh_host *uhost, uint8_t feature_selector, uint16_t windex)
/* clear the interface value to the connected device  */
usbh_status usbh_clrdevfeature(usbh_host *uhost, uint8_t feature_selector, uint16_t windex)
{
    usbh_status status = USBH_BUSY;
    usbh_control *usb_ctl = &uhost->control;
    if (CTL_IDLE == usb_ctl->ctl_state) {
        usb_ctl->setup.req = (usb_req) {
            .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_DEV | USB_REQTYPE_STRD,
            .bRequest      = USB_CLEAR_FEATURE,
            .wValue        = feature_selector,
            .wIndex        = windex,
            .wLength       = 0U
        };
        usbh_ctlstate_config (uhost, NULL, 0U);
    } 
    status = usbh_ctl_handler (uhost);
    return status;
}