Hi,
I have been working on USB3.0 device driver and wanted to support USB3.0
HID (keyboard).
To support HID Keyboard device, I have made below Interface descriptor:
Interface Descriptor with alternate settings 0:
bLength = 0x9;
bDescriptorType = 0x4 (USB_DT_INTERFACE);
bInterfaceNumber = 0x0;
bAlternateSetting = 0x0;
bNumEndpoints = 0x0;
bInterfaceClass = (0x3) USB_CLASS_HID;
bInterfaceSubClass = 0x0;
bInterfaceProtocol = 0x1 (keyboard);
iInterface = 0x0;
Interface Descriptor with alternate settings 1 along with Super speed
endpoints:
bLength = 0x9;
bDescriptorType = 0x4 (USB_DT_INTERFACE);
bInterfaceNumber = 0x0;
bAlternateSetting = 0x1;
bNumEndpoints = 0x2; (One for EP IN Interrupt and other for EP
OUT Interrupt)
bInterfaceClass = (0x3) USB_CLASS_HID;
bInterfaceSubClass = 0x0;
bInterfaceProtocol = 0x1 (keyboard);
iInterface = 0x0;
However, when xHCI does set_config at that time Interface zero and
alternate setting is zero, it never does set_interface with interface
zero and alternate setting one, hence host does not detect HID device.
So, would you please assist me that what I have to do, so host does set
interface with alternate setting one.
Please let me know if you need any more information.
If I have single Interface descriptor with alternate setting zero along
with Super speed endpoints like below, then host detects HID (keyboard)
driver,
Interface Descriptor with alternate settings 0:
bLength = 0x9;
bDescriptorType = 0x4 (USB_DT_INTERFACE);
bInterfaceNumber = 0x0;
bAlternateSetting = 0x0;
bNumEndpoints = 0x2; (One for EP IN Interrupt and other for EP
OUT Interrupt)
bInterfaceClass = (0x3) USB_CLASS_HID;
bInterfaceSubClass = 0x0;
bInterfaceProtocol = 0x1 (keyboard);
iInterface = 0x0;
To support HID (keyboard) with USB3.0 CV, I need to have Interface
descriptor with alternate setting zero, which does not contain Interrupt
endpoint with max packet size greater than 64.
Please let me know your inputs / feedback.
Thanks,
Bhavik
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html