brintos

brintos / linux-shallow public Read only

0
0
Text · 2.0 KiB · 0779d72 Raw
98 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2#ifndef __HID_ROCCAT_ISKU_H3#define __HID_ROCCAT_ISKU_H4 5/*6 * Copyright (c) 2011 Stefan Achatz <erazor_de@users.sourceforge.net>7 */8 9/*10 */11 12#include <linux/types.h>13 14enum {15	ISKU_SIZE_CONTROL = 0x03,16	ISKU_SIZE_INFO = 0x06,17	ISKU_SIZE_KEY_MASK = 0x06,18	ISKU_SIZE_KEYS_FUNCTION = 0x29,19	ISKU_SIZE_KEYS_EASYZONE = 0x41,20	ISKU_SIZE_KEYS_MEDIA = 0x1d,21	ISKU_SIZE_KEYS_THUMBSTER = 0x17,22	ISKU_SIZE_KEYS_MACRO = 0x23,23	ISKU_SIZE_KEYS_CAPSLOCK = 0x06,24	ISKU_SIZE_LAST_SET = 0x14,25	ISKU_SIZE_LIGHT = 0x10,26	ISKU_SIZE_MACRO = 0x823,27	ISKU_SIZE_RESET = 0x03,28	ISKU_SIZE_TALK = 0x10,29	ISKU_SIZE_TALKFX = 0x10,30};31 32enum {33	ISKU_PROFILE_NUM = 5,34	ISKU_USB_INTERFACE_PROTOCOL = 0,35};36 37struct isku_actual_profile {38	uint8_t command; /* ISKU_COMMAND_ACTUAL_PROFILE */39	uint8_t size; /* always 3 */40	uint8_t actual_profile;41} __packed;42 43enum isku_commands {44	ISKU_COMMAND_CONTROL = 0x4,45	ISKU_COMMAND_ACTUAL_PROFILE = 0x5,46	ISKU_COMMAND_KEY_MASK = 0x7,47	ISKU_COMMAND_KEYS_FUNCTION = 0x8,48	ISKU_COMMAND_KEYS_EASYZONE = 0x9,49	ISKU_COMMAND_KEYS_MEDIA = 0xa,50	ISKU_COMMAND_KEYS_THUMBSTER = 0xb,51	ISKU_COMMAND_KEYS_MACRO = 0xd,52	ISKU_COMMAND_MACRO = 0xe,53	ISKU_COMMAND_INFO = 0xf,54	ISKU_COMMAND_LIGHT = 0x10,55	ISKU_COMMAND_RESET = 0x11,56	ISKU_COMMAND_KEYS_CAPSLOCK = 0x13,57	ISKU_COMMAND_LAST_SET = 0x14,58	ISKU_COMMAND_15 = 0x15,59	ISKU_COMMAND_TALK = 0x16,60	ISKU_COMMAND_TALKFX = 0x17,61	ISKU_COMMAND_FIRMWARE_WRITE = 0x1b,62	ISKU_COMMAND_FIRMWARE_WRITE_CONTROL = 0x1c,63};64 65struct isku_report_button {66	uint8_t number; /* ISKU_REPORT_NUMBER_BUTTON */67	uint8_t zero;68	uint8_t event;69	uint8_t data1;70	uint8_t data2;71};72 73enum isku_report_numbers {74	ISKU_REPORT_NUMBER_BUTTON = 3,75};76 77enum isku_report_button_events {78	ISKU_REPORT_BUTTON_EVENT_PROFILE = 0x2,79};80 81struct isku_roccat_report {82	uint8_t event;83	uint8_t data1;84	uint8_t data2;85	uint8_t profile;86} __packed;87 88struct isku_device {89	int roccat_claimed;90	int chrdev_minor;91 92	struct mutex isku_lock;93 94	int actual_profile;95};96 97#endif98