1
2
3
4
5
6
7
8
9#ifndef WACOM_WAC_H
10#define WACOM_WAC_H
11
12#include <linux/types.h>
13
14
15#define WACOM_PKGLEN_MAX 32
16
17
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
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
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
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