1250003Sadrian/* 2250003Sadrian * Copyright 2020, J��r��me Duval, jerome.duval@gmail.com. 3250003Sadrian * Copyright 2008-2011, Michael Lotz <mmlr@mlotz.ch> 4250003Sadrian * Copyright 2023 Vladimir Serbinenko <phcoder@gmail.com> 5250003Sadrian * Distributed under the terms of the MIT license. 6250003Sadrian */ 7250003Sadrian#ifndef I2C_HID_PROTOCOL_H 8250003Sadrian#define I2C_HID_PROTOCOL_H 9250003Sadrian 10250003Sadrian/* 5.1.1 - HID Descriptor Format */ 11250003Sadriantypedef struct i2c_hid_descriptor { 12250003Sadrian uint16 wHIDDescLength; 13250003Sadrian uint16 bcdVersion; 14250003Sadrian uint16 wReportDescLength; 15250003Sadrian uint16 wReportDescRegister; 16250003Sadrian uint16 wInputRegister; 17250003Sadrian uint16 wMaxInputLength; 18250003Sadrian uint16 wOutputRegister; 19250003Sadrian uint16 wMaxOutputLength; 20250003Sadrian uint16 wCommandRegister; 21250003Sadrian uint16 wDataRegister; 22250003Sadrian uint16 wVendorID; 23250003Sadrian uint16 wProductID; 24250003Sadrian uint16 wVersionID; 25250008Sadrian uint32 reserved; 26250008Sadrian} _PACKED i2c_hid_descriptor; 27250003Sadrian 28250008Sadrian 29250003Sadrianenum { 30250008Sadrian I2C_HID_CMD_RESET = 0x1, 31250003Sadrian I2C_HID_CMD_GET_REPORT = 0x2, 32250008Sadrian I2C_HID_CMD_SET_REPORT = 0x3, 33250003Sadrian I2C_HID_CMD_GET_IDLE = 0x4, 34250003Sadrian I2C_HID_CMD_SET_IDLE = 0x5, 35250008Sadrian I2C_HID_CMD_GET_PROTOCOL = 0x6, 36250003Sadrian I2C_HID_CMD_SET_PROTOCOL = 0x7, 37 I2C_HID_CMD_SET_POWER = 0x8, 38}; 39 40enum { 41 I2C_HID_POWER_ON = 0x0, 42 I2C_HID_POWER_OFF = 0x1, 43}; 44 45#endif // I2C_HID_PROTOCOL_H 46