Commit 1d3e2023 authored by Daniel Ritz's avatar Daniel Ritz Committed by Greg Kroah-Hartman

[PATCH] USB: usbtouchscreen: unified USB touchscreen driver

A new single driver for various USB touchscreen devices. It currently
supports:
- eGalax TouchKit
- PanJit TouchSet
- 3M/Microtouch
- ITM Touchscreens

Support for the diffent devices can be enabled/disable when CONFIG_EMBEDDED
is set.

Sizes for comparision:
   text    data     bss     dec     hex filename
   2942     724       4    3670     e56 touchkitusb.ko
   2647     660       0    3307     ceb mtouchusb.ko
   2448     628       0    3076     c04 itmtouch.ko
   4145    1012      12    5169    1431 usbtouchscreen.ko
Signed-off-by: default avatarDaniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 62a13db3
...@@ -200,9 +200,45 @@ config USB_POWERMATE ...@@ -200,9 +200,45 @@ config USB_POWERMATE
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called powermate. module will be called powermate.
config USB_TOUCHSCREEN
tristate "USB Touchscreen Driver"
depends on USB && INPUT
---help---
USB Touchscreen driver for:
- eGalax Touchkit USB
- PanJit TouchSet USB
- 3M MicroTouch USB
- ITM
Have a look at <http://linux.chapter7.ch/touchkit/> for
a usage description and the required user-space stuff.
To compile this driver as a module, choose M here: the
module will be called usbtouchscreen.
config USB_TOUCHSCREEN_EGALAX
default y
bool "eGalax device support" if EMBEDDED
depends on USB_TOUCHSCREEN
config USB_TOUCHSCREEN_PANJIT
default y
bool "PanJit device support" if EMBEDDED
depends on USB_TOUCHSCREEN
config USB_TOUCHSCREEN_3M
default y
bool "3M/Microtouch device support" if EMBEDDED
depends on USB_TOUCHSCREEN
config USB_TOUCHSCREEN_ITM
default y
bool "ITM device support" if EMBEDDED
depends on USB_TOUCHSCREEN
config USB_MTOUCH config USB_MTOUCH
tristate "MicroTouch USB Touchscreen Driver" tristate "MicroTouch USB Touchscreen Driver"
depends on USB && INPUT depends on USB && INPUT && !USB_TOUCHSCREEN_3M
---help--- ---help---
Say Y here if you want to use a MicroTouch (Now 3M) USB Say Y here if you want to use a MicroTouch (Now 3M) USB
Touchscreen controller. Touchscreen controller.
...@@ -214,7 +250,7 @@ config USB_MTOUCH ...@@ -214,7 +250,7 @@ config USB_MTOUCH
config USB_ITMTOUCH config USB_ITMTOUCH
tristate "ITM Touch USB Touchscreen Driver" tristate "ITM Touch USB Touchscreen Driver"
depends on USB && INPUT depends on USB && INPUT && !USB_TOUCHSCREEN_ITM
---help--- ---help---
Say Y here if you want to use a ITM Touch USB Say Y here if you want to use a ITM Touch USB
Touchscreen controller. Touchscreen controller.
...@@ -226,7 +262,7 @@ config USB_ITMTOUCH ...@@ -226,7 +262,7 @@ config USB_ITMTOUCH
config USB_EGALAX config USB_EGALAX
tristate "eGalax TouchKit USB Touchscreen Driver" tristate "eGalax TouchKit USB Touchscreen Driver"
depends on USB && INPUT depends on USB && INPUT && !USB_TOUCHSCREEN_EGALAX
---help--- ---help---
Say Y here if you want to use a eGalax TouchKit USB Say Y here if you want to use a eGalax TouchKit USB
Touchscreen controller. Touchscreen controller.
......
...@@ -37,6 +37,7 @@ obj-$(CONFIG_USB_MOUSE) += usbmouse.o ...@@ -37,6 +37,7 @@ obj-$(CONFIG_USB_MOUSE) += usbmouse.o
obj-$(CONFIG_USB_MTOUCH) += mtouchusb.o obj-$(CONFIG_USB_MTOUCH) += mtouchusb.o
obj-$(CONFIG_USB_ITMTOUCH) += itmtouch.o obj-$(CONFIG_USB_ITMTOUCH) += itmtouch.o
obj-$(CONFIG_USB_EGALAX) += touchkitusb.o obj-$(CONFIG_USB_EGALAX) += touchkitusb.o
obj-$(CONFIG_USB_TOUCHSCREEN) += usbtouchscreen.o
obj-$(CONFIG_USB_POWERMATE) += powermate.o obj-$(CONFIG_USB_POWERMATE) += powermate.o
obj-$(CONFIG_USB_WACOM) += wacom.o obj-$(CONFIG_USB_WACOM) += wacom.o
obj-$(CONFIG_USB_ACECAD) += acecad.o obj-$(CONFIG_USB_ACECAD) += acecad.o
......
...@@ -1372,6 +1372,8 @@ void hid_close(struct hid_device *hid) ...@@ -1372,6 +1372,8 @@ void hid_close(struct hid_device *hid)
usb_kill_urb(hid->urbin); usb_kill_urb(hid->urbin);
} }
#define USB_VENDOR_ID_PANJIT 0x134c
/* /*
* Initialize all reports * Initialize all reports
*/ */
...@@ -1701,6 +1703,11 @@ static const struct hid_blacklist { ...@@ -1701,6 +1703,11 @@ static const struct hid_blacklist {
{ USB_VENDOR_ID_APPLE, 0x030A, HID_QUIRK_POWERBOOK_HAS_FN }, { USB_VENDOR_ID_APPLE, 0x030A, HID_QUIRK_POWERBOOK_HAS_FN },
{ USB_VENDOR_ID_APPLE, 0x030B, HID_QUIRK_POWERBOOK_HAS_FN }, { USB_VENDOR_ID_APPLE, 0x030B, HID_QUIRK_POWERBOOK_HAS_FN },
{ USB_VENDOR_ID_PANJIT, 0x0001, HID_QUIRK_IGNORE },
{ USB_VENDOR_ID_PANJIT, 0x0002, HID_QUIRK_IGNORE },
{ USB_VENDOR_ID_PANJIT, 0x0003, HID_QUIRK_IGNORE },
{ USB_VENDOR_ID_PANJIT, 0x0004, HID_QUIRK_IGNORE },
{ 0, 0 } { 0, 0 }
}; };
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment