1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 26a2a6390SStefan Achatz #ifndef __HID_ROCCAT_SAVU_H 36a2a6390SStefan Achatz #define __HID_ROCCAT_SAVU_H 46a2a6390SStefan Achatz 56a2a6390SStefan Achatz /* 66a2a6390SStefan Achatz * Copyright (c) 2012 Stefan Achatz <erazor_de@users.sourceforge.net> 76a2a6390SStefan Achatz */ 86a2a6390SStefan Achatz 96a2a6390SStefan Achatz /* 106a2a6390SStefan Achatz */ 116a2a6390SStefan Achatz 126a2a6390SStefan Achatz #include <linux/types.h> 136a2a6390SStefan Achatz 146a2a6390SStefan Achatz struct savu_mouse_report_special { 156a2a6390SStefan Achatz uint8_t report_number; /* always 3 */ 166a2a6390SStefan Achatz uint8_t zero; 176a2a6390SStefan Achatz uint8_t type; 186a2a6390SStefan Achatz uint8_t data[2]; 196a2a6390SStefan Achatz } __packed; 206a2a6390SStefan Achatz 216a2a6390SStefan Achatz enum { 226a2a6390SStefan Achatz SAVU_MOUSE_REPORT_NUMBER_SPECIAL = 3, 236a2a6390SStefan Achatz }; 246a2a6390SStefan Achatz 256a2a6390SStefan Achatz enum savu_mouse_report_button_types { 266a2a6390SStefan Achatz /* data1 = new profile range 1-5 */ 276a2a6390SStefan Achatz SAVU_MOUSE_REPORT_BUTTON_TYPE_PROFILE = 0x20, 286a2a6390SStefan Achatz 296a2a6390SStefan Achatz /* data1 = button number range 1-24; data2 = action */ 306a2a6390SStefan Achatz SAVU_MOUSE_REPORT_BUTTON_TYPE_QUICKLAUNCH = 0x60, 316a2a6390SStefan Achatz 326a2a6390SStefan Achatz /* data1 = button number range 1-24; data2 = action */ 336a2a6390SStefan Achatz SAVU_MOUSE_REPORT_BUTTON_TYPE_TIMER = 0x80, 346a2a6390SStefan Achatz 356a2a6390SStefan Achatz /* data1 = setting number range 1-5 */ 366a2a6390SStefan Achatz SAVU_MOUSE_REPORT_BUTTON_TYPE_CPI = 0xb0, 376a2a6390SStefan Achatz 386a2a6390SStefan Achatz /* data1 and data2 = range 0x1-0xb */ 396a2a6390SStefan Achatz SAVU_MOUSE_REPORT_BUTTON_TYPE_SENSITIVITY = 0xc0, 406a2a6390SStefan Achatz 416a2a6390SStefan Achatz /* data1 = 22 = next track... 426a2a6390SStefan Achatz * data2 = action 436a2a6390SStefan Achatz */ 446a2a6390SStefan Achatz SAVU_MOUSE_REPORT_BUTTON_TYPE_MULTIMEDIA = 0xf0, 456a2a6390SStefan Achatz }; 466a2a6390SStefan Achatz 476a2a6390SStefan Achatz struct savu_roccat_report { 486a2a6390SStefan Achatz uint8_t type; 496a2a6390SStefan Achatz uint8_t data[2]; 506a2a6390SStefan Achatz } __packed; 516a2a6390SStefan Achatz 526a2a6390SStefan Achatz #endif 53