@@ -27,6 +27,8 @@ var keyboardConfig = gadgetConfigItem{
2727}
2828
2929// Source: https://www.kernel.org/doc/Documentation/usb/gadget_hid.txt
30+ // Note: Original kernel doc used 0x65 (101 keys) for both LOGICAL_MAXIMUM and USAGE_MAXIMUM,
31+ // but we use 0xff to support international keys like RO (0x87), Yen (0x89), Henkan (0x8a), Muhenkan (0x8b), etc.
3032var keyboardReportDesc = []byte {
3133 0x05 , 0x01 , /* USAGE_PAGE (Generic Desktop) */
3234 0x09 , 0x06 , /* USAGE (Keyboard) */
@@ -55,10 +57,10 @@ var keyboardReportDesc = []byte{
5557 0x95 , 0x06 , /* REPORT_COUNT (6) */
5658 0x75 , 0x08 , /* REPORT_SIZE (8) */
5759 0x15 , 0x00 , /* LOGICAL_MINIMUM (0) */
58- 0x25 , 0x65 , /* LOGICAL_MAXIMUM (101 ) */
60+ 0x25 , 0xff , /* LOGICAL_MAXIMUM (255 ) */
5961 0x05 , 0x07 , /* USAGE_PAGE (Keyboard) */
6062 0x19 , 0x00 , /* USAGE_MINIMUM (Reserved) */
61- 0x29 , 0x65 , /* USAGE_MAXIMUM (Keyboard Application) */
63+ 0x29 , 0xff , /* USAGE_MAXIMUM (Keyboard Application) */
6264 0x81 , 0x00 , /* INPUT (Data,Ary,Abs) */
6365 0xc0 , /* END_COLLECTION */
6466}
0 commit comments