/*1* drivers/input/tablet/wacom.h2*3* USB Wacom tablet support4*5* Copyright (c) 2000-2004 Vojtech Pavlik <[email protected]>6* Copyright (c) 2000 Andreas Bach Aaen <[email protected]>7* Copyright (c) 2000 Clifford Wolf <[email protected]>8* Copyright (c) 2000 Sam Mosel <[email protected]>9* Copyright (c) 2000 James E. Blair <[email protected]>10* Copyright (c) 2000 Daniel Egger <[email protected]>11* Copyright (c) 2001 Frederic Lepied <[email protected]>12* Copyright (c) 2004 Panagiotis Issaris <[email protected]>13* Copyright (c) 2002-2009 Ping Cheng <[email protected]>14*15* ChangeLog:16* v0.1 (vp) - Initial release17* v0.2 (aba) - Support for all buttons / combinations18* v0.3 (vp) - Support for Intuos added19* v0.4 (sm) - Support for more Intuos models, menustrip20* relative mode, proximity.21* v0.5 (vp) - Big cleanup, nifty features removed,22* they belong in userspace23* v1.8 (vp) - Submit URB only when operating, moved to CVS,24* use input_report_key instead of report_btn and25* other cleanups26* v1.11 (vp) - Add URB ->dev setting for new kernels27* v1.11 (jb) - Add support for the 4D Mouse & Lens28* v1.12 (de) - Add support for two more inking pen IDs29* v1.14 (vp) - Use new USB device id probing scheme.30* Fix Wacom Graphire mouse wheel31* v1.18 (vp) - Fix mouse wheel direction32* Make mouse relative33* v1.20 (fl) - Report tool id for Intuos devices34* - Multi tools support35* - Corrected Intuos protocol decoding (airbrush, 4D mouse, lens cursor...)36* - Add PL models support37* - Fix Wacom Graphire mouse wheel again38* v1.21 (vp) - Removed protocol descriptions39* - Added MISC_SERIAL for tool serial numbers40* (gb) - Identify version on module load.41* v1.21.1 (fl) - added Graphire2 support42* v1.21.2 (fl) - added Intuos2 support43* - added all the PL ids44* v1.21.3 (fl) - added another eraser id from Neil Okamoto45* - added smooth filter for Graphire from Peri Hankey46* - added PenPartner support from Olaf van Es47* - new tool ids from Ole Martin Bjoerndalen48* v1.29 (pc) - Add support for more tablets49* - Fix pressure reporting50* v1.30 (vp) - Merge 2.4 and 2.5 drivers51* - Since 2.5 now has input_sync(), remove MSC_SERIAL abuse52* - Cleanups here and there53* v1.30.1 (pi) - Added Graphire3 support54* v1.40 (pc) - Add support for several new devices, fix eraser reporting, ...55* v1.43 (pc) - Added support for Cintiq 21UX56* - Fixed a Graphire bug57* - Merged wacom_intuos3_irq into wacom_intuos_irq58* v1.44 (pc) - Added support for Graphire4, Cintiq 710, Intuos3 6x11, etc.59* - Report Device IDs60* v1.45 (pc) - Added support for DTF 521, Intuos3 12x12 and 12x1961* - Minor data report fix62* v1.46 (pc) - Split wacom.c into wacom_sys.c and wacom_wac.c,63* - where wacom_sys.c deals with system specific code,64* - and wacom_wac.c deals with Wacom specific code65* - Support Intuos3 4x666* v1.47 (pc) - Added support for Bamboo67* v1.48 (pc) - Added support for Bamboo1, BambooFun, and Cintiq 12WX68* v1.49 (pc) - Added support for USB Tablet PC (0x90, 0x93, and 0x9A)69* v1.50 (pc) - Fixed a TabletPC touch bug in 2.6.2870* v1.51 (pc) - Added support for Intuos471* v1.52 (pc) - Query Wacom data upon system resume72* - add defines for features->type73* - add new devices (0x9F, 0xE2, and 0XE3)74*/7576/*77* This program is free software; you can redistribute it and/or modify78* it under the terms of the GNU General Public License as published by79* the Free Software Foundation; either version 2 of the License, or80* (at your option) any later version.81*/82#ifndef WACOM_H83#define WACOM_H84#include <linux/kernel.h>85#include <linux/slab.h>86#include <linux/module.h>87#include <linux/mod_devicetable.h>88#include <linux/init.h>89#include <linux/usb/input.h>90#include <asm/unaligned.h>9192/*93* Version Information94*/95#define DRIVER_VERSION "v1.52"96#define DRIVER_AUTHOR "Vojtech Pavlik <[email protected]>"97#define DRIVER_DESC "USB Wacom tablet driver"98#define DRIVER_LICENSE "GPL"99100MODULE_AUTHOR(DRIVER_AUTHOR);101MODULE_DESCRIPTION(DRIVER_DESC);102MODULE_LICENSE(DRIVER_LICENSE);103104#define USB_VENDOR_ID_WACOM 0x056a105#define USB_VENDOR_ID_LENOVO 0x17ef106107struct wacom {108dma_addr_t data_dma;109struct usb_device *usbdev;110struct usb_interface *intf;111struct urb *irq;112struct wacom_wac wacom_wac;113struct mutex lock;114bool open;115char phys[32];116};117118extern const struct usb_device_id wacom_ids[];119120void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len);121void wacom_setup_device_quirks(struct wacom_features *features);122void wacom_setup_input_capabilities(struct input_dev *input_dev,123struct wacom_wac *wacom_wac);124#endif125126127