Commit 14e40206 authored by Jerrold Jones's avatar Jerrold Jones Committed by Dmitry Torokhov

Input: usbtouchscreen - add support for GoTop tablet devices

Add support for GoTop Super_Q2/GogoPen/PenPower tablets to usbtouchscreen.
Protocol discovery was done by Yick Yan Lam.
Signed-off-by: default avatarDaniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 858711c5
...@@ -202,6 +202,7 @@ config TOUCHSCREEN_USB_COMPOSITE ...@@ -202,6 +202,7 @@ config TOUCHSCREEN_USB_COMPOSITE
- DMC TSC-10/25 - DMC TSC-10/25
- IRTOUCHSYSTEMS/UNITOP - IRTOUCHSYSTEMS/UNITOP
- IdealTEK URTC1000 - IdealTEK URTC1000
- GoTop Super_Q2/GogoPen/PenPower tablets
Have a look at <http://linux.chapter7.ch/touchkit/> for Have a look at <http://linux.chapter7.ch/touchkit/> for
a usage description and the required user-space stuff. a usage description and the required user-space stuff.
...@@ -259,4 +260,9 @@ config TOUCHSCREEN_USB_GENERAL_TOUCH ...@@ -259,4 +260,9 @@ config TOUCHSCREEN_USB_GENERAL_TOUCH
bool "GeneralTouch Touchscreen device support" if EMBEDDED bool "GeneralTouch Touchscreen device support" if EMBEDDED
depends on TOUCHSCREEN_USB_COMPOSITE depends on TOUCHSCREEN_USB_COMPOSITE
config TOUCHSCREEN_USB_GOTOP
default y
bool "GoTop Super_Q2/GogoPen/PenPower tablet device support" if EMBEDDED
depends on TOUCHSCREEN_USB_COMPOSITE
endif endif
...@@ -11,8 +11,9 @@ ...@@ -11,8 +11,9 @@
* - DMC TSC-10/25 * - DMC TSC-10/25
* - IRTOUCHSYSTEMS/UNITOP * - IRTOUCHSYSTEMS/UNITOP
* - IdealTEK URTC1000 * - IdealTEK URTC1000
* - GoTop Super_Q2/GogoPen/PenPower tablets
* *
* Copyright (C) 2004-2006 by Daniel Ritz <daniel.ritz@gmx.ch> * Copyright (C) 2004-2007 by Daniel Ritz <daniel.ritz@gmx.ch>
* Copyright (C) by Todd E. Johnson (mtouchusb.c) * Copyright (C) by Todd E. Johnson (mtouchusb.c)
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -115,6 +116,7 @@ enum { ...@@ -115,6 +116,7 @@ enum {
DEVTYPE_IRTOUCH, DEVTYPE_IRTOUCH,
DEVTYPE_IDEALTEK, DEVTYPE_IDEALTEK,
DEVTYPE_GENERAL_TOUCH, DEVTYPE_GENERAL_TOUCH,
DEVTYPE_GOTOP,
}; };
static struct usb_device_id usbtouch_devices[] = { static struct usb_device_id usbtouch_devices[] = {
...@@ -168,6 +170,12 @@ static struct usb_device_id usbtouch_devices[] = { ...@@ -168,6 +170,12 @@ static struct usb_device_id usbtouch_devices[] = {
{USB_DEVICE(0x0dfc, 0x0001), .driver_info = DEVTYPE_GENERAL_TOUCH}, {USB_DEVICE(0x0dfc, 0x0001), .driver_info = DEVTYPE_GENERAL_TOUCH},
#endif #endif
#ifdef CONFIG_TOUCHSCREEN_USB_GOTOP
{USB_DEVICE(0x08f2, 0x007f), .driver_info = DEVTYPE_GOTOP},
{USB_DEVICE(0x08f2, 0x00ce), .driver_info = DEVTYPE_GOTOP},
{USB_DEVICE(0x08f2, 0x00f4), .driver_info = DEVTYPE_GOTOP},
#endif
{} {}
}; };
...@@ -500,6 +508,20 @@ static int general_touch_read_data(struct usbtouch_usb *dev, unsigned char *pkt) ...@@ -500,6 +508,20 @@ static int general_touch_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
} }
#endif #endif
/*****************************************************************************
* GoTop Part
*/
#ifdef CONFIG_TOUCHSCREEN_USB_GOTOP
static int gotop_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
{
dev->x = ((pkt[1] & 0x38) << 4) | pkt[2];
dev->y = ((pkt[1] & 0x07) << 7) | pkt[3];
dev->touch = pkt[0] & 0x01;
return 1;
}
#endif
/***************************************************************************** /*****************************************************************************
* the different device descriptors * the different device descriptors
*/ */
...@@ -623,9 +645,19 @@ static struct usbtouch_device_info usbtouch_dev_info[] = { ...@@ -623,9 +645,19 @@ static struct usbtouch_device_info usbtouch_dev_info[] = {
.max_yc = 0x0500, .max_yc = 0x0500,
.rept_size = 7, .rept_size = 7,
.read_data = general_touch_read_data, .read_data = general_touch_read_data,
} },
#endif #endif
#ifdef CONFIG_TOUCHSCREEN_USB_GOTOP
[DEVTYPE_GOTOP] = {
.min_xc = 0x0,
.max_xc = 0x03ff,
.min_yc = 0x0,
.max_yc = 0x03ff,
.rept_size = 4,
.read_data = gotop_read_data,
},
#endif
}; };
......
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