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 64 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 #define WACOM_PKGLEN_BBTOUCH3 64 26 #define WACOM_PKGLEN_BBPEN 10 27 28 /* device IDs */ 29 #define STYLUS_DEVICE_ID 0x02 30 #define TOUCH_DEVICE_ID 0x03 31 #define CURSOR_DEVICE_ID 0x06 32 #define ERASER_DEVICE_ID 0x0A 33 #define PAD_DEVICE_ID 0x0F 34 35 /* wacom data packet report IDs */ 36 #define WACOM_REPORT_PENABLED 2 37 #define WACOM_REPORT_INTUOSREAD 5 38 #define WACOM_REPORT_INTUOSWRITE 6 39 #define WACOM_REPORT_INTUOSPAD 12 40 #define WACOM_REPORT_TPC1FG 6 41 #define WACOM_REPORT_TPC2FG 13 42 43 /* device quirks */ 44 #define WACOM_QUIRK_MULTI_INPUT 0x0001 45 #define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002 46 47 enum { 48 PENPARTNER = 0, 49 GRAPHIRE, 50 WACOM_G4, 51 PTU, 52 PL, 53 DTU, 54 BAMBOO_PT, 55 INTUOS, 56 INTUOS3S, 57 INTUOS3, 58 INTUOS3L, 59 INTUOS4S, 60 INTUOS4, 61 INTUOS4L, 62 WACOM_24HD, 63 WACOM_21UX2, 64 CINTIQ, 65 WACOM_BEE, 66 WACOM_MO, 67 TABLETPC, 68 TABLETPC2FG, 69 MAX_TYPE 70 }; 71 72 struct wacom_features { 73 const char *name; 74 int pktlen; 75 int x_max; 76 int y_max; 77 int pressure_max; 78 int distance_max; 79 int type; 80 int x_resolution; 81 int y_resolution; 82 int device_type; 83 int x_phy; 84 int y_phy; 85 unsigned char unit; 86 unsigned char unitExpo; 87 int x_fuzz; 88 int y_fuzz; 89 int pressure_fuzz; 90 int distance_fuzz; 91 unsigned quirks; 92 }; 93 94 struct wacom_shared { 95 bool stylus_in_proximity; 96 bool touch_down; 97 }; 98 99 struct wacom_wac { 100 char name[64]; 101 unsigned char *data; 102 int tool[2]; 103 int id[2]; 104 __u32 serial[2]; 105 struct wacom_features features; 106 struct wacom_shared *shared; 107 struct input_dev *input; 108 }; 109 110 #endif 111