aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid/wacom_wac.h
diff options
context:
space:
mode:
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>2014-07-24 16:10:09 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2014-07-25 21:55:38 -0400
commit471d17148c8b4174ac5f5283a73316d12c4379bc (patch)
tree07e8fc37b04e07479404806977f1c75cd0d09765 /drivers/hid/wacom_wac.h
parenta3e6f6543d1969f1931b4f68fdd1a230b620ead8 (diff)
Input: wacom - move the USB (now hid) Wacom driver in drivers/hid
wacom.ko is now a full HID driver, we have to move it into the proper subdirectory: drivers/hid. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/hid/wacom_wac.h')
-rw-r--r--drivers/hid/wacom_wac.h169
1 files changed, 169 insertions, 0 deletions
diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h
new file mode 100644
index 000000000000..4c592475b237
--- /dev/null
+++ b/drivers/hid/wacom_wac.h
@@ -0,0 +1,169 @@
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 68
16
17#define WACOM_NAME_MAX 64
18
19/* packet length for individual models */
20#define WACOM_PKGLEN_PENPRTN 7
21#define WACOM_PKGLEN_GRAPHIRE 8
22#define WACOM_PKGLEN_BBFUN 9
23#define WACOM_PKGLEN_INTUOS 10
24#define WACOM_PKGLEN_TPC1FG 5
25#define WACOM_PKGLEN_TPC1FG_B 10
26#define WACOM_PKGLEN_TPC2FG 14
27#define WACOM_PKGLEN_BBTOUCH 20
28#define WACOM_PKGLEN_BBTOUCH3 64
29#define WACOM_PKGLEN_BBPEN 10
30#define WACOM_PKGLEN_WIRELESS 32
31#define WACOM_PKGLEN_MTOUCH 62
32#define WACOM_PKGLEN_MTTPC 40
33#define WACOM_PKGLEN_DTUS 68
34#define WACOM_PKGLEN_PENABLED 8
35
36/* wacom data size per MT contact */
37#define WACOM_BYTES_PER_MT_PACKET 11
38#define WACOM_BYTES_PER_24HDT_PACKET 14
39
40/* device IDs */
41#define STYLUS_DEVICE_ID 0x02
42#define TOUCH_DEVICE_ID 0x03
43#define CURSOR_DEVICE_ID 0x06
44#define ERASER_DEVICE_ID 0x0A
45#define PAD_DEVICE_ID 0x0F
46
47/* wacom data packet report IDs */
48#define WACOM_REPORT_PENABLED 2
49#define WACOM_REPORT_INTUOSREAD 5
50#define WACOM_REPORT_INTUOSWRITE 6
51#define WACOM_REPORT_INTUOSPAD 12
52#define WACOM_REPORT_INTUOS5PAD 3
53#define WACOM_REPORT_DTUSPAD 21
54#define WACOM_REPORT_TPC1FG 6
55#define WACOM_REPORT_TPC2FG 13
56#define WACOM_REPORT_TPCMT 13
57#define WACOM_REPORT_TPCMT2 3
58#define WACOM_REPORT_TPCHID 15
59#define WACOM_REPORT_TPCST 16
60#define WACOM_REPORT_DTUS 17
61#define WACOM_REPORT_TPC1FGE 18
62#define WACOM_REPORT_24HDT 1
63#define WACOM_REPORT_WL 128
64#define WACOM_REPORT_USB 192
65
66/* device quirks */
67#define WACOM_QUIRK_MULTI_INPUT 0x0001
68#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002
69#define WACOM_QUIRK_NO_INPUT 0x0004
70#define WACOM_QUIRK_MONITOR 0x0008
71
72enum {
73 PENPARTNER = 0,
74 GRAPHIRE,
75 WACOM_G4,
76 PTU,
77 PL,
78 DTU,
79 DTUS,
80 INTUOS,
81 INTUOS3S,
82 INTUOS3,
83 INTUOS3L,
84 INTUOS4S,
85 INTUOS4,
86 INTUOS4L,
87 INTUOS5S,
88 INTUOS5,
89 INTUOS5L,
90 INTUOSPS,
91 INTUOSPM,
92 INTUOSPL,
93 INTUOSHT,
94 WACOM_21UX2,
95 WACOM_22HD,
96 DTK,
97 WACOM_24HD,
98 CINTIQ_HYBRID,
99 CINTIQ,
100 WACOM_BEE,
101 WACOM_13HD,
102 WACOM_MO,
103 WIRELESS,
104 BAMBOO_PT,
105 WACOM_24HDT,
106 TABLETPC, /* add new TPC below */
107 TABLETPCE,
108 TABLETPC2FG,
109 MTSCREEN,
110 MTTPC,
111 MTTPC_B,
112 MAX_TYPE
113};
114
115struct wacom_features {
116 const char *name;
117 int x_max;
118 int y_max;
119 int pressure_max;
120 int distance_max;
121 int type;
122 int x_resolution;
123 int y_resolution;
124 int x_min;
125 int y_min;
126 int device_type;
127 int x_phy;
128 int y_phy;
129 unsigned unit;
130 int unitExpo;
131 int x_fuzz;
132 int y_fuzz;
133 int pressure_fuzz;
134 int distance_fuzz;
135 unsigned quirks;
136 unsigned touch_max;
137 int oVid;
138 int oPid;
139 int pktlen;
140 bool check_for_hid_type;
141 int hid_type;
142};
143
144struct wacom_shared {
145 bool stylus_in_proximity;
146 bool touch_down;
147 /* for wireless device to access USB interfaces */
148 unsigned touch_max;
149 int type;
150 struct input_dev *touch_input;
151};
152
153struct wacom_wac {
154 char name[WACOM_NAME_MAX];
155 char pad_name[WACOM_NAME_MAX];
156 unsigned char data[WACOM_PKGLEN_MAX];
157 int tool[2];
158 int id[2];
159 __u32 serial[2];
160 struct wacom_features features;
161 struct wacom_shared *shared;
162 struct input_dev *input;
163 struct input_dev *pad_input;
164 int pid;
165 int battery_capacity;
166 int num_contacts_left;
167};
168
169#endif