mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
![Thomas Gleixner](/assets/img/avatar_default.png)
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3029 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
97 lines
2 KiB
C
97 lines
2 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
#ifndef __HID_ROCCAT_ISKU_H
|
|
#define __HID_ROCCAT_ISKU_H
|
|
|
|
/*
|
|
* Copyright (c) 2011 Stefan Achatz <erazor_de@users.sourceforge.net>
|
|
*/
|
|
|
|
/*
|
|
*/
|
|
|
|
#include <linux/types.h>
|
|
|
|
enum {
|
|
ISKU_SIZE_CONTROL = 0x03,
|
|
ISKU_SIZE_INFO = 0x06,
|
|
ISKU_SIZE_KEY_MASK = 0x06,
|
|
ISKU_SIZE_KEYS_FUNCTION = 0x29,
|
|
ISKU_SIZE_KEYS_EASYZONE = 0x41,
|
|
ISKU_SIZE_KEYS_MEDIA = 0x1d,
|
|
ISKU_SIZE_KEYS_THUMBSTER = 0x17,
|
|
ISKU_SIZE_KEYS_MACRO = 0x23,
|
|
ISKU_SIZE_KEYS_CAPSLOCK = 0x06,
|
|
ISKU_SIZE_LAST_SET = 0x14,
|
|
ISKU_SIZE_LIGHT = 0x10,
|
|
ISKU_SIZE_MACRO = 0x823,
|
|
ISKU_SIZE_RESET = 0x03,
|
|
ISKU_SIZE_TALK = 0x10,
|
|
ISKU_SIZE_TALKFX = 0x10,
|
|
};
|
|
|
|
enum {
|
|
ISKU_PROFILE_NUM = 5,
|
|
ISKU_USB_INTERFACE_PROTOCOL = 0,
|
|
};
|
|
|
|
struct isku_actual_profile {
|
|
uint8_t command; /* ISKU_COMMAND_ACTUAL_PROFILE */
|
|
uint8_t size; /* always 3 */
|
|
uint8_t actual_profile;
|
|
} __packed;
|
|
|
|
enum isku_commands {
|
|
ISKU_COMMAND_CONTROL = 0x4,
|
|
ISKU_COMMAND_ACTUAL_PROFILE = 0x5,
|
|
ISKU_COMMAND_KEY_MASK = 0x7,
|
|
ISKU_COMMAND_KEYS_FUNCTION = 0x8,
|
|
ISKU_COMMAND_KEYS_EASYZONE = 0x9,
|
|
ISKU_COMMAND_KEYS_MEDIA = 0xa,
|
|
ISKU_COMMAND_KEYS_THUMBSTER = 0xb,
|
|
ISKU_COMMAND_KEYS_MACRO = 0xd,
|
|
ISKU_COMMAND_MACRO = 0xe,
|
|
ISKU_COMMAND_INFO = 0xf,
|
|
ISKU_COMMAND_LIGHT = 0x10,
|
|
ISKU_COMMAND_RESET = 0x11,
|
|
ISKU_COMMAND_KEYS_CAPSLOCK = 0x13,
|
|
ISKU_COMMAND_LAST_SET = 0x14,
|
|
ISKU_COMMAND_15 = 0x15,
|
|
ISKU_COMMAND_TALK = 0x16,
|
|
ISKU_COMMAND_TALKFX = 0x17,
|
|
ISKU_COMMAND_FIRMWARE_WRITE = 0x1b,
|
|
ISKU_COMMAND_FIRMWARE_WRITE_CONTROL = 0x1c,
|
|
};
|
|
|
|
struct isku_report_button {
|
|
uint8_t number; /* ISKU_REPORT_NUMBER_BUTTON */
|
|
uint8_t zero;
|
|
uint8_t event;
|
|
uint8_t data1;
|
|
uint8_t data2;
|
|
};
|
|
|
|
enum isku_report_numbers {
|
|
ISKU_REPORT_NUMBER_BUTTON = 3,
|
|
};
|
|
|
|
enum isku_report_button_events {
|
|
ISKU_REPORT_BUTTON_EVENT_PROFILE = 0x2,
|
|
};
|
|
|
|
struct isku_roccat_report {
|
|
uint8_t event;
|
|
uint8_t data1;
|
|
uint8_t data2;
|
|
uint8_t profile;
|
|
} __packed;
|
|
|
|
struct isku_device {
|
|
int roccat_claimed;
|
|
int chrdev_minor;
|
|
|
|
struct mutex isku_lock;
|
|
|
|
int actual_profile;
|
|
};
|
|
|
|
#endif
|