aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephane Chatty <chatty@enac.fr>2009-05-20 09:41:24 -0400
committerJiri Kosina <jkosina@suse.cz>2009-05-20 09:48:35 -0400
commit89f536ccfa8b370ff4d054f4061858ca9322c25a (patch)
tree51a2ac408a3fe1d682d218a397f7cd8d30176ebe
parenta4f1cb9f3c42e5d278b0678ed5225d9331a8dcff (diff)
HID: add new multitouch and digitizer contants
Added constants to hid.h for all digitizer usages (including the new multitouch ones that are not yet in the official USB spec but are being pushed by Microsft as described in their paper "Digitizer Drivers for Windows Touch and Pen-Based Computers"). Updated hid-debug.c to support the new MT input constants such as ABS_MT_POSITION_X. Signed-off-by: Stephane Chatty <chatty@enac.fr> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/hid-debug.c23
-rw-r--r--include/linux/hid.h36
2 files changed, 57 insertions, 2 deletions
diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index 47ac1a7d66e1..04359ed64b87 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -137,6 +137,14 @@ static const struct hid_usage_entry hid_usage_table[] = {
137 {0, 0x44, "BarrelSwitch"}, 137 {0, 0x44, "BarrelSwitch"},
138 {0, 0x45, "Eraser"}, 138 {0, 0x45, "Eraser"},
139 {0, 0x46, "TabletPick"}, 139 {0, 0x46, "TabletPick"},
140 {0, 0x47, "Confidence"},
141 {0, 0x48, "Width"},
142 {0, 0x49, "Height"},
143 {0, 0x51, "ContactID"},
144 {0, 0x52, "InputMode"},
145 {0, 0x53, "DeviceIndex"},
146 {0, 0x54, "ContactCount"},
147 {0, 0x55, "ContactMaximumNumber"},
140 { 15, 0, "PhysicalInterfaceDevice" }, 148 { 15, 0, "PhysicalInterfaceDevice" },
141 {0, 0x00, "Undefined"}, 149 {0, 0x00, "Undefined"},
142 {0, 0x01, "Physical_Interface_Device"}, 150 {0, 0x01, "Physical_Interface_Device"},
@@ -514,9 +522,11 @@ static const char *events[EV_MAX + 1] = {
514 [EV_FF_STATUS] = "ForceFeedbackStatus", 522 [EV_FF_STATUS] = "ForceFeedbackStatus",
515}; 523};
516 524
517static const char *syncs[2] = { 525static const char *syncs[3] = {
518 [SYN_REPORT] = "Report", [SYN_CONFIG] = "Config", 526 [SYN_REPORT] = "Report", [SYN_CONFIG] = "Config",
527 [SYN_MT_REPORT] = "MT Report",
519}; 528};
529
520static const char *keys[KEY_MAX + 1] = { 530static const char *keys[KEY_MAX + 1] = {
521 [KEY_RESERVED] = "Reserved", [KEY_ESC] = "Esc", 531 [KEY_RESERVED] = "Reserved", [KEY_ESC] = "Esc",
522 [KEY_1] = "1", [KEY_2] = "2", 532 [KEY_1] = "1", [KEY_2] = "2",
@@ -734,8 +744,17 @@ static const char *absolutes[ABS_MAX + 1] = {
734 [ABS_HAT2Y] = "Hat2Y", [ABS_HAT3X] = "Hat3X", 744 [ABS_HAT2Y] = "Hat2Y", [ABS_HAT3X] = "Hat3X",
735 [ABS_HAT3Y] = "Hat 3Y", [ABS_PRESSURE] = "Pressure", 745 [ABS_HAT3Y] = "Hat 3Y", [ABS_PRESSURE] = "Pressure",
736 [ABS_DISTANCE] = "Distance", [ABS_TILT_X] = "XTilt", 746 [ABS_DISTANCE] = "Distance", [ABS_TILT_X] = "XTilt",
737 [ABS_TILT_Y] = "YTilt", [ABS_TOOL_WIDTH] = "Tool Width", 747 [ABS_TILT_Y] = "YTilt", [ABS_TOOL_WIDTH] = "ToolWidth",
738 [ABS_VOLUME] = "Volume", [ABS_MISC] = "Misc", 748 [ABS_VOLUME] = "Volume", [ABS_MISC] = "Misc",
749 [ABS_MT_TOUCH_MAJOR] = "MTMajor",
750 [ABS_MT_TOUCH_MINOR] = "MTMinor",
751 [ABS_MT_WIDTH_MAJOR] = "MTMajorW",
752 [ABS_MT_WIDTH_MINOR] = "MTMinorW",
753 [ABS_MT_ORIENTATION] = "MTOrientation",
754 [ABS_MT_POSITION_X] = "MTPositionX",
755 [ABS_MT_POSITION_Y] = "MTPositionY",
756 [ABS_MT_TOOL_TYPE] = "MTToolType",
757 [ABS_MT_BLOB_ID] = "MTBlobID",
739}; 758};
740 759
741static const char *misc[MSC_MAX + 1] = { 760static const char *misc[MSC_MAX + 1] = {
diff --git a/include/linux/hid.h b/include/linux/hid.h
index a72876e43589..53489fd4d700 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -238,6 +238,42 @@ struct hid_item {
238#define HID_GD_RIGHT 0x00010092 238#define HID_GD_RIGHT 0x00010092
239#define HID_GD_LEFT 0x00010093 239#define HID_GD_LEFT 0x00010093
240 240
241#define HID_DG_DIGITIZER 0x000d0001
242#define HID_DG_PEN 0x000d0002
243#define HID_DG_LIGHTPEN 0x000d0003
244#define HID_DG_TOUCHSCREEN 0x000d0004
245#define HID_DG_TOUCHPAD 0x000d0005
246#define HID_DG_STYLUS 0x000d0020
247#define HID_DG_PUCK 0x000d0021
248#define HID_DG_FINGER 0x000d0022
249#define HID_DG_TIPPRESSURE 0x000d0030
250#define HID_DG_BARRELPRESSURE 0x000d0031
251#define HID_DG_INRANGE 0x000d0032
252#define HID_DG_TOUCH 0x000d0033
253#define HID_DG_UNTOUCH 0x000d0034
254#define HID_DG_TAP 0x000d0035
255#define HID_DG_TABLETFUNCTIONKEY 0x000d0039
256#define HID_DG_PROGRAMCHANGEKEY 0x000d003a
257#define HID_DG_INVERT 0x000d003c
258#define HID_DG_TIPSWITCH 0x000d0042
259#define HID_DG_TIPSWITCH2 0x000d0043
260#define HID_DG_BARRELSWITCH 0x000d0044
261#define HID_DG_ERASER 0x000d0045
262#define HID_DG_TABLETPICK 0x000d0046
263/*
264 * as of May 20, 2009 the usages below are not yet in the official USB spec
265 * but are being pushed by Microsft as described in their paper "Digitizer
266 * Drivers for Windows Touch and Pen-Based Computers"
267 */
268#define HID_DG_CONFIDENCE 0x000d0047
269#define HID_DG_WIDTH 0x000d0048
270#define HID_DG_HEIGHT 0x000d0049
271#define HID_DG_CONTACTID 0x000d0051
272#define HID_DG_INPUTMODE 0x000d0052
273#define HID_DG_DEVICEINDEX 0x000d0053
274#define HID_DG_CONTACTCOUNT 0x000d0054
275#define HID_DG_CONTACTMAX 0x000d0055
276
241/* 277/*
242 * HID report types --- Ouch! HID spec says 1 2 3! 278 * HID report types --- Ouch! HID spec says 1 2 3!
243 */ 279 */