2006-07-14 05:01:36 +04:00
/*
2007-05-08 00:16:29 +04:00
* drivers / input / tablet / wacom_wac . h
2006-07-14 05:01:36 +04: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-20 08:18:15 +03:00
# include <linux/types.h>
2009-12-15 11:35:24 +03:00
/* maximum packet length for USB devices */
2014-01-21 08:18:04 +04:00
# define WACOM_PKGLEN_MAX 68
2009-12-15 11:35:24 +03:00
2013-10-16 10:44:00 +04:00
# define WACOM_NAME_MAX 64
2009-12-15 11:35:24 +03:00
/* packet length for individual models */
# define WACOM_PKGLEN_PENPRTN 7
# define WACOM_PKGLEN_GRAPHIRE 8
2010-02-18 09:38:31 +03:00
# define WACOM_PKGLEN_BBFUN 9
# define WACOM_PKGLEN_INTUOS 10
2009-12-15 11:35:24 +03:00
# define WACOM_PKGLEN_TPC1FG 5
2010-02-18 09:38:31 +03:00
# define WACOM_PKGLEN_TPC2FG 14
2010-09-05 23:25:40 +04:00
# define WACOM_PKGLEN_BBTOUCH 20
2011-10-27 09:32:52 +04:00
# define WACOM_PKGLEN_BBTOUCH3 64
2011-10-27 09:34:21 +04:00
# define WACOM_PKGLEN_BBPEN 10
2012-03-26 10:26:11 +04:00
# define WACOM_PKGLEN_WIRELESS 32
2012-04-30 08:09:18 +04:00
# define WACOM_PKGLEN_MTOUCH 62
2012-11-03 23:16:15 +04:00
# define WACOM_PKGLEN_MTTPC 40
2014-01-21 08:18:04 +04:00
# define WACOM_PKGLEN_DTUS 68
2012-04-30 08:09:18 +04:00
/* wacom data size per MT contact */
# define WACOM_BYTES_PER_MT_PACKET 11
2012-10-21 11:38:04 +04:00
# define WACOM_BYTES_PER_24HDT_PACKET 14
2009-12-15 11:35:24 +03:00
2009-12-15 11:35:24 +03:00
/* device IDs */
2006-07-14 05:01:36 +04:00
# define STYLUS_DEVICE_ID 0x02
2008-11-24 19:44:27 +03:00
# define TOUCH_DEVICE_ID 0x03
2006-07-14 05:01:36 +04:00
# define CURSOR_DEVICE_ID 0x06
# define ERASER_DEVICE_ID 0x0A
2007-02-23 23:22:48 +03:00
# define PAD_DEVICE_ID 0x0F
2006-07-14 05:01:36 +04:00
2009-12-15 11:35:25 +03: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
2012-04-04 02:48:35 +04:00
# define WACOM_REPORT_INTUOS5PAD 3
2014-01-21 08:18:04 +04:00
# define WACOM_REPORT_DTUSPAD 21
2009-12-15 11:35:25 +03:00
# define WACOM_REPORT_TPC1FG 6
# define WACOM_REPORT_TPC2FG 13
2012-04-30 08:09:18 +04:00
# define WACOM_REPORT_TPCMT 13
2012-01-31 12:07:33 +04:00
# define WACOM_REPORT_TPCHID 15
# define WACOM_REPORT_TPCST 16
2014-01-21 08:18:04 +04:00
# define WACOM_REPORT_DTUS 17
2012-06-12 11:15:06 +04:00
# define WACOM_REPORT_TPC1FGE 18
2012-10-21 11:38:04 +04:00
# define WACOM_REPORT_24HDT 1
2013-11-26 06:44:55 +04:00
# define WACOM_REPORT_WL 128
2013-12-06 00:54:53 +04:00
# define WACOM_REPORT_USB 192
2009-12-15 11:35:25 +03:00
2010-09-05 23:26:16 +04:00
/* device quirks */
# define WACOM_QUIRK_MULTI_INPUT 0x0001
2010-09-05 23:57:13 +04:00
# define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002
2012-03-26 10:26:11 +04:00
# define WACOM_QUIRK_NO_INPUT 0x0004
# define WACOM_QUIRK_MONITOR 0x0008
2010-09-05 23:26:16 +04:00
2006-07-14 05:01:36 +04:00
enum {
PENPARTNER = 0 ,
GRAPHIRE ,
WACOM_G4 ,
PTU ,
PL ,
2010-06-28 12:10:51 +04:00
DTU ,
2014-01-21 08:18:04 +04:00
DTUS ,
2006-07-14 05:01:36 +04:00
INTUOS ,
2006-09-27 00:34:47 +04:00
INTUOS3S ,
2006-07-14 05:01:36 +04:00
INTUOS3 ,
INTUOS3L ,
2009-05-09 05:30:33 +04:00
INTUOS4S ,
INTUOS4 ,
INTUOS4L ,
2012-04-04 02:47:22 +04:00
INTUOS5S ,
INTUOS5 ,
INTUOS5L ,
2013-09-20 20:51:56 +04:00
INTUOSPS ,
INTUOSPM ,
INTUOSPL ,
2013-11-26 06:44:55 +04:00
INTUOSHT ,
2010-06-04 09:10:21 +04:00
WACOM_21UX2 ,
2012-07-25 10:54:11 +04:00
WACOM_22HD ,
2013-02-14 08:20:01 +04:00
DTK ,
2012-07-25 10:54:11 +04:00
WACOM_24HD ,
2013-09-20 20:47:35 +04:00
CINTIQ_HYBRID ,
2006-07-14 05:01:36 +04:00
CINTIQ ,
2008-03-13 23:46:46 +03:00
WACOM_BEE ,
2013-05-06 06:56:18 +04:00
WACOM_13HD ,
2007-06-15 07:32:48 +04:00
WACOM_MO ,
2012-06-12 11:14:12 +04:00
WIRELESS ,
BAMBOO_PT ,
2012-10-21 11:38:04 +04:00
WACOM_24HDT ,
2012-06-12 11:14:12 +04:00
TABLETPC , /* add new TPC below */
2012-06-12 11:15:06 +04:00
TABLETPCE ,
2009-12-15 11:35:24 +03:00
TABLETPC2FG ,
2012-04-30 08:09:18 +04:00
MTSCREEN ,
2012-11-03 23:16:15 +04:00
MTTPC ,
2006-07-14 05:01:36 +04:00
MAX_TYPE
} ;
struct wacom_features {
2010-02-18 09:38:31 +03:00
const char * name ;
2006-07-14 05:01:36 +04:00
int pktlen ;
int x_max ;
int y_max ;
int pressure_max ;
int distance_max ;
int type ;
2011-03-27 08:16:05 +04:00
int x_resolution ;
int y_resolution ;
2009-12-15 11:35:24 +03:00
int device_type ;
int x_phy ;
int y_phy ;
unsigned char unit ;
unsigned char unitExpo ;
2010-09-05 23:25:11 +04:00
int x_fuzz ;
int y_fuzz ;
int pressure_fuzz ;
int distance_fuzz ;
2010-09-05 23:26:16 +04:00
unsigned quirks ;
2012-04-30 08:09:17 +04:00
unsigned touch_max ;
2012-10-21 11:38:03 +04:00
int oVid ;
int oPid ;
2006-07-14 05:01:36 +04:00
} ;
2010-03-20 08:18:15 +03:00
struct wacom_shared {
bool stylus_in_proximity ;
2011-03-13 07:34:42 +03:00
bool touch_down ;
2013-12-06 00:54:53 +04:00
/* for wireless device to access USB interfaces */
unsigned touch_max ;
int type ;
struct input_dev * touch_input ;
2010-03-20 08:18:15 +03:00
} ;
2006-07-14 05:01:36 +04:00
struct wacom_wac {
2013-10-16 10:44:00 +04:00
char name [ WACOM_NAME_MAX ] ;
2007-05-03 08:54:54 +04:00
unsigned char * data ;
2011-03-13 07:33:33 +03:00
int tool [ 2 ] ;
int id [ 2 ] ;
2010-02-20 11:53:49 +03:00
__u32 serial [ 2 ] ;
2010-02-18 09:38:31 +03:00
struct wacom_features features ;
2010-03-20 08:18:15 +03:00
struct wacom_shared * shared ;
2010-03-20 08:18:15 +03:00
struct input_dev * input ;
2012-03-26 10:26:20 +04:00
int pid ;
2012-03-26 10:26:30 +04:00
int battery_capacity ;
2012-04-30 08:09:18 +04:00
int num_contacts_left ;
2006-07-14 05:01:36 +04:00
} ;
# endif