/* * drivers/input/tablet/wacom_wac.h * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #ifndef WACOM_WAC_H #define WACOM_WAC_H #include <linux/types.h> /* maximum packet length for USB devices */ #define WACOM_PKGLEN_MAX 32 /* packet length for individual models */ #define WACOM_PKGLEN_PENPRTN 7 #define WACOM_PKGLEN_GRAPHIRE 8 #define WACOM_PKGLEN_BBFUN 9 #define WACOM_PKGLEN_INTUOS 10 #define WACOM_PKGLEN_TPC1FG 5 #define WACOM_PKGLEN_TPC2FG 14 #define WACOM_PKGLEN_BBTOUCH 20 /* device IDs */ #define STYLUS_DEVICE_ID 0x02 #define TOUCH_DEVICE_ID 0x03 #define CURSOR_DEVICE_ID 0x06 #define ERASER_DEVICE_ID 0x0A #define PAD_DEVICE_ID 0x0F /* wacom data packet report IDs */ #define WACOM_REPORT_PENABLED 2 #define WACOM_REPORT_INTUOSREAD 5 #define WACOM_REPORT_INTUOSWRITE 6 #define WACOM_REPORT_INTUOSPAD 12 #define WACOM_REPORT_TPC1FG 6 #define WACOM_REPORT_TPC2FG 13 /* device quirks */ #define WACOM_QUIRK_MULTI_INPUT 0x0001 #define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002 enum { PENPARTNER = 0, GRAPHIRE, WACOM_G4, PTU, PL, DTU, BAMBOO_PT, INTUOS, INTUOS3S, INTUOS3, INTUOS3L, INTUOS4S, INTUOS4, INTUOS4L, WACOM_21UX2, CINTIQ, WACOM_BEE, WACOM_MO, TABLETPC, TABLETPC2FG, MAX_TYPE }; struct wacom_features { const char *name; int pktlen; int x_max; int y_max; int pressure_max; int distance_max; int type; int x_resolution; int y_resolution; int device_type; int x_phy; int y_phy; unsigned char unit; unsigned char unitExpo; int x_fuzz; int y_fuzz; int pressure_fuzz; int distance_fuzz; unsigned quirks; }; struct wacom_shared { bool stylus_in_proximity; bool touch_down; }; struct wacom_wac { char name[64]; unsigned char *data; int tool[2]; int id[2]; __u32 serial[2]; struct wacom_features features; struct wacom_shared *shared; struct input_dev *input; }; #endif