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 68 16 17 #define WACOM_NAME_MAX 64 18 19 /* packet length for individual models */ 20 #define WACOM_PKGLEN_PENPRTN 7 21 #define WACOM_PKGLEN_GRAPHIRE 8 22 #define WACOM_PKGLEN_BBFUN 9 23 #define WACOM_PKGLEN_INTUOS 10 24 #define WACOM_PKGLEN_TPC1FG 5 25 #define WACOM_PKGLEN_TPC1FG_B 10 26 #define WACOM_PKGLEN_TPC2FG 14 27 #define WACOM_PKGLEN_BBTOUCH 20 28 #define WACOM_PKGLEN_BBTOUCH3 64 29 #define WACOM_PKGLEN_BBPEN 10 30 #define WACOM_PKGLEN_WIRELESS 32 31 #define WACOM_PKGLEN_MTOUCH 62 32 #define WACOM_PKGLEN_MTTPC 40 33 #define WACOM_PKGLEN_DTUS 68 34 #define WACOM_PKGLEN_PENABLED 8 35 36 /* wacom data size per MT contact */ 37 #define WACOM_BYTES_PER_MT_PACKET 11 38 #define WACOM_BYTES_PER_24HDT_PACKET 14 39 40 /* device IDs */ 41 #define STYLUS_DEVICE_ID 0x02 42 #define TOUCH_DEVICE_ID 0x03 43 #define CURSOR_DEVICE_ID 0x06 44 #define ERASER_DEVICE_ID 0x0A 45 #define PAD_DEVICE_ID 0x0F 46 47 /* wacom data packet report IDs */ 48 #define WACOM_REPORT_PENABLED 2 49 #define WACOM_REPORT_PENABLED_BT 3 50 #define WACOM_REPORT_INTUOSREAD 5 51 #define WACOM_REPORT_INTUOSWRITE 6 52 #define WACOM_REPORT_INTUOSPAD 12 53 #define WACOM_REPORT_INTUOS5PAD 3 54 #define WACOM_REPORT_DTUSPAD 21 55 #define WACOM_REPORT_TPC1FG 6 56 #define WACOM_REPORT_TPC2FG 13 57 #define WACOM_REPORT_TPCMT 13 58 #define WACOM_REPORT_TPCMT2 3 59 #define WACOM_REPORT_TPCHID 15 60 #define WACOM_REPORT_TPCST 16 61 #define WACOM_REPORT_DTUS 17 62 #define WACOM_REPORT_TPC1FGE 18 63 #define WACOM_REPORT_24HDT 1 64 #define WACOM_REPORT_WL 128 65 #define WACOM_REPORT_USB 192 66 67 /* device quirks */ 68 #define WACOM_QUIRK_MULTI_INPUT 0x0001 69 #define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002 70 #define WACOM_QUIRK_NO_INPUT 0x0004 71 #define WACOM_QUIRK_MONITOR 0x0008 72 #define WACOM_QUIRK_BATTERY 0x0010 73 74 enum { 75 PENPARTNER = 0, 76 GRAPHIRE, 77 GRAPHIRE_BT, 78 WACOM_G4, 79 PTU, 80 PL, 81 DTU, 82 DTUS, 83 INTUOS, 84 INTUOS3S, 85 INTUOS3, 86 INTUOS3L, 87 INTUOS4S, 88 INTUOS4, 89 INTUOS4WL, 90 INTUOS4L, 91 INTUOS5S, 92 INTUOS5, 93 INTUOS5L, 94 INTUOSPS, 95 INTUOSPM, 96 INTUOSPL, 97 INTUOSHT, 98 WACOM_21UX2, 99 WACOM_22HD, 100 DTK, 101 WACOM_24HD, 102 CINTIQ_HYBRID, 103 CINTIQ, 104 WACOM_BEE, 105 WACOM_13HD, 106 WACOM_MO, 107 WIRELESS, 108 BAMBOO_PT, 109 WACOM_24HDT, 110 TABLETPC, /* add new TPC below */ 111 TABLETPCE, 112 TABLETPC2FG, 113 MTSCREEN, 114 MTTPC, 115 MTTPC_B, 116 MAX_TYPE 117 }; 118 119 struct wacom_features { 120 const char *name; 121 int x_max; 122 int y_max; 123 int pressure_max; 124 int distance_max; 125 int type; 126 int x_resolution; 127 int y_resolution; 128 int x_min; 129 int y_min; 130 int device_type; 131 int x_phy; 132 int y_phy; 133 unsigned unit; 134 int unitExpo; 135 int x_fuzz; 136 int y_fuzz; 137 int pressure_fuzz; 138 int distance_fuzz; 139 unsigned quirks; 140 unsigned touch_max; 141 int oVid; 142 int oPid; 143 int pktlen; 144 bool check_for_hid_type; 145 int hid_type; 146 }; 147 148 struct wacom_shared { 149 bool stylus_in_proximity; 150 bool touch_down; 151 /* for wireless device to access USB interfaces */ 152 unsigned touch_max; 153 int type; 154 struct input_dev *touch_input; 155 }; 156 157 struct wacom_wac { 158 char name[WACOM_NAME_MAX]; 159 char pad_name[WACOM_NAME_MAX]; 160 char bat_name[WACOM_NAME_MAX]; 161 char ac_name[WACOM_NAME_MAX]; 162 unsigned char data[WACOM_PKGLEN_MAX]; 163 int tool[2]; 164 int id[2]; 165 __u32 serial[2]; 166 struct wacom_features features; 167 struct wacom_shared *shared; 168 struct input_dev *input; 169 struct input_dev *pad_input; 170 int pid; 171 int battery_capacity; 172 int num_contacts_left; 173 int bat_charging; 174 int ps_connected; 175 u8 bt_features; 176 u8 bt_high_speed; 177 }; 178 179 #endif 180