root/drivers/hid/hid-roccat-arvo.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 #ifndef __HID_ROCCAT_ARVO_H
   3 #define __HID_ROCCAT_ARVO_H
   4 
   5 /*
   6  * Copyright (c) 2011 Stefan Achatz <erazor_de@users.sourceforge.net>
   7  */
   8 
   9 /*
  10  */
  11 
  12 #include <linux/types.h>
  13 
  14 struct arvo_mode_key { /* 2 bytes */
  15         uint8_t command; /* ARVO_COMMAND_MODE_KEY */
  16         uint8_t state;
  17 } __packed;
  18 
  19 struct arvo_button {
  20         uint8_t unknown[24];
  21 } __packed;
  22 
  23 struct arvo_info {
  24         uint8_t unknown[8];
  25 } __packed;
  26 
  27 struct 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 */
  33 struct arvo_actual_profile { /* 2 bytes */
  34         uint8_t command; /* ARVO_COMMAND_ACTUAL_PROFILE */
  35         uint8_t actual_profile;
  36 } __packed;
  37 
  38 enum 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 
  46 struct arvo_special_report {
  47         uint8_t unknown1; /* always 0x01 */
  48         uint8_t event;
  49         uint8_t unknown2; /* always 0x70 */
  50 } __packed;
  51 
  52 enum arvo_special_report_events {
  53         ARVO_SPECIAL_REPORT_EVENT_ACTION_PRESS = 0x10,
  54         ARVO_SPECIAL_REPORT_EVENT_ACTION_RELEASE = 0x0,
  55 };
  56 
  57 enum arvo_special_report_event_masks {
  58         ARVO_SPECIAL_REPORT_EVENT_MASK_ACTION = 0xf0,
  59         ARVO_SPECIAL_REPORT_EVENT_MASK_BUTTON = 0x0f,
  60 };
  61 
  62 struct arvo_roccat_report {
  63         uint8_t profile;
  64         uint8_t button;
  65         uint8_t action;
  66 } __packed;
  67 
  68 enum arvo_roccat_report_action {
  69         ARVO_ROCCAT_REPORT_ACTION_RELEASE = 0,
  70         ARVO_ROCCAT_REPORT_ACTION_PRESS = 1,
  71 };
  72 
  73 struct arvo_device {
  74         int roccat_claimed;
  75         int chrdev_minor;
  76 
  77         struct mutex arvo_lock;
  78 
  79         int actual_profile;
  80 };
  81 
  82 #endif

/* [<][>][^][v][top][bottom][index][help] */