Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/input/tablet/wacom_wac.h
15112 views
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 32
16
17
/* packet length for individual models */
18
#define WACOM_PKGLEN_PENPRTN 7
19
#define WACOM_PKGLEN_GRAPHIRE 8
20
#define WACOM_PKGLEN_BBFUN 9
21
#define WACOM_PKGLEN_INTUOS 10
22
#define WACOM_PKGLEN_TPC1FG 5
23
#define WACOM_PKGLEN_TPC2FG 14
24
#define WACOM_PKGLEN_BBTOUCH 20
25
26
/* device IDs */
27
#define STYLUS_DEVICE_ID 0x02
28
#define TOUCH_DEVICE_ID 0x03
29
#define CURSOR_DEVICE_ID 0x06
30
#define ERASER_DEVICE_ID 0x0A
31
#define PAD_DEVICE_ID 0x0F
32
33
/* wacom data packet report IDs */
34
#define WACOM_REPORT_PENABLED 2
35
#define WACOM_REPORT_INTUOSREAD 5
36
#define WACOM_REPORT_INTUOSWRITE 6
37
#define WACOM_REPORT_INTUOSPAD 12
38
#define WACOM_REPORT_TPC1FG 6
39
#define WACOM_REPORT_TPC2FG 13
40
41
/* device quirks */
42
#define WACOM_QUIRK_MULTI_INPUT 0x0001
43
#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002
44
45
enum {
46
PENPARTNER = 0,
47
GRAPHIRE,
48
WACOM_G4,
49
PTU,
50
PL,
51
DTU,
52
BAMBOO_PT,
53
INTUOS,
54
INTUOS3S,
55
INTUOS3,
56
INTUOS3L,
57
INTUOS4S,
58
INTUOS4,
59
INTUOS4L,
60
WACOM_21UX2,
61
CINTIQ,
62
WACOM_BEE,
63
WACOM_MO,
64
TABLETPC,
65
TABLETPC2FG,
66
MAX_TYPE
67
};
68
69
struct wacom_features {
70
const char *name;
71
int pktlen;
72
int x_max;
73
int y_max;
74
int pressure_max;
75
int distance_max;
76
int type;
77
int x_resolution;
78
int y_resolution;
79
int device_type;
80
int x_phy;
81
int y_phy;
82
unsigned char unit;
83
unsigned char unitExpo;
84
int x_fuzz;
85
int y_fuzz;
86
int pressure_fuzz;
87
int distance_fuzz;
88
unsigned quirks;
89
};
90
91
struct wacom_shared {
92
bool stylus_in_proximity;
93
bool touch_down;
94
};
95
96
struct wacom_wac {
97
char name[64];
98
unsigned char *data;
99
int tool[2];
100
int id[2];
101
__u32 serial[2];
102
struct wacom_features features;
103
struct wacom_shared *shared;
104
struct input_dev *input;
105
};
106
107
#endif
108
109