wacom_wac.h 2.3 KB
Newer Older
1
/*
2
 * drivers/input/tablet/wacom_wac.h
3 4 5 6 7 8 9 10 11
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */
#ifndef WACOM_WAC_H
#define WACOM_WAC_H

12 13
#include <linux/types.h>

14
/* maximum packet length for USB devices */
15
#define WACOM_PKGLEN_MAX	64
16 17 18 19

/* packet length for individual models */
#define WACOM_PKGLEN_PENPRTN	 7
#define WACOM_PKGLEN_GRAPHIRE	 8
20 21
#define WACOM_PKGLEN_BBFUN	 9
#define WACOM_PKGLEN_INTUOS	10
22
#define WACOM_PKGLEN_TPC1FG	 5
23
#define WACOM_PKGLEN_TPC2FG	14
24
#define WACOM_PKGLEN_BBTOUCH	20
25
#define WACOM_PKGLEN_BBTOUCH3	64
26
#define WACOM_PKGLEN_BBPEN	10
27
#define WACOM_PKGLEN_WIRELESS	32
28

29
/* device IDs */
30
#define STYLUS_DEVICE_ID	0x02
31
#define TOUCH_DEVICE_ID		0x03
32 33
#define CURSOR_DEVICE_ID	0x06
#define ERASER_DEVICE_ID	0x0A
P
Ping Cheng 已提交
34
#define PAD_DEVICE_ID		0x0F
35

36 37 38 39 40 41 42
/* wacom data packet report IDs */
#define WACOM_REPORT_PENABLED		2
#define WACOM_REPORT_INTUOSREAD		5
#define WACOM_REPORT_INTUOSWRITE	6
#define WACOM_REPORT_INTUOSPAD		12
#define WACOM_REPORT_TPC1FG		6
#define WACOM_REPORT_TPC2FG		13
43 44
#define WACOM_REPORT_TPCHID		15
#define WACOM_REPORT_TPCST		16
45

46 47
/* device quirks */
#define WACOM_QUIRK_MULTI_INPUT		0x0001
48
#define WACOM_QUIRK_BBTOUCH_LOWRES	0x0002
49 50
#define WACOM_QUIRK_NO_INPUT		0x0004
#define WACOM_QUIRK_MONITOR		0x0008
51

52 53 54 55 56 57
enum {
	PENPARTNER = 0,
	GRAPHIRE,
	WACOM_G4,
	PTU,
	PL,
58
	DTU,
59
	BAMBOO_PT,
60
	WIRELESS,
61
	INTUOS,
P
Ping Cheng 已提交
62
	INTUOS3S,
63 64
	INTUOS3,
	INTUOS3L,
65 66 67
	INTUOS4S,
	INTUOS4,
	INTUOS4L,
68
	WACOM_24HD,
69
	WACOM_21UX2,
70
	CINTIQ,
71
	WACOM_BEE,
72
	WACOM_MO,
73
	TABLETPC,
74
	TABLETPC2FG,
75 76 77 78
	MAX_TYPE
};

struct wacom_features {
79
	const char *name;
80 81 82 83 84 85
	int pktlen;
	int x_max;
	int y_max;
	int pressure_max;
	int distance_max;
	int type;
86 87
	int x_resolution;
	int y_resolution;
88 89 90 91 92
	int device_type;
	int x_phy;
	int y_phy;
	unsigned char unit;
	unsigned char unitExpo;
93 94 95 96
	int x_fuzz;
	int y_fuzz;
	int pressure_fuzz;
	int distance_fuzz;
97
	unsigned quirks;
98 99
};

100 101
struct wacom_shared {
	bool stylus_in_proximity;
102
	bool touch_down;
103 104
};

105
struct wacom_wac {
106
	char name[64];
107
	unsigned char *data;
108 109
	int tool[2];
	int id[2];
110
	__u32 serial[2];
111
	struct wacom_features features;
112
	struct wacom_shared *shared;
113
	struct input_dev *input;
114
	int pid;
115 116 117
};

#endif