summaryrefslogtreecommitdiffstats
path: root/drivers/hid/wacom_wac.h
diff options
context:
space:
mode:
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>2014-07-24 22:10:09 +0200
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2014-07-26 03:55:38 +0200
commit471d17148c8b4174ac5f5283a73316d12c4379bc (patch)
tree07e8fc37b04e07479404806977f1c75cd0d09765 /drivers/hid/wacom_wac.h
parentInput: wacom - keep wacom_ids ordered (diff)
downloadlinux-471d17148c8b4174ac5f5283a73316d12c4379bc.tar.xz
linux-471d17148c8b4174ac5f5283a73316d12c4379bc.zip
Input: wacom - move the USB (now hid) Wacom driver in drivers/hid
wacom.ko is now a full HID driver, we have to move it into the proper subdirectory: drivers/hid. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/hid/wacom_wac.h')
-rw-r--r--drivers/hid/wacom_wac.h169
1 files changed, 169 insertions, 0 deletions
diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h
new file mode 100644
index 000000000000..4c592475b237
--- /dev/null
+++ b/drivers/hid/wacom_wac.h
@@ -0,0 +1,169 @@
+/*
+ * 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 68
+
+#define WACOM_NAME_MAX 64
+
+/* 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_TPC1FG_B 10
+#define WACOM_PKGLEN_TPC2FG 14
+#define WACOM_PKGLEN_BBTOUCH 20
+#define WACOM_PKGLEN_BBTOUCH3 64
+#define WACOM_PKGLEN_BBPEN 10
+#define WACOM_PKGLEN_WIRELESS 32
+#define WACOM_PKGLEN_MTOUCH 62
+#define WACOM_PKGLEN_MTTPC 40
+#define WACOM_PKGLEN_DTUS 68
+#define WACOM_PKGLEN_PENABLED 8
+
+/* wacom data size per MT contact */
+#define WACOM_BYTES_PER_MT_PACKET 11
+#define WACOM_BYTES_PER_24HDT_PACKET 14
+
+/* 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_INTUOS5PAD 3
+#define WACOM_REPORT_DTUSPAD 21
+#define WACOM_REPORT_TPC1FG 6
+#define WACOM_REPORT_TPC2FG 13
+#define WACOM_REPORT_TPCMT 13
+#define WACOM_REPORT_TPCMT2 3
+#define WACOM_REPORT_TPCHID 15
+#define WACOM_REPORT_TPCST 16
+#define WACOM_REPORT_DTUS 17
+#define WACOM_REPORT_TPC1FGE 18
+#define WACOM_REPORT_24HDT 1
+#define WACOM_REPORT_WL 128
+#define WACOM_REPORT_USB 192
+
+/* device quirks */
+#define WACOM_QUIRK_MULTI_INPUT 0x0001
+#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002
+#define WACOM_QUIRK_NO_INPUT 0x0004
+#define WACOM_QUIRK_MONITOR 0x0008
+
+enum {
+ PENPARTNER = 0,
+ GRAPHIRE,
+ WACOM_G4,
+ PTU,
+ PL,
+ DTU,
+ DTUS,
+ INTUOS,
+ INTUOS3S,
+ INTUOS3,
+ INTUOS3L,
+ INTUOS4S,
+ INTUOS4,
+ INTUOS4L,
+ INTUOS5S,
+ INTUOS5,
+ INTUOS5L,
+ INTUOSPS,
+ INTUOSPM,
+ INTUOSPL,
+ INTUOSHT,
+ WACOM_21UX2,
+ WACOM_22HD,
+ DTK,
+ WACOM_24HD,
+ CINTIQ_HYBRID,
+ CINTIQ,
+ WACOM_BEE,
+ WACOM_13HD,
+ WACOM_MO,
+ WIRELESS,
+ BAMBOO_PT,
+ WACOM_24HDT,
+ TABLETPC, /* add new TPC below */
+ TABLETPCE,
+ TABLETPC2FG,
+ MTSCREEN,
+ MTTPC,
+ MTTPC_B,
+ MAX_TYPE
+};
+
+struct wacom_features {
+ const char *name;
+ int x_max;
+ int y_max;
+ int pressure_max;
+ int distance_max;
+ int type;
+ int x_resolution;
+ int y_resolution;
+ int x_min;
+ int y_min;
+ int device_type;
+ int x_phy;
+ int y_phy;
+ unsigned unit;
+ int unitExpo;
+ int x_fuzz;
+ int y_fuzz;
+ int pressure_fuzz;
+ int distance_fuzz;
+ unsigned quirks;
+ unsigned touch_max;
+ int oVid;
+ int oPid;
+ int pktlen;
+ bool check_for_hid_type;
+ int hid_type;
+};
+
+struct wacom_shared {
+ bool stylus_in_proximity;
+ bool touch_down;
+ /* for wireless device to access USB interfaces */
+ unsigned touch_max;
+ int type;
+ struct input_dev *touch_input;
+};
+
+struct wacom_wac {
+ char name[WACOM_NAME_MAX];
+ char pad_name[WACOM_NAME_MAX];
+ unsigned char data[WACOM_PKGLEN_MAX];
+ int tool[2];
+ int id[2];
+ __u32 serial[2];
+ struct wacom_features features;
+ struct wacom_shared *shared;
+ struct input_dev *input;
+ struct input_dev *pad_input;
+ int pid;
+ int battery_capacity;
+ int num_contacts_left;
+};
+
+#endif