linux/drivers/input/tablet/wacom_wac.h
<<
>>
Prefs
   1/*
   2 * drivers/input/tablet/wacom_wac.h
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License as published by
   6 * the Free Software Foundation; either version 2 of the License, or
   7 * (at your option) any later version.
   8 */
   9#ifndef WACOM_WAC_H
  10#define WACOM_WAC_H
  11
  12#include <linux/types.h>
  13
  14/* maximum packet length for USB devices */
  15#define WACOM_PKGLEN_MAX        64
  16
  17/* packet length for individual models */
  18#define WACOM_PKGLEN_PENPRTN     7
  19#define WACOM_PKGLEN_GRAPHIRE    8
  20#define WACOM_PKGLEN_BBFUN       9
  21#define WACOM_PKGLEN_INTUOS     10
  22#define WACOM_PKGLEN_TPC1FG      5
  23#define WACOM_PKGLEN_TPC2FG     14
  24#define WACOM_PKGLEN_BBTOUCH    20
  25#define WACOM_PKGLEN_BBTOUCH3   64
  26#define WACOM_PKGLEN_BBPEN      10
  27#define WACOM_PKGLEN_WIRELESS   32
  28#define WACOM_PKGLEN_MTOUCH     62
  29#define WACOM_PKGLEN_MTTPC      40
  30
  31/* wacom data size per MT contact */
  32#define WACOM_BYTES_PER_MT_PACKET       11
  33#define WACOM_BYTES_PER_24HDT_PACKET    14
  34
  35/* device IDs */
  36#define STYLUS_DEVICE_ID        0x02
  37#define TOUCH_DEVICE_ID         0x03
  38#define CURSOR_DEVICE_ID        0x06
  39#define ERASER_DEVICE_ID        0x0A
  40#define PAD_DEVICE_ID           0x0F
  41
  42/* wacom data packet report IDs */
  43#define WACOM_REPORT_PENABLED           2
  44#define WACOM_REPORT_INTUOSREAD         5
  45#define WACOM_REPORT_INTUOSWRITE        6
  46#define WACOM_REPORT_INTUOSPAD          12
  47#define WACOM_REPORT_INTUOS5PAD         3
  48#define WACOM_REPORT_TPC1FG             6
  49#define WACOM_REPORT_TPC2FG             13
  50#define WACOM_REPORT_TPCMT              13
  51#define WACOM_REPORT_TPCHID             15
  52#define WACOM_REPORT_TPCST              16
  53#define WACOM_REPORT_TPC1FGE            18
  54#define WACOM_REPORT_24HDT              1
  55
  56/* device quirks */
  57#define WACOM_QUIRK_MULTI_INPUT         0x0001
  58#define WACOM_QUIRK_BBTOUCH_LOWRES      0x0002
  59#define WACOM_QUIRK_NO_INPUT            0x0004
  60#define WACOM_QUIRK_MONITOR             0x0008
  61
  62enum {
  63        PENPARTNER = 0,
  64        GRAPHIRE,
  65        WACOM_G4,
  66        PTU,
  67        PL,
  68        DTU,
  69        INTUOS,
  70        INTUOS3S,
  71        INTUOS3,
  72        INTUOS3L,
  73        INTUOS4S,
  74        INTUOS4,
  75        INTUOS4L,
  76        INTUOS5S,
  77        INTUOS5,
  78        INTUOS5L,
  79        WACOM_21UX2,
  80        WACOM_22HD,
  81        DTK,
  82        WACOM_24HD,
  83        CINTIQ,
  84        WACOM_BEE,
  85        WACOM_13HD,
  86        WACOM_MO,
  87        WIRELESS,
  88        BAMBOO_PT,
  89        WACOM_24HDT,
  90        TABLETPC,   /* add new TPC below */
  91        TABLETPCE,
  92        TABLETPC2FG,
  93        MTSCREEN,
  94        MTTPC,
  95        MAX_TYPE
  96};
  97
  98struct wacom_features {
  99        const char *name;
 100        int pktlen;
 101        int x_max;
 102        int y_max;
 103        int pressure_max;
 104        int distance_max;
 105        int type;
 106        int x_resolution;
 107        int y_resolution;
 108        int device_type;
 109        int x_phy;
 110        int y_phy;
 111        unsigned char unit;
 112        unsigned char unitExpo;
 113        int x_fuzz;
 114        int y_fuzz;
 115        int pressure_fuzz;
 116        int distance_fuzz;
 117        unsigned quirks;
 118        unsigned touch_max;
 119        int oVid;
 120        int oPid;
 121};
 122
 123struct wacom_shared {
 124        bool stylus_in_proximity;
 125        bool touch_down;
 126};
 127
 128struct wacom_wac {
 129        char name[64];
 130        unsigned char *data;
 131        int tool[2];
 132        int id[2];
 133        __u32 serial[2];
 134        struct wacom_features features;
 135        struct wacom_shared *shared;
 136        struct input_dev *input;
 137        int pid;
 138        int battery_capacity;
 139        int num_contacts_left;
 140};
 141
 142#endif
 143