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