Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2cc817a authored by Michael Gebetsroither's avatar Michael Gebetsroither Committed by Dmitry Torokhov
Browse files

Input: usbtouchscreen - add ELO IntelliTouch 2700 support

parent 1729ad1f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -541,6 +541,7 @@ config TOUCHSCREEN_USB_COMPOSITE
	  - GoTop Super_Q2/GogoPen/PenPower tablets
	  - JASTEC USB Touch Controller/DigiTech DTR-02U
	  - Zytronic controllers
	  - Elo TouchSystems 2700 IntelliTouch

	  Have a look at <http://linux.chapter7.ch/touchkit/> for
	  a usage description and the required user-space stuff.
@@ -620,6 +621,11 @@ config TOUCHSCREEN_USB_JASTEC
	bool "JASTEC/DigiTech DTR-02U USB touch controller device support" if EXPERT
	depends on TOUCHSCREEN_USB_COMPOSITE

config TOUCHSCREEN_USB_ELO
	default y
	bool "Elo TouchSystems 2700 IntelliTouch controller device support" if EXPERT
	depends on TOUCHSCREEN_USB_COMPOSITE

config TOUCHSCREEN_USB_E2I
	default y
	bool "e2i Touchscreen controller (e.g. from Mimo 740)"
+36 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
 *  - JASTEC USB touch controller/DigiTech DTR-02U
 *  - Zytronic capacitive touchscreen
 *  - NEXIO/iNexio
 *  - Elo TouchSystems 2700 IntelliTouch
 *
 * Copyright (C) 2004-2007 by Daniel Ritz <daniel.ritz@gmx.ch>
 * Copyright (C) by Todd E. Johnson (mtouchusb.c)
@@ -138,6 +139,7 @@ enum {
	DEVTYPE_ZYTRONIC,
	DEVTYPE_TC45USB,
	DEVTYPE_NEXIO,
	DEVTYPE_ELO,
};

#define USB_DEVICE_HID_CLASS(vend, prod) \
@@ -239,6 +241,10 @@ static const struct usb_device_id usbtouch_devices[] = {
		.driver_info = DEVTYPE_NEXIO},
#endif

#ifdef CONFIG_TOUCHSCREEN_USB_ELO
	{USB_DEVICE(0x04e7, 0x0020), .driver_info = DEVTYPE_ELO},
#endif

	{}
};

@@ -944,6 +950,24 @@ static int nexio_read_data(struct usbtouch_usb *usbtouch, unsigned char *pkt)
#endif


/*****************************************************************************
 * ELO part
 */

#ifdef CONFIG_TOUCHSCREEN_USB_ELO

static int elo_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
{
	dev->x = (pkt[3] << 8) | pkt[2];
	dev->y = (pkt[5] << 8) | pkt[4];
	dev->touch = pkt[6] > 0;
	dev->press = pkt[6];

	return 1;
}
#endif


/*****************************************************************************
 * the different device descriptors
 */
@@ -953,6 +977,18 @@ static void usbtouch_process_multi(struct usbtouch_usb *usbtouch,
#endif

static struct usbtouch_device_info usbtouch_dev_info[] = {
#ifdef CONFIG_TOUCHSCREEN_USB_ELO
	[DEVTYPE_ELO] = {
		.min_xc		= 0x0,
		.max_xc		= 0x0fff,
		.min_yc		= 0x0,
		.max_yc		= 0x0fff,
		.max_press	= 0xff,
		.rept_size	= 8,
		.read_data	= elo_read_data,
	},
#endif

#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX
	[DEVTYPE_EGALAX] = {
		.min_xc		= 0x0,