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        32
  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
  26/* device IDs */
  27#define STYLUS_DEVICE_ID        0x02
  28#define TOUCH_DEVICE_ID         0x03
  29#define CURSOR_DEVICE_ID        0x06
  30#define ERASER_DEVICE_ID        0x0A
  31#define PAD_DEVICE_ID           0x0F
  32
  33/* wacom data packet report IDs */
  34#define WACOM_REPORT_PENABLED           2
  35#define WACOM_REPORT_INTUOSREAD         5
  36#define WACOM_REPORT_INTUOSWRITE        6
  37#define WACOM_REPORT_INTUOSPAD          12
  38#define WACOM_REPORT_TPC1FG             6
  39#define WACOM_REPORT_TPC2FG             13
  40
  41/* device quirks */
  42#define WACOM_QUIRK_MULTI_INPUT         0x0001
  43#define WACOM_QUIRK_BBTOUCH_LOWRES      0x0002
  44
  45enum {
  46        PENPARTNER = 0,
  47        GRAPHIRE,
  48        WACOM_G4,
  49        PTU,
  50        PL,
  51        DTU,
  52        BAMBOO_PT,
  53        INTUOS,
  54        INTUOS3S,
  55        INTUOS3,
  56        INTUOS3L,
  57        INTUOS4S,
  58        INTUOS4,
  59        INTUOS4L,
  60        WACOM_21UX2,
  61        CINTIQ,
  62        WACOM_BEE,
  63        WACOM_MO,
  64        TABLETPC,
  65        TABLETPC2FG,
  66        MAX_TYPE
  67};
  68
  69struct wacom_features {
  70        const char *name;
  71        int pktlen;
  72        int x_max;
  73        int y_max;
  74        int pressure_max;
  75        int distance_max;
  76        int type;
  77        int x_resolution;
  78        int y_resolution;
  79        int device_type;
  80        int x_phy;
  81        int y_phy;
  82        unsigned char unit;
  83        unsigned char unitExpo;
  84        int x_fuzz;
  85        int y_fuzz;
  86        int pressure_fuzz;
  87        int distance_fuzz;
  88        unsigned quirks;
  89};
  90
  91struct wacom_shared {
  92        bool stylus_in_proximity;
  93        bool touch_down;
  94};
  95
  96struct wacom_wac {
  97        char name[64];
  98        unsigned char *data;
  99        int tool[2];
 100        int id[2];
 101        __u32 serial[2];
 102        struct wacom_features features;
 103        struct wacom_shared *shared;
 104        struct input_dev *input;
 105};
 106
 107#endif
 108