]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - drivers/input/tablet/wacom_wac.h
Input: wacom - clean up device type code
[mirror_ubuntu-artful-kernel.git] / drivers / input / tablet / wacom_wac.h
CommitLineData
3bea733a 1/*
4104d13f 2 * drivers/input/tablet/wacom_wac.h
3bea733a
PC
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
51269fe8
DT
12#include <linux/types.h>
13
ee54500d 14/* maximum packet length for USB devices */
73149ab8 15#define WACOM_PKGLEN_MAX 64
ee54500d
PC
16
17/* packet length for individual models */
18#define WACOM_PKGLEN_PENPRTN 7
19#define WACOM_PKGLEN_GRAPHIRE 8
e33da8a5
JC
20#define WACOM_PKGLEN_BBFUN 9
21#define WACOM_PKGLEN_INTUOS 10
ee54500d 22#define WACOM_PKGLEN_TPC1FG 5
e33da8a5 23#define WACOM_PKGLEN_TPC2FG 14
4a88081e 24#define WACOM_PKGLEN_BBTOUCH 20
4134361a 25#define WACOM_PKGLEN_BBTOUCH3 64
73149ab8 26#define WACOM_PKGLEN_BBPEN 10
d3825d51 27#define WACOM_PKGLEN_WIRELESS 32
1963518b
PC
28#define WACOM_PKGLEN_MTOUCH 62
29
30/* wacom data size per MT contact */
31#define WACOM_BYTES_PER_MT_PACKET 11
b1e4279e 32#define WACOM_BYTES_PER_24HDT_PACKET 14
ee54500d 33
ec67bbed 34/* device IDs */
3bea733a 35#define STYLUS_DEVICE_ID 0x02
545f4e99 36#define TOUCH_DEVICE_ID 0x03
3bea733a
PC
37#define CURSOR_DEVICE_ID 0x06
38#define ERASER_DEVICE_ID 0x0A
80d4e8e9 39#define PAD_DEVICE_ID 0x0F
3bea733a 40
cad74700
PC
41/* wacom data packet report IDs */
42#define WACOM_REPORT_PENABLED 2
43#define WACOM_REPORT_INTUOSREAD 5
44#define WACOM_REPORT_INTUOSWRITE 6
45#define WACOM_REPORT_INTUOSPAD 12
f860e581 46#define WACOM_REPORT_INTUOS5PAD 3
cad74700
PC
47#define WACOM_REPORT_TPC1FG 6
48#define WACOM_REPORT_TPC2FG 13
1963518b 49#define WACOM_REPORT_TPCMT 13
31175a83
PC
50#define WACOM_REPORT_TPCHID 15
51#define WACOM_REPORT_TPCST 16
ac173837 52#define WACOM_REPORT_TPC1FGE 18
b1e4279e 53#define WACOM_REPORT_24HDT 1
cad74700 54
bc73dd39
HR
55/* device quirks */
56#define WACOM_QUIRK_MULTI_INPUT 0x0001
f4ccbef2 57#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002
d3825d51
CB
58#define WACOM_QUIRK_NO_INPUT 0x0004
59#define WACOM_QUIRK_MONITOR 0x0008
bc73dd39 60
3bea733a
PC
61enum {
62 PENPARTNER = 0,
63 GRAPHIRE,
64 WACOM_G4,
65 PTU,
66 PL,
c8f2edc5 67 DTU,
3bea733a 68 INTUOS,
8d32e3ae 69 INTUOS3S,
3bea733a
PC
70 INTUOS3,
71 INTUOS3L,
6f660f12
PC
72 INTUOS4S,
73 INTUOS4,
74 INTUOS4L,
9fee6195
JG
75 INTUOS5S,
76 INTUOS5,
77 INTUOS5L,
3a4b4aaa 78 WACOM_21UX2,
d838c644
PC
79 WACOM_22HD,
80 WACOM_24HD,
3bea733a 81 CINTIQ,
0e1763f5 82 WACOM_BEE,
7ecfbfd3 83 WACOM_MO,
ea2e6024
PC
84 WIRELESS,
85 BAMBOO_PT,
b1e4279e 86 WACOM_24HDT,
ea2e6024 87 TABLETPC, /* add new TPC below */
ac173837 88 TABLETPCE,
ec67bbed 89 TABLETPC2FG,
1963518b 90 MTSCREEN,
3bea733a
PC
91 MAX_TYPE
92};
93
94struct wacom_features {
e33da8a5 95 const char *name;
3bea733a
PC
96 int pktlen;
97 int x_max;
98 int y_max;
99 int pressure_max;
100 int distance_max;
101 int type;
e35fb8c1
PC
102 int x_resolution;
103 int y_resolution;
ec67bbed
PC
104 int device_type;
105 int x_phy;
106 int y_phy;
107 unsigned char unit;
108 unsigned char unitExpo;
fed87e65
HR
109 int x_fuzz;
110 int y_fuzz;
111 int pressure_fuzz;
112 int distance_fuzz;
bc73dd39 113 unsigned quirks;
f393ee2b 114 unsigned touch_max;
aea2bf6a
JG
115 int oVid;
116 int oPid;
3bea733a
PC
117};
118
4492efff
PC
119struct wacom_shared {
120 bool stylus_in_proximity;
a43c7c53 121 bool touch_down;
4492efff
PC
122};
123
3bea733a 124struct wacom_wac {
49b764ae 125 char name[64];
4ee1fc8e 126 unsigned char *data;
4fc19381
PC
127 int tool[2];
128 int id[2];
49b764ae 129 __u32 serial[2];
e33da8a5 130 struct wacom_features features;
4492efff 131 struct wacom_shared *shared;
8da23fc1 132 struct input_dev *input;
16bf288c 133 int pid;
a1d552cc 134 int battery_capacity;
1963518b
PC
135 int num_contacts_left;
136 int *slots;
3bea733a
PC
137};
138
139#endif