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