xref: /openbmc/linux/drivers/hid/hid-roccat-savu.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
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