brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · 052562f Raw
83 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2#ifndef __HID_ROCCAT_ARVO_H3#define __HID_ROCCAT_ARVO_H4 5/*6 * Copyright (c) 2011 Stefan Achatz <erazor_de@users.sourceforge.net>7 */8 9/*10 */11 12#include <linux/types.h>13 14struct arvo_mode_key { /* 2 bytes */15	uint8_t command; /* ARVO_COMMAND_MODE_KEY */16	uint8_t state;17} __packed;18 19struct arvo_button {20	uint8_t unknown[24];21} __packed;22 23struct arvo_info {24	uint8_t unknown[8];25} __packed;26 27struct arvo_key_mask { /* 2 bytes */28	uint8_t command; /* ARVO_COMMAND_KEY_MASK */29	uint8_t key_mask;30} __packed;31 32/* selected profile is persistent */33struct arvo_actual_profile { /* 2 bytes */34	uint8_t command; /* ARVO_COMMAND_ACTUAL_PROFILE */35	uint8_t actual_profile;36} __packed;37 38enum arvo_commands {39	ARVO_COMMAND_MODE_KEY = 0x3,40	ARVO_COMMAND_BUTTON = 0x4,41	ARVO_COMMAND_INFO = 0x5,42	ARVO_COMMAND_KEY_MASK = 0x6,43	ARVO_COMMAND_ACTUAL_PROFILE = 0x7,44};45 46struct arvo_special_report {47	uint8_t unknown1; /* always 0x01 */48	uint8_t event;49	uint8_t unknown2; /* always 0x70 */50} __packed;51 52enum arvo_special_report_events {53	ARVO_SPECIAL_REPORT_EVENT_ACTION_PRESS = 0x10,54	ARVO_SPECIAL_REPORT_EVENT_ACTION_RELEASE = 0x0,55};56 57enum arvo_special_report_event_masks {58	ARVO_SPECIAL_REPORT_EVENT_MASK_ACTION = 0xf0,59	ARVO_SPECIAL_REPORT_EVENT_MASK_BUTTON = 0x0f,60};61 62struct arvo_roccat_report {63	uint8_t profile;64	uint8_t button;65	uint8_t action;66} __packed;67 68enum arvo_roccat_report_action {69	ARVO_ROCCAT_REPORT_ACTION_RELEASE = 0,70	ARVO_ROCCAT_REPORT_ACTION_PRESS = 1,71};72 73struct arvo_device {74	int roccat_claimed;75	int chrdev_minor;76 77	struct mutex arvo_lock;78 79	int actual_profile;80};81 82#endif83