Hello Marek,

I have a USB HID device with two interfaces:

2: Human Interface,  USB Revision 1.0
 - WCH.CN 7
            Serial To HID 12345678
 - Class: (from Interface) Human Interface
 - PacketSize: 8  Configurations: 1
 - Vendor: 0x1a86  Product 0xe026 Version 55.0
   Configuration: 1
   - Interfaces: 2 Bus Powered Remote Wakeup 100mA
     Interface: 0
     - Alternate Setting 0, Endpoints: 2
     - Class Human Interface, Subclass: None
     - Endpoint 2 In Interrupt MaxPacket 8 Interval 1ms
     - Endpoint 2 Out Interrupt MaxPacket 8 Interval 1ms
     Interface: 1
     - Alternate Setting 0, Endpoints: 1
     - Class Human Interface, Subclass: Boot Keyboard
     - Endpoint 1 In Interrupt MaxPacket 8 Interval 1ms

Linux correctly detects the HID keyboard and receives key strokes.

U-Boot's usb_scan_device() does not detect that this is a boot keyboard
because it only tries to match interface 0 and not interface 1.
Shouldn't it iterate over all interfaces to find a matching driver?

Further work in common/usb_kbd.c will be needed to actually use interface 1.

Best regards

Heinrich

Reply via email to