diff options
Diffstat (limited to 'recipes/linux/linux-jlime-jornada7xx-2.6.17/Newfile-Jornada720_ts.patch')
-rw-r--r-- | recipes/linux/linux-jlime-jornada7xx-2.6.17/Newfile-Jornada720_ts.patch | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/recipes/linux/linux-jlime-jornada7xx-2.6.17/Newfile-Jornada720_ts.patch b/recipes/linux/linux-jlime-jornada7xx-2.6.17/Newfile-Jornada720_ts.patch deleted file mode 100644 index b565d1077b..0000000000 --- a/recipes/linux/linux-jlime-jornada7xx-2.6.17/Newfile-Jornada720_ts.patch +++ /dev/null @@ -1,106 +0,0 @@ ---- linux-2.6.17-vanilla/drivers/input/touchscreen/jornada720_ts.c 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.17/drivers/input/touchscreen/jornada720_ts.c 2006-07-10 17:06:11.000000000 +0000 -@@ -0,0 +1,103 @@ -+/* -+ * Jornada 720 touchscreen interface based on Jornada 56x interface -+ */ -+ -+#include <linux/input.h> -+#include <linux/module.h> -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/delay.h> -+#include <linux/slab.h> -+#include <linux/errno.h> -+#include <linux/interrupt.h> -+ -+#include <asm/arch/hardware.h> -+#include <asm/arch/jornada720.h> -+#include <asm/irq.h> -+#include <asm/mach/irq.h> -+ -+MODULE_AUTHOR("Alex Lange <chicken@handhelds.org>"); -+MODULE_DESCRIPTION("Jornada 720 touchscreen driver"); -+MODULE_LICENSE("GPL"); -+ -+static char jornada720_ts_name[] = "Jornada 720 touchscreen"; -+ -+static struct input_dev *dev; -+ -+static irqreturn_t jornada720_mouse_interrupt(int irq, void *dev_id, struct pt_regs *regs) -+{ -+ int down; -+ int X[3], Y[3], high_x, high_y, x, y; -+ -+ udelay(1); -+ -+ down = ( (GPLR & GPIO_JORNADA720_MOUSE) == 0); -+ -+ if(!down) { -+ input_report_key(dev, BTN_TOUCH, down); /* report a pen up */ -+ input_report_abs(dev, ABS_PRESSURE, 0); -+ input_sync(dev); -+ return IRQ_HANDLED; -+ } -+ -+ /* read x & y data from mcu interface and pass it on */ -+ -+ jornada720_mcu_start(MCU_GetTouchSamples); -+ X[0] = jornada720_mcu_read(); -+ X[1] = jornada720_mcu_read(); -+ X[2] = jornada720_mcu_read(); -+ Y[0] = jornada720_mcu_read(); -+ Y[1] = jornada720_mcu_read(); -+ Y[2] = jornada720_mcu_read(); -+ high_x = jornada720_mcu_read(); /* msbs of samples */ -+ high_y = jornada720_mcu_read(); -+ jornada720_mcu_end(); -+ -+ X[0] |= (high_x & 3) << 8; -+ X[1] |= (high_x & 0xc) << 6; -+ X[2] |= (high_x & 0x30) << 4; -+ -+ Y[0] |= (high_y & 3) << 8; -+ Y[1] |= (high_y & 0xc) << 6; -+ Y[2] |= (high_y & 0x30) << 4; -+ -+ /* simple averaging filter */ -+ x = (X[0] + X[1] + X[2])/3; -+ y = (Y[0] + Y[1] + Y[2])/3; -+ -+ input_report_key(dev, BTN_TOUCH, down); -+ input_report_abs(dev, ABS_X, x); -+ input_report_abs(dev, ABS_Y, y); -+ input_report_abs(dev, ABS_PRESSURE, 1); -+ input_sync(dev); -+ -+ return IRQ_HANDLED; -+ -+} -+ -+static int __init jornada720_ts_init(void) -+{ -+ printk("jornada720_ts: Jornada 720 touchscreen\n"); -+ -+ dev = input_allocate_device(); -+ dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS); -+ dev->absbit[0] = BIT(ABS_X) | BIT(ABS_Y) | BIT(ABS_PRESSURE); -+ dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH); -+ -+ dev->absmin[ABS_X] = 270; dev->absmin[ABS_Y] = 180; -+ dev->absmax[ABS_X] = 3900; dev->absmax[ABS_Y] = 3700; -+ -+ dev->name = jornada720_ts_name; -+ -+ if (request_irq(GPIO_JORNADA720_MOUSE_IRQ, jornada720_mouse_interrupt, SA_INTERRUPT, "Jornada720 Mouse", NULL)) -+ printk("Unable to grab Jornada 720 touchscreen IRQ!\n"); -+ -+ set_irq_type(GPIO_JORNADA720_MOUSE_IRQ, IRQT_RISING); -+ -+ input_register_device(dev); -+ -+ return 0; -+} -+ -+module_init(jornada720_ts_init); -+ |