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