]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - drivers/input/tablet/wacom_wac.h
Input: ab8500-ponkey - add device tree support
[mirror_ubuntu-bionic-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
ee54500d 32
ec67bbed 33/* device IDs */
3bea733a 34#define STYLUS_DEVICE_ID 0x02
545f4e99 35#define TOUCH_DEVICE_ID 0x03
3bea733a
PC
36#define CURSOR_DEVICE_ID 0x06
37#define ERASER_DEVICE_ID 0x0A
80d4e8e9 38#define PAD_DEVICE_ID 0x0F
3bea733a 39
cad74700
PC
40/* wacom data packet report IDs */
41#define WACOM_REPORT_PENABLED 2
42#define WACOM_REPORT_INTUOSREAD 5
43#define WACOM_REPORT_INTUOSWRITE 6
44#define WACOM_REPORT_INTUOSPAD 12
f860e581 45#define WACOM_REPORT_INTUOS5PAD 3
cad74700
PC
46#define WACOM_REPORT_TPC1FG 6
47#define WACOM_REPORT_TPC2FG 13
1963518b 48#define WACOM_REPORT_TPCMT 13
31175a83
PC
49#define WACOM_REPORT_TPCHID 15
50#define WACOM_REPORT_TPCST 16
cad74700 51
bc73dd39
HR
52/* device quirks */
53#define WACOM_QUIRK_MULTI_INPUT 0x0001
f4ccbef2 54#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002
d3825d51
CB
55#define WACOM_QUIRK_NO_INPUT 0x0004
56#define WACOM_QUIRK_MONITOR 0x0008
bc73dd39 57
3bea733a
PC
58enum {
59 PENPARTNER = 0,
60 GRAPHIRE,
61 WACOM_G4,
62 PTU,
63 PL,
c8f2edc5 64 DTU,
4a88081e 65 BAMBOO_PT,
d3825d51 66 WIRELESS,
3bea733a 67 INTUOS,
8d32e3ae 68 INTUOS3S,
3bea733a
PC
69 INTUOS3,
70 INTUOS3L,
6f660f12
PC
71 INTUOS4S,
72 INTUOS4,
73 INTUOS4L,
9fee6195
JG
74 INTUOS5S,
75 INTUOS5,
76 INTUOS5L,
803296b6 77 WACOM_24HD,
3a4b4aaa 78 WACOM_21UX2,
3bea733a 79 CINTIQ,
0e1763f5 80 WACOM_BEE,
7ecfbfd3 81 WACOM_MO,
545f4e99 82 TABLETPC,
ec67bbed 83 TABLETPC2FG,
1963518b 84 MTSCREEN,
3bea733a
PC
85 MAX_TYPE
86};
87
88struct wacom_features {
e33da8a5 89 const char *name;
3bea733a
PC
90 int pktlen;
91 int x_max;
92 int y_max;
93 int pressure_max;
94 int distance_max;
95 int type;
e35fb8c1
PC
96 int x_resolution;
97 int y_resolution;
ec67bbed
PC
98 int device_type;
99 int x_phy;
100 int y_phy;
101 unsigned char unit;
102 unsigned char unitExpo;
fed87e65
HR
103 int x_fuzz;
104 int y_fuzz;
105 int pressure_fuzz;
106 int distance_fuzz;
bc73dd39 107 unsigned quirks;
f393ee2b 108 unsigned touch_max;
3bea733a
PC
109};
110
4492efff
PC
111struct wacom_shared {
112 bool stylus_in_proximity;
a43c7c53 113 bool touch_down;
4492efff
PC
114};
115
3bea733a 116struct wacom_wac {
49b764ae 117 char name[64];
4ee1fc8e 118 unsigned char *data;
4fc19381
PC
119 int tool[2];
120 int id[2];
49b764ae 121 __u32 serial[2];
e33da8a5 122 struct wacom_features features;
4492efff 123 struct wacom_shared *shared;
8da23fc1 124 struct input_dev *input;
16bf288c 125 int pid;
a1d552cc 126 int battery_capacity;
1963518b
PC
127 int num_contacts_left;
128 int *slots;
3bea733a
PC
129};
130
131#endif