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