Blame view

drivers/hid/wacom_wac.h 11.3 KB
2874c5fd2   Thomas Gleixner   treewide: Replace...
1
  /* SPDX-License-Identifier: GPL-2.0-or-later */
3bea733ab   Ping Cheng   USB: wacom tablet...
2
  /*
4104d13fe   Dmitry Torokhov   Input: move USB t...
3
   * drivers/input/tablet/wacom_wac.h
3bea733ab   Ping Cheng   USB: wacom tablet...
4
5
6
   */
  #ifndef WACOM_WAC_H
  #define WACOM_WAC_H
51269fe86   Dmitry Torokhov   Input: wacom - do...
7
  #include <linux/types.h>
d97a55221   Benjamin Tissoires   HID: wacom: use W...
8
  #include <linux/hid.h>
834172064   Jason Gerecke   HID: wacom: Queue...
9
  #include <linux/kfifo.h>
51269fe86   Dmitry Torokhov   Input: wacom - do...
10

4922cd26f   Jason Gerecke   HID: wacom: Suppo...
11
12
  /* maximum packet length for USB/BT devices */
  #define WACOM_PKGLEN_MAX	361
ee54500d7   Ping Cheng   Input: wacom - ad...
13

57bcfce37   Ping Cheng   Input: wacom - no...
14
  #define WACOM_NAME_MAX		64
72b236d60   Aaron Skomra   HID: wacom: Add s...
15
16
  #define WACOM_MAX_REMOTES	5
  #define WACOM_STATUS_UNKNOWN	255
57bcfce37   Ping Cheng   Input: wacom - no...
17

ee54500d7   Ping Cheng   Input: wacom - ad...
18
  /* packet length for individual models */
e33da8a54   Jason Childs   Input: wacom - us...
19
  #define WACOM_PKGLEN_BBFUN	 9
ee54500d7   Ping Cheng   Input: wacom - ad...
20
  #define WACOM_PKGLEN_TPC1FG	 5
61616ed0c   Jason Gerecke   Input: wacom - ad...
21
  #define WACOM_PKGLEN_TPC1FG_B	10
e33da8a54   Jason Childs   Input: wacom - us...
22
  #define WACOM_PKGLEN_TPC2FG	14
4a88081e7   Ping Cheng   Input: wacom - pa...
23
  #define WACOM_PKGLEN_BBTOUCH	20
4134361af   Chris Bagwell   Input: wacom - re...
24
  #define WACOM_PKGLEN_BBTOUCH3	64
73149ab84   Chris Bagwell   Input: wacom - 3r...
25
  #define WACOM_PKGLEN_BBPEN	10
d3825d51c   Chris Bagwell   Input: wacom - wi...
26
  #define WACOM_PKGLEN_WIRELESS	32
d51ddb2bf   Jason Gerecke   Input: wacom - ad...
27
  #define WACOM_PKGLEN_PENABLED	 8
8c97a7654   Benjamin Tissoires   HID: wacom: add f...
28
29
  #define WACOM_PKGLEN_BPAD_TOUCH	32
  #define WACOM_PKGLEN_BPAD_TOUCH_USB	64
1963518b9   Ping Cheng   Input: wacom - ad...
30
31
32
  
  /* wacom data size per MT contact */
  #define WACOM_BYTES_PER_MT_PACKET	11
b1e4279e4   Jason Gerecke   Input: wacom - ad...
33
  #define WACOM_BYTES_PER_24HDT_PACKET	14
500d4160a   Ping Cheng   HID: wacom: add s...
34
  #define WACOM_BYTES_PER_QHDTHID_PACKET	 6
ee54500d7   Ping Cheng   Input: wacom - ad...
35

ec67bbedc   Ping Cheng   Input: wacom - ad...
36
  /* device IDs */
3bea733ab   Ping Cheng   USB: wacom tablet...
37
  #define STYLUS_DEVICE_ID	0x02
545f4e99d   Ping Cheng   Input: wacom - ad...
38
  #define TOUCH_DEVICE_ID		0x03
3bea733ab   Ping Cheng   USB: wacom tablet...
39
40
  #define CURSOR_DEVICE_ID	0x06
  #define ERASER_DEVICE_ID	0x0A
80d4e8e98   Ping Cheng   USB: Wacom driver...
41
  #define PAD_DEVICE_ID		0x0F
3bea733ab   Ping Cheng   USB: wacom tablet...
42

cad747008   Ping Cheng   Input: wacom - ad...
43
44
  /* wacom data packet report IDs */
  #define WACOM_REPORT_PENABLED		2
387142bb8   Benjamin Tissoires   Input: wacom - ha...
45
  #define WACOM_REPORT_PENABLED_BT	3
061099936   Jason Gerecke   HID: wacom: Renam...
46
47
  #define WACOM_REPORT_INTUOS_ID1		5
  #define WACOM_REPORT_INTUOS_ID2		6
cad747008   Ping Cheng   Input: wacom - ad...
48
  #define WACOM_REPORT_INTUOSPAD		12
f860e581f   Jason Gerecke   Input: wacom - ad...
49
  #define WACOM_REPORT_INTUOS5PAD		3
497ab1f29   Ping Cheng   Input: wacom - ad...
50
  #define WACOM_REPORT_DTUSPAD		21
cad747008   Ping Cheng   Input: wacom - ad...
51
52
  #define WACOM_REPORT_TPC1FG		6
  #define WACOM_REPORT_TPC2FG		13
1963518b9   Ping Cheng   Input: wacom - ad...
53
  #define WACOM_REPORT_TPCMT		13
d51ddb2bf   Jason Gerecke   Input: wacom - ad...
54
  #define WACOM_REPORT_TPCMT2		3
31175a834   Ping Cheng   Input: wacom - us...
55
  #define WACOM_REPORT_TPCHID		15
500d4160a   Ping Cheng   HID: wacom: add s...
56
57
  #define WACOM_REPORT_CINTIQ		16
  #define WACOM_REPORT_CINTIQPAD		17
31175a834   Ping Cheng   Input: wacom - us...
58
  #define WACOM_REPORT_TPCST		16
497ab1f29   Ping Cheng   Input: wacom - ad...
59
  #define WACOM_REPORT_DTUS		17
ac173837c   Ping Cheng   Input: wacom - ad...
60
  #define WACOM_REPORT_TPC1FGE		18
b1e4279e4   Jason Gerecke   Input: wacom - ad...
61
  #define WACOM_REPORT_24HDT		1
b5fd2a3e9   Ping Cheng   Input: wacom - ad...
62
  #define WACOM_REPORT_WL			128
961794a00   Ping Cheng   Input: wacom - ad...
63
  #define WACOM_REPORT_USB		192
8c97a7654   Benjamin Tissoires   HID: wacom: add f...
64
65
  #define WACOM_REPORT_BPAD_PEN		3
  #define WACOM_REPORT_BPAD_TOUCH		16
72b236d60   Aaron Skomra   HID: wacom: Add s...
66
  #define WACOM_REPORT_DEVICE_LIST	16
eda01dab5   Ping Cheng   HID: wacom: Add f...
67
  #define WACOM_REPORT_INTUOS_PEN		16
72b236d60   Aaron Skomra   HID: wacom: Add s...
68
  #define WACOM_REPORT_REMOTE		17
0bbfe28ad   Jason Gerecke   HID: wacom: Use c...
69
  #define WACOM_REPORT_INTUOSHT2_ID	8
cad747008   Ping Cheng   Input: wacom - ad...
70

5ba13c649   Jason Gerecke   HID: wacom: Move ...
71
72
73
74
75
76
77
  /* wacom command report ids */
  #define WAC_CMD_WL_LED_CONTROL          0x03
  #define WAC_CMD_LED_CONTROL             0x20
  #define WAC_CMD_ICON_START              0x21
  #define WAC_CMD_ICON_XFER               0x23
  #define WAC_CMD_ICON_BT_XFER            0x26
  #define WAC_CMD_DELETE_PAIRING          0x20
10c55cacb   Aaron Armstrong Skomra   HID: wacom: gener...
78
  #define WAC_CMD_LED_CONTROL_GENERIC     0x32
5ba13c649   Jason Gerecke   HID: wacom: Move ...
79
  #define WAC_CMD_UNPAIR_ALL              0xFF
4922cd26f   Jason Gerecke   HID: wacom: Suppo...
80
  #define WAC_CMD_WL_INTUOSP2             0x82
5ba13c649   Jason Gerecke   HID: wacom: Move ...
81

bc73dd39e   Henrik Rydberg   Input: wacom - co...
82
  /* device quirks */
f3586d2f8   Ping Cheng   HID: wacom: remov...
83
  #define WACOM_QUIRK_BBTOUCH_LOWRES	0x0001
61ce346a2   Jason Gerecke   HID: wacom: gener...
84
  #define WACOM_QUIRK_SENSE		0x0002
99acedadd   Jason Gerecke   HID: wacom: Prope...
85
  #define WACOM_QUIRK_AESPEN		0x0004
f3586d2f8   Ping Cheng   HID: wacom: remov...
86
  #define WACOM_QUIRK_BATTERY		0x0008
834172064   Jason Gerecke   HID: wacom: Queue...
87
  #define WACOM_QUIRK_TOOLSERIAL		0x0010
bc73dd39e   Henrik Rydberg   Input: wacom - co...
88

aa86b18cc   Jason Gerecke   HID: wacom: Treat...
89
90
91
92
  /* device types */
  #define WACOM_DEVICETYPE_NONE           0x0000
  #define WACOM_DEVICETYPE_PEN            0x0001
  #define WACOM_DEVICETYPE_TOUCH          0x0002
862cf5535   Jason Gerecke   HID: wacom: Intro...
93
  #define WACOM_DEVICETYPE_PAD            0x0004
ccad85cc1   Jason Gerecke   HID: wacom: Repla...
94
  #define WACOM_DEVICETYPE_WL_MONITOR     0x0008
e5bc8eb1b   Jason Gerecke   HID: wacom: Add W...
95
  #define WACOM_DEVICETYPE_DIRECT         0x0010
aa86b18cc   Jason Gerecke   HID: wacom: Treat...
96

16e459890   Jason Gerecke   HID: wacom: Add a...
97
  #define WACOM_POWER_SUPPLY_STATUS_AUTO  -1
8de82280e   Jason Gerecke   HID: wacom: Updat...
98
  #define WACOM_HID_UP_WACOMDIGITIZER     0xff0d0000
5922e6132   Jason Gerecke   HID: wacom: gener...
99
100
  #define WACOM_HID_SP_PAD                0x00040000
  #define WACOM_HID_SP_BUTTON             0x00090000
c9c095874   Jason Gerecke   HID: wacom: gener...
101
102
  #define WACOM_HID_SP_DIGITIZER          0x000d0000
  #define WACOM_HID_SP_DIGITIZERINFO      0x00100000
8de82280e   Jason Gerecke   HID: wacom: Updat...
103
  #define WACOM_HID_WD_DIGITIZER          (WACOM_HID_UP_WACOMDIGITIZER | 0x01)
ac2423c97   Aaron Armstrong Skomra   HID: wacom: gener...
104
  #define WACOM_HID_WD_PEN                (WACOM_HID_UP_WACOMDIGITIZER | 0x02)
61ce346a2   Jason Gerecke   HID: wacom: gener...
105
  #define WACOM_HID_WD_SENSE              (WACOM_HID_UP_WACOMDIGITIZER | 0x36)
5922e6132   Jason Gerecke   HID: wacom: gener...
106
  #define WACOM_HID_WD_DIGITIZERFNKEYS    (WACOM_HID_UP_WACOMDIGITIZER | 0x39)
99acedadd   Jason Gerecke   HID: wacom: Prope...
107
  #define WACOM_HID_WD_SERIALNUMBER       (WACOM_HID_UP_WACOMDIGITIZER | 0x5b)
f85c9dc67   Jason Gerecke   HID: wacom: gener...
108
109
  #define WACOM_HID_WD_SERIALHI           (WACOM_HID_UP_WACOMDIGITIZER | 0x5c)
  #define WACOM_HID_WD_TOOLTYPE           (WACOM_HID_UP_WACOMDIGITIZER | 0x77)
b5c921e6c   Jason Gerecke   HID: wacom: gener...
110
  #define WACOM_HID_WD_DISTANCE           (WACOM_HID_UP_WACOMDIGITIZER | 0x0132)
bf78adcb6   Jason Gerecke   HID: wacom: gener...
111
112
  #define WACOM_HID_WD_TOUCHSTRIP         (WACOM_HID_UP_WACOMDIGITIZER | 0x0136)
  #define WACOM_HID_WD_TOUCHSTRIP2        (WACOM_HID_UP_WACOMDIGITIZER | 0x0137)
5922e6132   Jason Gerecke   HID: wacom: gener...
113
114
  #define WACOM_HID_WD_TOUCHRING          (WACOM_HID_UP_WACOMDIGITIZER | 0x0138)
  #define WACOM_HID_WD_TOUCHRINGSTATUS    (WACOM_HID_UP_WACOMDIGITIZER | 0x0139)
b1f466a90   Aaron Armstrong Skomra   HID: wacom: gener...
115
  #define WACOM_HID_WD_REPORT_VALID       (WACOM_HID_UP_WACOMDIGITIZER | 0x01d0)
5922e6132   Jason Gerecke   HID: wacom: gener...
116
117
118
  #define WACOM_HID_WD_ACCELEROMETER_X    (WACOM_HID_UP_WACOMDIGITIZER | 0x0401)
  #define WACOM_HID_WD_ACCELEROMETER_Y    (WACOM_HID_UP_WACOMDIGITIZER | 0x0402)
  #define WACOM_HID_WD_ACCELEROMETER_Z    (WACOM_HID_UP_WACOMDIGITIZER | 0x0403)
93aab7fa4   Jason Gerecke   HID: wacom: gener...
119
  #define WACOM_HID_WD_BATTERY_CHARGING   (WACOM_HID_UP_WACOMDIGITIZER | 0x0404)
d2ec58aee   Aaron Armstrong Skomra   HID: wacom: gener...
120
  #define WACOM_HID_WD_TOUCHONOFF         (WACOM_HID_UP_WACOMDIGITIZER | 0x0454)
93aab7fa4   Jason Gerecke   HID: wacom: gener...
121
  #define WACOM_HID_WD_BATTERY_LEVEL      (WACOM_HID_UP_WACOMDIGITIZER | 0x043b)
5922e6132   Jason Gerecke   HID: wacom: gener...
122
  #define WACOM_HID_WD_EXPRESSKEY00       (WACOM_HID_UP_WACOMDIGITIZER | 0x0910)
bf78adcb6   Jason Gerecke   HID: wacom: gener...
123
  #define WACOM_HID_WD_EXPRESSKEYCAP00    (WACOM_HID_UP_WACOMDIGITIZER | 0x0950)
4082da80f   Benjamin Tissoires   HID: wacom: gener...
124
  #define WACOM_HID_WD_MODE_CHANGE        (WACOM_HID_UP_WACOMDIGITIZER | 0x0980)
d793ff818   Ping Cheng   HID: wacom: gener...
125
  #define WACOM_HID_WD_MUTE_DEVICE        (WACOM_HID_UP_WACOMDIGITIZER | 0x0981)
4eb220cb3   Ping Cheng   HID: wacom: gener...
126
127
128
  #define WACOM_HID_WD_CONTROLPANEL       (WACOM_HID_UP_WACOMDIGITIZER | 0x0982)
  #define WACOM_HID_WD_ONSCREEN_KEYBOARD  (WACOM_HID_UP_WACOMDIGITIZER | 0x0983)
  #define WACOM_HID_WD_BUTTONCONFIG       (WACOM_HID_UP_WACOMDIGITIZER | 0x0986)
5922e6132   Jason Gerecke   HID: wacom: gener...
129
130
131
132
133
  #define WACOM_HID_WD_BUTTONHOME         (WACOM_HID_UP_WACOMDIGITIZER | 0x0990)
  #define WACOM_HID_WD_BUTTONUP           (WACOM_HID_UP_WACOMDIGITIZER | 0x0991)
  #define WACOM_HID_WD_BUTTONDOWN         (WACOM_HID_UP_WACOMDIGITIZER | 0x0992)
  #define WACOM_HID_WD_BUTTONLEFT         (WACOM_HID_UP_WACOMDIGITIZER | 0x0993)
  #define WACOM_HID_WD_BUTTONRIGHT        (WACOM_HID_UP_WACOMDIGITIZER | 0x0994)
bf78adcb6   Jason Gerecke   HID: wacom: gener...
134
  #define WACOM_HID_WD_BUTTONCENTER       (WACOM_HID_UP_WACOMDIGITIZER | 0x0995)
929d6d5d2   Jason Gerecke   HID: wacom: gener...
135
  #define WACOM_HID_WD_FINGERWHEEL        (WACOM_HID_UP_WACOMDIGITIZER | 0x0d03)
345857bb4   Jason Gerecke   HID: wacom: gener...
136
137
138
139
  #define WACOM_HID_WD_OFFSETLEFT         (WACOM_HID_UP_WACOMDIGITIZER | 0x0d30)
  #define WACOM_HID_WD_OFFSETTOP          (WACOM_HID_UP_WACOMDIGITIZER | 0x0d31)
  #define WACOM_HID_WD_OFFSETRIGHT        (WACOM_HID_UP_WACOMDIGITIZER | 0x0d32)
  #define WACOM_HID_WD_OFFSETBOTTOM       (WACOM_HID_UP_WACOMDIGITIZER | 0x0d33)
c9c095874   Jason Gerecke   HID: wacom: gener...
140
  #define WACOM_HID_WD_DATAMODE           (WACOM_HID_UP_WACOMDIGITIZER | 0x1002)
5922e6132   Jason Gerecke   HID: wacom: gener...
141
  #define WACOM_HID_WD_DIGITIZERINFO      (WACOM_HID_UP_WACOMDIGITIZER | 0x1013)
d8e980600   Aaron Armstrong Skomra   HID: wacom: gener...
142
  #define WACOM_HID_WD_TOUCH_RING_SETTING (WACOM_HID_UP_WACOMDIGITIZER | 0x1032)
8de82280e   Jason Gerecke   HID: wacom: Updat...
143
144
145
146
147
148
  #define WACOM_HID_UP_G9                 0xff090000
  #define WACOM_HID_G9_PEN                (WACOM_HID_UP_G9 | 0x02)
  #define WACOM_HID_G9_TOUCHSCREEN        (WACOM_HID_UP_G9 | 0x11)
  #define WACOM_HID_UP_G11                0xff110000
  #define WACOM_HID_G11_PEN               (WACOM_HID_UP_G11 | 0x02)
  #define WACOM_HID_G11_TOUCHSCREEN       (WACOM_HID_UP_G11 | 0x11)
ac2423c97   Aaron Armstrong Skomra   HID: wacom: gener...
149
150
151
152
  #define WACOM_HID_UP_WACOMTOUCH         0xff000000
  #define WACOM_HID_WT_TOUCHSCREEN        (WACOM_HID_UP_WACOMTOUCH | 0x04)
  #define WACOM_HID_WT_TOUCHPAD           (WACOM_HID_UP_WACOMTOUCH | 0x05)
  #define WACOM_HID_WT_CONTACTMAX         (WACOM_HID_UP_WACOMTOUCH | 0x55)
99acedadd   Jason Gerecke   HID: wacom: Prope...
153
  #define WACOM_HID_WT_SERIALNUMBER       (WACOM_HID_UP_WACOMTOUCH | 0x5b)
ac2423c97   Aaron Armstrong Skomra   HID: wacom: gener...
154
155
  #define WACOM_HID_WT_X                  (WACOM_HID_UP_WACOMTOUCH | 0x130)
  #define WACOM_HID_WT_Y                  (WACOM_HID_UP_WACOMTOUCH | 0x131)
f4e11d599   Aaron Armstrong Skomra   HID: wacom: gener...
156
  #define WACOM_HID_WT_REPORT_VALID       (WACOM_HID_UP_WACOMTOUCH | 0x1d0)
042628abd   Jason Gerecke   HID: wacom: Disco...
157

5ac3d4ae5   Jason Gerecke   HID: wacom: gener...
158
159
160
  #define WACOM_BATTERY_USAGE(f)	(((f)->hid == HID_DG_BATTERYSTRENGTH) || \
  				 ((f)->hid == WACOM_HID_WD_BATTERY_CHARGING) || \
  				 ((f)->hid == WACOM_HID_WD_BATTERY_LEVEL))
5922e6132   Jason Gerecke   HID: wacom: gener...
161
162
163
  #define WACOM_PAD_FIELD(f)	(((f)->physical == HID_DG_TABLETFUNCTIONKEY) || \
  				 ((f)->physical == WACOM_HID_WD_DIGITIZERFNKEYS) || \
  				 ((f)->physical == WACOM_HID_WD_DIGITIZERINFO))
d97a55221   Benjamin Tissoires   HID: wacom: use W...
164
165
  #define WACOM_PEN_FIELD(f)	(((f)->logical == HID_DG_STYLUS) || \
  				 ((f)->physical == HID_DG_STYLUS) || \
61e9e7e40   Benjamin Tissoires   HID: wacom: add s...
166
  				 ((f)->physical == HID_DG_PEN) || \
042628abd   Jason Gerecke   HID: wacom: Disco...
167
168
  				 ((f)->application == HID_DG_PEN) || \
  				 ((f)->application == HID_DG_DIGITIZER) || \
885e89f60   Jason Gerecke   HID: wacom: gener...
169
  				 ((f)->application == WACOM_HID_WD_PEN) || \
1b18b75c7   Jason Gerecke   HID: wacom: Have ...
170
171
172
  				 ((f)->application == WACOM_HID_WD_DIGITIZER) || \
  				 ((f)->application == WACOM_HID_G9_PEN) || \
  				 ((f)->application == WACOM_HID_G11_PEN))
d97a55221   Benjamin Tissoires   HID: wacom: use W...
173
174
  #define WACOM_FINGER_FIELD(f)	(((f)->logical == HID_DG_FINGER) || \
  				 ((f)->physical == HID_DG_FINGER) || \
1b18b75c7   Jason Gerecke   HID: wacom: Have ...
175
176
  				 ((f)->application == HID_DG_TOUCHSCREEN) || \
  				 ((f)->application == WACOM_HID_G9_TOUCHSCREEN) || \
ac2423c97   Aaron Armstrong Skomra   HID: wacom: gener...
177
178
179
180
181
182
183
184
  				 ((f)->application == WACOM_HID_G11_TOUCHSCREEN) || \
  				 ((f)->application == WACOM_HID_WT_TOUCHPAD) || \
  				 ((f)->application == HID_DG_TOUCHPAD))
  
  #define WACOM_DIRECT_DEVICE(f)	(((f)->application == HID_DG_TOUCHSCREEN) || \
  				 ((f)->application == WACOM_HID_WT_TOUCHSCREEN) || \
  				 ((f)->application == HID_DG_PEN) || \
  				 ((f)->application == WACOM_HID_WD_PEN))
d97a55221   Benjamin Tissoires   HID: wacom: use W...
185

3bea733ab   Ping Cheng   USB: wacom tablet...
186
187
188
  enum {
  	PENPARTNER = 0,
  	GRAPHIRE,
387142bb8   Benjamin Tissoires   Input: wacom - ha...
189
  	GRAPHIRE_BT,
3bea733ab   Ping Cheng   USB: wacom tablet...
190
191
192
  	WACOM_G4,
  	PTU,
  	PL,
c8f2edc56   Ping Cheng   Input: wacom - ad...
193
  	DTU,
497ab1f29   Ping Cheng   Input: wacom - ad...
194
  	DTUS,
fff00bf8c   Ping Cheng   HID: wacom: Add s...
195
  	DTUSX,
3bea733ab   Ping Cheng   USB: wacom tablet...
196
  	INTUOS,
8d32e3ae5   Ping Cheng   USB: Wacom driver...
197
  	INTUOS3S,
3bea733ab   Ping Cheng   USB: wacom tablet...
198
199
  	INTUOS3,
  	INTUOS3L,
6f660f12d   Ping Cheng   Input: wacom - ad...
200
201
  	INTUOS4S,
  	INTUOS4,
81af7e61a   Benjamin Tissoires   Input: wacom - ha...
202
  	INTUOS4WL,
6f660f12d   Ping Cheng   Input: wacom - ad...
203
  	INTUOS4L,
9fee61950   Jason Gerecke   Input: wacom - ad...
204
205
206
  	INTUOS5S,
  	INTUOS5,
  	INTUOS5L,
9a35c411f   Ping Cheng   Input: wacom - ad...
207
208
209
  	INTUOSPS,
  	INTUOSPM,
  	INTUOSPL,
4922cd26f   Jason Gerecke   HID: wacom: Suppo...
210
  	INTUOSP2_BT,
912c6aa67   Aaron Armstrong Skomra   HID: wacom: Add 2...
211
  	INTUOSP2S_BT,
87046b6c9   Aaron Armstrong Skomra   HID: wacom: Add s...
212
  	INTUOSHT3_BT,
3a4b4aaa5   Ping Cheng   Input: wacom - ad...
213
  	WACOM_21UX2,
d838c644f   Ping Cheng   Input: wacom - ad...
214
  	WACOM_22HD,
a112e9fdd   Ping Cheng   Input: wacom - ad...
215
  	DTK,
d838c644f   Ping Cheng   Input: wacom - ad...
216
  	WACOM_24HD,
500d4160a   Ping Cheng   HID: wacom: add s...
217
  	WACOM_27QHD,
36d3c510e   Jason Gerecke   Input: wacom - su...
218
  	CINTIQ_HYBRID,
f7acb55cf   Jason Gerecke   HID: wacom: Add s...
219
  	CINTIQ_COMPANION_2,
3bea733ab   Ping Cheng   USB: wacom tablet...
220
  	CINTIQ,
0e1763f53   Ping Cheng   Input: wacom - ad...
221
  	WACOM_BEE,
56218563a   Ping Cheng   Input: wacom - ad...
222
  	WACOM_13HD,
7ecfbfd3d   Ping Cheng   Input: wacom - ad...
223
  	WACOM_MO,
3b164a00a   Ping Cheng   HID: wacom: Clean...
224
225
  	BAMBOO_PEN,
  	INTUOSHT,
eda01dab5   Ping Cheng   HID: wacom: Add f...
226
  	INTUOSHT2,
3b164a00a   Ping Cheng   HID: wacom: Clean...
227
  	BAMBOO_TOUCH,
ea2e60244   Ping Cheng   Input: wacom - re...
228
  	BAMBOO_PT,
b1e4279e4   Jason Gerecke   Input: wacom - ad...
229
  	WACOM_24HDT,
500d4160a   Ping Cheng   HID: wacom: add s...
230
  	WACOM_27QHDT,
8c97a7654   Benjamin Tissoires   HID: wacom: add f...
231
  	BAMBOO_PAD,
7adb91bd7   Ping Cheng   HID: wacom: fix I...
232
  	WIRELESS,
72b236d60   Aaron Skomra   HID: wacom: Add s...
233
  	REMOTE,
ea2e60244   Ping Cheng   Input: wacom - re...
234
  	TABLETPC,   /* add new TPC below */
ac173837c   Ping Cheng   Input: wacom - ad...
235
  	TABLETPCE,
ec67bbedc   Ping Cheng   Input: wacom - ad...
236
  	TABLETPC2FG,
1963518b9   Ping Cheng   Input: wacom - ad...
237
  	MTSCREEN,
6afdc289c   Ping Cheng   Input: wacom - ad...
238
  	MTTPC,
d51ddb2bf   Jason Gerecke   Input: wacom - ad...
239
  	MTTPC_B,
7704ac937   Benjamin Tissoires   HID: wacom: imple...
240
  	HID_GENERIC,
3bea733ab   Ping Cheng   USB: wacom tablet...
241
242
243
244
  	MAX_TYPE
  };
  
  struct wacom_features {
e33da8a54   Jason Childs   Input: wacom - us...
245
  	const char *name;
3bea733ab   Ping Cheng   USB: wacom tablet...
246
247
248
249
250
  	int x_max;
  	int y_max;
  	int pressure_max;
  	int distance_max;
  	int type;
e35fb8c1d   Ping Cheng   Input: wacom - re...
251
252
  	int x_resolution;
  	int y_resolution;
70ee06c5f   Aaron Skomra   HID: wacom: Set b...
253
  	int numbered_buttons;
e779ef231   Jason Gerecke   HID: wacom: Fix s...
254
255
256
257
  	int offset_left;
  	int offset_right;
  	int offset_top;
  	int offset_bottom;
ec67bbedc   Ping Cheng   Input: wacom - ad...
258
259
260
  	int device_type;
  	int x_phy;
  	int y_phy;
c669fb2b9   Benjamin Tissoires   Input: wacom - us...
261
262
  	unsigned unit;
  	int unitExpo;
fed87e655   Henrik Rydberg   Input: wacom - ad...
263
264
265
266
  	int x_fuzz;
  	int y_fuzz;
  	int pressure_fuzz;
  	int distance_fuzz;
bef7e2000   Jason Gerecke   HID: wacom: Add f...
267
  	int tilt_fuzz;
bc73dd39e   Henrik Rydberg   Input: wacom - co...
268
  	unsigned quirks;
f393ee2b8   Ping Cheng   Input: wacom - re...
269
  	unsigned touch_max;
aea2bf6a5   Jason Gerecke   Input: wacom - ha...
270
271
  	int oVid;
  	int oPid;
80befa938   Benjamin Tissoires   Input: wacom - re...
272
  	int pktlen;
29b473913   Benjamin Tissoires   Input: wacom - sw...
273
274
  	bool check_for_hid_type;
  	int hid_type;
3bea733ab   Ping Cheng   USB: wacom tablet...
275
  };
4492effff   Ping Cheng   Input: wacom - sh...
276
277
  struct wacom_shared {
  	bool stylus_in_proximity;
a43c7c538   Ping Cheng   Input: wacom - su...
278
  	bool touch_down;
961794a00   Ping Cheng   Input: wacom - ad...
279
280
281
282
  	/* for wireless device to access USB interfaces */
  	unsigned touch_max;
  	int type;
  	struct input_dev *touch_input;
a97ac1040   Benjamin Tissoires   HID: wacom: store...
283
284
  	struct hid_device *pen;
  	struct hid_device *touch;
d2ec58aee   Aaron Armstrong Skomra   HID: wacom: gener...
285
  	bool has_mute_touch_switch;
d793ff818   Ping Cheng   HID: wacom: gener...
286
  	bool is_touch_on;
4492effff   Ping Cheng   Input: wacom - sh...
287
  };
7704ac937   Benjamin Tissoires   HID: wacom: imple...
288
  struct hid_data {
5ae6e89f7   Benjamin Tissoires   HID: wacom: imple...
289
290
  	__s16 inputmode;	/* InputMode HID feature, -1 if non-existent */
  	__s16 inputmode_index;	/* InputMode HID feature index in the report */
61ce346a2   Jason Gerecke   HID: wacom: gener...
291
  	bool sense_state;
7704ac937   Benjamin Tissoires   HID: wacom: imple...
292
293
294
  	bool inrange_state;
  	bool invert_state;
  	bool tipswitch;
9e429d564   Jason Gerecke   HID: wacom: gener...
295
296
  	bool barrelswitch;
  	bool barrelswitch2;
5ae6e89f7   Benjamin Tissoires   HID: wacom: imple...
297
298
299
300
301
302
  	int x;
  	int y;
  	int pressure;
  	int width;
  	int height;
  	int id;
499522c8c   Jason Gerecke   HID: wacom: Tie c...
303
  	int cc_report;
1b5d514a3   Jason Gerecke   HID: wacom: Ignor...
304
305
  	int cc_index;
  	int cc_value_index;
003f50ab6   Jason Gerecke   HID: wacom: Updat...
306
  	int last_slot_field;
1b5d514a3   Jason Gerecke   HID: wacom: Ignor...
307
308
  	int num_expected;
  	int num_received;
16e459890   Jason Gerecke   HID: wacom: Add a...
309
  	int bat_status;
93aab7fa4   Jason Gerecke   HID: wacom: gener...
310
311
312
313
  	int battery_capacity;
  	int bat_charging;
  	int bat_connected;
  	int ps_connected;
ed1fa7368   Ping Cheng   HID: wacom: gener...
314
  	bool pad_input_event_flag;
7704ac937   Benjamin Tissoires   HID: wacom: imple...
315
  };
e6f2813a6   Benjamin Tissoires   HID: wacom: EKR: ...
316
317
318
319
320
321
  struct wacom_remote_data {
  	struct {
  		u32 serial;
  		bool connected;
  	} remote[WACOM_MAX_REMOTES];
  };
3bea733ab   Ping Cheng   USB: wacom tablet...
322
  struct wacom_wac {
9956953ec   Benjamin Tissoires   HID: wacom: power...
323
  	char name[WACOM_NAME_MAX];
2a6cdbdd4   Jason Gerecke   HID: wacom: Intro...
324
325
  	char pen_name[WACOM_NAME_MAX];
  	char touch_name[WACOM_NAME_MAX];
d2d13f18a   Benjamin Tissoires   Input: wacom - cr...
326
  	char pad_name[WACOM_NAME_MAX];
29b473913   Benjamin Tissoires   Input: wacom - sw...
327
  	unsigned char data[WACOM_PKGLEN_MAX];
4fc193814   Ping Cheng   Input: wacom - do...
328
329
  	int tool[2];
  	int id[2];
f85c9dc67   Jason Gerecke   HID: wacom: gener...
330
  	__u64 serial[2];
b3bd7ef39   Ping Cheng   HID: wacom: pepor...
331
  	bool reporting_data;
e33da8a54   Jason Childs   Input: wacom - us...
332
  	struct wacom_features features;
4492effff   Ping Cheng   Input: wacom - sh...
333
  	struct wacom_shared *shared;
2a6cdbdd4   Jason Gerecke   HID: wacom: Intro...
334
335
  	struct input_dev *pen_input;
  	struct input_dev *touch_input;
d2d13f18a   Benjamin Tissoires   Input: wacom - cr...
336
  	struct input_dev *pad_input;
834172064   Jason Gerecke   HID: wacom: Queue...
337
  	struct kfifo_rec_ptr_2 pen_fifo;
16bf288c4   Chris Bagwell   Input: wacom - cr...
338
  	int pid;
1963518b9   Ping Cheng   Input: wacom - ad...
339
  	int num_contacts_left;
f81a1295c   Benjamin Tissoires   Input: wacom - pr...
340
341
  	u8 bt_features;
  	u8 bt_high_speed;
326ea2a90   Jason Gerecke   HID: wacom: Suppo...
342
343
  	int mode_report;
  	int mode_value;
7704ac937   Benjamin Tissoires   HID: wacom: imple...
344
  	struct hid_data hid_data;
d2ec58aee   Aaron Armstrong Skomra   HID: wacom: gener...
345
  	bool has_mute_touch_switch;
4082da80f   Benjamin Tissoires   HID: wacom: gener...
346
347
  	bool has_mode_change;
  	bool is_direct_mode;
b1f466a90   Aaron Armstrong Skomra   HID: wacom: gener...
348
  	bool is_invalid_bt_frame;
3bea733ab   Ping Cheng   USB: wacom tablet...
349
350
351
  };
  
  #endif