2006-07-13 18:01:36 -07:00
/*
2007-05-07 16:16:29 -04:00
* drivers / input / tablet / wacom_wac . h
2006-07-13 18:01:36 -07:00
*
* 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
2010-03-19 22:18:15 -07:00
# include <linux/types.h>
2009-12-15 00:35:24 -08:00
/* maximum packet length for USB devices */
2011-10-26 22:34:21 -07:00
# define WACOM_PKGLEN_MAX 64
2009-12-15 00:35:24 -08:00
/* packet length for individual models */
# define WACOM_PKGLEN_PENPRTN 7
# define WACOM_PKGLEN_GRAPHIRE 8
2010-02-17 22:38:31 -08:00
# define WACOM_PKGLEN_BBFUN 9
# define WACOM_PKGLEN_INTUOS 10
2009-12-15 00:35:24 -08:00
# define WACOM_PKGLEN_TPC1FG 5
2010-02-17 22:38:31 -08:00
# define WACOM_PKGLEN_TPC2FG 14
2010-09-05 12:25:40 -07:00
# define WACOM_PKGLEN_BBTOUCH 20
2011-10-26 22:32:52 -07:00
# define WACOM_PKGLEN_BBTOUCH3 64
2011-10-26 22:34:21 -07:00
# define WACOM_PKGLEN_BBPEN 10
2009-12-15 00:35:24 -08:00
2009-12-15 00:35:24 -08:00
/* device IDs */
2006-07-13 18:01:36 -07:00
# define STYLUS_DEVICE_ID 0x02
2008-11-24 11:44:27 -05:00
# define TOUCH_DEVICE_ID 0x03
2006-07-13 18:01:36 -07:00
# define CURSOR_DEVICE_ID 0x06
# define ERASER_DEVICE_ID 0x0A
2007-02-23 12:22:48 -08:00
# define PAD_DEVICE_ID 0x0F
2006-07-13 18:01:36 -07:00
2009-12-15 00:35:25 -08:00
/* 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
2010-09-05 12:26:16 -07:00
/* device quirks */
# define WACOM_QUIRK_MULTI_INPUT 0x0001
2010-09-05 12:57:13 -07:00
# define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002
2010-09-05 12:26:16 -07:00
2006-07-13 18:01:36 -07:00
enum {
PENPARTNER = 0 ,
GRAPHIRE ,
WACOM_G4 ,
PTU ,
PL ,
2010-06-28 01:10:51 -07:00
DTU ,
2010-09-05 12:25:40 -07:00
BAMBOO_PT ,
2006-07-13 18:01:36 -07:00
INTUOS ,
2006-09-26 13:34:47 -07:00
INTUOS3S ,
2006-07-13 18:01:36 -07:00
INTUOS3 ,
INTUOS3L ,
2009-05-08 18:30:33 -07:00
INTUOS4S ,
INTUOS4 ,
INTUOS4L ,
2011-12-12 00:11:45 -08:00
WACOM_24HD ,
2010-06-03 22:10:21 -07:00
WACOM_21UX2 ,
2006-07-13 18:01:36 -07:00
CINTIQ ,
2008-03-13 16:46:46 -04:00
WACOM_BEE ,
2007-06-14 23:32:48 -04:00
WACOM_MO ,
2008-11-24 11:44:27 -05:00
TABLETPC ,
2009-12-15 00:35:24 -08:00
TABLETPC2FG ,
2006-07-13 18:01:36 -07:00
MAX_TYPE
} ;
struct wacom_features {
2010-02-17 22:38:31 -08:00
const char * name ;
2006-07-13 18:01:36 -07:00
int pktlen ;
int x_max ;
int y_max ;
int pressure_max ;
int distance_max ;
int type ;
2011-03-26 21:16:05 -07:00
int x_resolution ;
int y_resolution ;
2009-12-15 00:35:24 -08:00
int device_type ;
int x_phy ;
int y_phy ;
unsigned char unit ;
unsigned char unitExpo ;
2010-09-05 12:25:11 -07:00
int x_fuzz ;
int y_fuzz ;
int pressure_fuzz ;
int distance_fuzz ;
2010-09-05 12:26:16 -07:00
unsigned quirks ;
2006-07-13 18:01:36 -07:00
} ;
2010-03-19 22:18:15 -07:00
struct wacom_shared {
bool stylus_in_proximity ;
2011-03-12 20:34:42 -08:00
bool touch_down ;
2010-03-19 22:18:15 -07:00
} ;
2006-07-13 18:01:36 -07:00
struct wacom_wac {
2010-02-20 00:53:49 -08:00
char name [ 64 ] ;
2007-05-03 00:54:54 -04:00
unsigned char * data ;
2011-03-12 20:33:33 -08:00
int tool [ 2 ] ;
int id [ 2 ] ;
2010-02-20 00:53:49 -08:00
__u32 serial [ 2 ] ;
2010-02-17 22:38:31 -08:00
struct wacom_features features ;
2010-03-19 22:18:15 -07:00
struct wacom_shared * shared ;
2010-03-19 22:18:15 -07:00
struct input_dev * input ;
2006-07-13 18:01:36 -07:00
} ;
# endif