aboutsummaryrefslogtreecommitdiff
path: root/hid-tmt300rs.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-11-03 23:40:55 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2021-11-03 23:40:55 +0200
commit4179def302185641a17ab66c835aca4a69f27825 (patch)
tree26c2bf9b5d6373263b32828df535a4efba034ea6 /hid-tmt300rs.h
parent0ce71ffd905875847c5d973e4c67c45b4d525914 (diff)
downloadhid-tmff2-4179def302185641a17ab66c835aca4a69f27825.tar.gz
hid-tmff2-4179def302185641a17ab66c835aca4a69f27825.zip
Added T300RS advanced mode rdesc
Diffstat (limited to 'hid-tmt300rs.h')
-rw-r--r--hid-tmt300rs.h154
1 files changed, 125 insertions, 29 deletions
diff --git a/hid-tmt300rs.h b/hid-tmt300rs.h
index caf38cf..9ffd87c 100644
--- a/hid-tmt300rs.h
+++ b/hid-tmt300rs.h
@@ -140,35 +140,131 @@ struct t300rs_data {
void *device_props;
};
-static __u8 t300rs_rdesc_fixed[] = {
- 0x05, 0x01, 0x09, 0x04, 0xa1,
- 0x01, 0x09, 0x01, 0xa1, 0x00,
- 0x85, 0x07, 0x09, 0x30, 0x15,
- 0x00, 0x27, 0xff, 0xff, 0x00,
- 0x00, 0x35, 0x00, 0x47, 0xff,
- 0xff, 0x00, 0x00, 0x75, 0x10,
- 0x95, 0x01, 0x81, 0x02, 0x09,
- 0x35, 0x26, 0xff, 0x03, 0x46,
- 0xff, 0x03, 0x81, 0x02, 0x09,
- 0x32, 0x81, 0x02, 0x09, 0x31,
- 0x81, 0x02, 0x81, 0x03, 0x05,
- 0x09, 0x19, 0x01, 0x29, 0x0d,
- 0x25, 0x01, 0x45, 0x01, 0x75,
- 0x01, 0x95, 0x0d, 0x81, 0x02,
- 0x75, 0x0b, 0x95, 0x01, 0x81,
- 0x03, 0x05, 0x01, 0x09, 0x39,
- 0x25, 0x07, 0x46, 0x3b, 0x01,
- 0x55, 0x00, 0x65, 0x14, 0x75,
- 0x04, 0x81, 0x42, 0x65, 0x00,
- 0x81, 0x03, 0x85, 0x60, // here 0x0a
- 0x06, 0x00, 0xff, 0x09, 0x60, // here 0x0a
- 0x75, 0x08, 0x95, 0x3f, 0x26,
- 0xff, 0x7f, 0x15, 0x00, 0x46,
- 0xff, 0x7f, 0x36, 0x00, 0x80,
- 0x91, 0x02, 0x85, 0x02, 0x09,
- 0x02, 0x81, 0x02, 0x09, 0x14,
- 0x85, 0x14, 0x81, 0x02, 0xc0,
- 0xc0,
+static __u8 t300rs_rdesc_nrm_fixed[] = {
+ 0x05, 0x01, /* Usage page (Generic Desktop) */
+ 0x09, 0x04, /* Usage (Joystick) */
+ 0xa1, 0x01, /* Collection (Application) */
+ 0x09, 0x01, /* Usage (Pointer) */
+ 0xa1, 0x00, /* Collection (Physical) */
+ 0x85, 0x07, /* Report ID (7) */
+ 0x09, 0x30, /* Usage (X) */
+ 0x15, 0x00, /* Logical minimum (0) */
+ 0x27, 0xff, 0xff, 0x00, 0x00, /* Logical maximum (65535) */
+ 0x35, 0x00, /* Physical minimum (0) */
+ 0x47, 0xff, 0xff, 0x00, 0x00, /* Physical maximum (65535) */
+ 0x75, 0x10, /* Report size (16) */
+ 0x95, 0x01, /* Report count (1) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x09, 0x35, /* Usage (Rz) */
+ 0x26, 0xff, 0x03, /* Logical maximum (1023) */
+ 0x46, 0xff, 0x03, /* Physical maximum (1023) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x09, 0x32, /* Usage (Z) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x09, 0x31, /* Usage (Y) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x81, 0x03, /* Input (Variable, Absolute, Constant) */
+ 0x05, 0x09, /* Usage page (Button) */
+ 0x19, 0x01, /* Usage minimum (1) */
+ 0x29, 0x0d, /* Usage maximum (13) */
+ 0x25, 0x01, /* Logical maximum (1) */
+ 0x45, 0x01, /* Physical maximum (1) */
+ 0x75, 0x01, /* Report size (1) */
+ 0x95, 0x0d, /* Report count (13) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x75, 0x0b, /* Report size (13) */
+ 0x95, 0x01, /* Report count (1) */
+ 0x81, 0x03, /* Usage (Variable, Absolute, Constant) */
+ 0x05, 0x01, /* Usage page (Generic Desktop) */
+ 0x09, 0x39, /* Usage (Hat Switch) */
+ 0x25, 0x07, /* Logical maximum (7) */
+ 0x46, 0x3b, 0x01, /* Physical maximum (315) */
+ 0x55, 0x00, /* Unit exponent (0) */
+ 0x65, 0x14, /* Unit (Eng Rot, Angular Pos) */
+ 0x75, 0x04, /* Report size (4) */
+ 0x81, 0x42, /* Input (Variable, Absolute, NullState) */
+ 0x65, 0x00, /* Unit (None) */
+ 0x81, 0x03, /* Input (Variable, Absolute, Constant) */
+ 0x85, 0x60, /* Report ID (96), prev 10 */
+ 0x06, 0x00, 0xff, /* Usage page (Vendor 1) */
+ 0x09, 0x60, /* Usage (96), prev 10 */
+ 0x75, 0x08, /* Report size (8) */
+ 0x95, 0x3f, /* Report count (63) */
+ 0x26, 0xff, 0x7f, /* Logical maximum (32767) */
+ 0x15, 0x00, /* Logical minimum (0) */
+ 0x46, 0xff, 0x7f, /* Physical maximum (32767) */
+ 0x36, 0x00, 0x80, /* Physical minimum (-32768) */
+ 0x91, 0x02, /* Output (Variable, Absolute) */
+ 0x85, 0x02, /* Report ID (2) */
+ 0x09, 0x02, /* Usage (2) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x09, 0x14, /* Usage (20) */
+ 0x85, 0x14, /* Report ID (20) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0xc0, /* End collection */
+ 0xc0, /* End collection */
+};
+
+static __u8 t300rs_rdesc_adv_fixed[] = {
+ 0x05, 0x01, /* Usage page (Generic Desktop) */
+ 0x09, 0x04, /* Usage (Joystick) */
+ 0xa1, 0x01, /* Collection (Application) */
+ 0x09, 0x01, /* Usage (Pointer) */
+ 0xa1, 0x00, /* Collection (Physical) */
+ 0x85, 0x07, /* Report ID (7) */
+ 0x09, 0x30, /* Usage (X) */
+ 0x15, 0x00, /* Logical minimum (0) */
+ 0x27, 0xff, 0xff, 0x00, 0x00, /* Logical maximum (65535) */
+ 0x35, 0x00, /* Physical minimum (0) */
+ 0x47, 0xff, 0xff, 0x00, 0x00, /* Physical maximum (65535) */
+ 0x75, 0x10, /* Report size (16) */
+ 0x95, 0x01, /* Report count (1) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x09, 0x31, /* Usage (Y) */
+ 0x26, 0xff, 0x03, /* Logical maximum (1023) */
+ 0x46, 0xff, 0x03, /* Physical maximum (1023) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x09, 0x35, /* Usage (Rz) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x09, 0x36, /* Usage (Slider) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x81, 0x03, /* Input (Variable, Absolute, Constant) ? */
+ 0x05, 0x09, /* Usage page (Button) */
+ 0x19, 0x01, /* Usage minimum (1) */
+ 0x29, 0x19, /* Usage maximum (25) */
+ 0x25, 0x01, /* Logical maximum (1) */
+ 0x45, 0x01, /* Physical maximum (1) */
+ 0x75, 0x01, /* Report size (1) */
+ 0x95, 0x19, /* Report count (25) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x75, 0x03, /* Report size (3) */
+ 0x95, 0x01, /* Report count (1) */
+ 0x81, 0x03, /* Input (Variable, Absolute, Constant) */
+ 0x05, 0x01, /* Usage page (Generic Desktop) */
+ 0x09, 0x39, /* Usage (Hat Switch) */
+ 0x25, 0x07, /* Logical maximum (7) */
+ 0x46, 0x3b, 0x01, /* Physical maximum (315) */
+ 0x55, 0x00, /* Unit exponent (0) */
+ 0x65, 0x14, /* Unit (Eng Rot, Angular Pos) */
+ 0x75, 0x04, /* Report size (4) */
+ 0x81, 0x42, /* Input (Variable, Absolute, NullState) */
+ 0x65, 0x00, /* Unit (None) */
+ 0x85, 0x60, /* Report ID (96), prev 10 */
+ 0x06, 0x00, 0xff, /* Usage page (Vendor 1) */
+ 0x09, 0x60, /* Usage (96), prev 10 (why?) */
+ 0x75, 0x08, /* Report size (8) */
+ 0x95, 0x3f, /* Report count (63) */
+ 0x26, 0xff, 0x00, /* Logical maximum (255) */
+ 0x46, 0xff, 0x00, /* Physical maximum (255) */
+ 0x91, 0x02, /* Output (Variable, Absolute) */
+ 0x85, 0x02, /* Report ID (2) */
+ 0x09, 0x02, /* Usage (Mouse) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0x09, 0x14, /* Usage (20) */
+ 0x85, 0x14, /* Report ID (20) */
+ 0x81, 0x02, /* Input (Variable, Absolute) */
+ 0xc0, /* End collection */
+ 0xc0, /* End collection */
};
static u8 spring_values[] = {