r1056 - trunk/src/target/kernel/patches
laforge at sita.openmoko.org
laforge at sita.openmoko.org
Tue Feb 20 19:51:57 CET 2007
Author: laforge
Date: 2007-02-20 19:51:57 +0100 (Tue, 20 Feb 2007)
New Revision: 1056
Modified:
trunk/src/target/kernel/patches/gta01-inputdevice.patch
Log:
* add HOLD key support to gta01kbd
* make both HOLD and 911 key events wake-up sources
Modified: trunk/src/target/kernel/patches/gta01-inputdevice.patch
===================================================================
--- trunk/src/target/kernel/patches/gta01-inputdevice.patch 2007-02-20 18:51:14 UTC (rev 1055)
+++ trunk/src/target/kernel/patches/gta01-inputdevice.patch 2007-02-20 18:51:57 UTC (rev 1056)
@@ -2,8 +2,8 @@
Index: linux-2.6.20/drivers/input/keyboard/Kconfig
===================================================================
---- linux-2.6.20.orig/drivers/input/keyboard/Kconfig 2007-02-15 16:15:18.000000000 +0100
-+++ linux-2.6.20/drivers/input/keyboard/Kconfig 2007-02-15 16:18:52.000000000 +0100
+--- linux-2.6.20.orig/drivers/input/keyboard/Kconfig 2007-02-20 18:56:10.000000000 +0100
++++ linux-2.6.20/drivers/input/keyboard/Kconfig 2007-02-20 18:58:03.000000000 +0100
@@ -214,4 +214,16 @@
To compile this driver as a module, choose M here: the
module will be called aaed2000_kbd.
@@ -23,8 +23,8 @@
endif
Index: linux-2.6.20/drivers/input/keyboard/Makefile
===================================================================
---- linux-2.6.20.orig/drivers/input/keyboard/Makefile 2007-02-15 16:15:18.000000000 +0100
-+++ linux-2.6.20/drivers/input/keyboard/Makefile 2007-02-15 16:18:52.000000000 +0100
+--- linux-2.6.20.orig/drivers/input/keyboard/Makefile 2007-02-20 18:56:10.000000000 +0100
++++ linux-2.6.20/drivers/input/keyboard/Makefile 2007-02-20 18:58:03.000000000 +0100
@@ -13,6 +13,7 @@
obj-$(CONFIG_KEYBOARD_NEWTON) += newtonkbd.o
obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o
@@ -36,8 +36,8 @@
Index: linux-2.6.20/drivers/input/keyboard/gta01kbd.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.20/drivers/input/keyboard/gta01kbd.c 2007-02-15 16:20:10.000000000 +0100
-@@ -0,0 +1,214 @@
++++ linux-2.6.20/drivers/input/keyboard/gta01kbd.c 2007-02-20 19:48:56.000000000 +0100
+@@ -0,0 +1,234 @@
+/*
+ * Keyboard driver for FIC GTA01 (Neo1973) GSM phone
+ *
@@ -79,6 +79,11 @@
+ else
+ input_report_key(gta01kbd_data->input, KEY_PHONE, 0);
+
++ if (s3c2410_gpio_getpin(GTA01_GPIO_HOLD_KEY))
++ input_report_key(gta01kbd_data->input, KEY_PAUSE, 1);
++ else
++ input_report_key(gta01kbd_data->input, KEY_PAUSE, 0);
++
+ input_sync(gta01kbd_data->input);
+
+ return IRQ_HANDLED;
@@ -114,7 +119,7 @@
+{
+ struct gta01kbd *gta01kbd;
+ struct input_dev *input_dev;
-+ int irq;
++ int irq_911, irq_hold;
+
+ gta01kbd = kzalloc(sizeof(struct gta01kbd), GFP_KERNEL);
+ input_dev = input_allocate_device();
@@ -124,13 +129,17 @@
+ return -ENOMEM;
+ }
+
-+ if (pdev->resource[0].flags != IORESOURCE_MEM)
++ if (pdev->resource[0].flags != 0)
+ return -EINVAL;
+
-+ irq = s3c2410_gpio_getirq(pdev->resource[0].start);
-+ if (irq < 0)
++ irq_911 = s3c2410_gpio_getirq(pdev->resource[0].start);
++ if (irq_911 < 0)
+ return -EINVAL;
+
++ irq_hold = s3c2410_gpio_getirq(pdev->resource[1].start);
++ if (irq_hold < 0)
++ return -EINVAL;
++
+ platform_set_drvdata(pdev, gta01kbd);
+
+ gta01kbd->input = input_dev;
@@ -162,6 +171,7 @@
+ input_dev->private = gta01kbd;
+
+ input_dev->evbit[0] = BIT(EV_KEY);
++ set_bit(SW_HEADPHONE_INSERT, input_dev->swbit);
+#if 0
+ input_dev->keycode = gta01kbd->keycode;
+ input_dev->keycodesize = sizeof(unsigned char);
@@ -177,11 +187,20 @@
+
+ input_register_device(gta01kbd->input);
+
-+ if (request_irq(irq, gta01kbd_interrupt,
++ if (request_irq(irq_911, gta01kbd_interrupt,
+ SA_INTERRUPT | SA_TRIGGER_RISING | SA_TRIGGER_FALLING,
-+ "gta01kbd", gta01kbd))
++ "gta01kbd_911", gta01kbd))
+ printk(KERN_WARNING "gta01kbd: Can't get IRQ\n");
++ enable_irq_wake(irq_911);
+
++ if (request_irq(irq_hold, gta01kbd_interrupt,
++ SA_INTERRUPT | SA_TRIGGER_RISING | SA_TRIGGER_FALLING,
++ "gta01kbd_hold", gta01kbd))
++ printk(KERN_WARNING "gta01kbd: Can't get IRQ\n");
++ enable_irq_wake(irq_hold);
++
++ /* FIXME: headphone insert */
++
+#if 0
+ mod_timer(&corgikbd->htimer, jiffies + msecs_to_jiffies(HINGE_SCAN_INTERVAL));
+
@@ -210,6 +229,7 @@
+ struct gta01kbd *gta01kbd = platform_get_drvdata(pdev);
+
+ free_irq(s3c2410_gpio_getirq(pdev->resource[0].start), gta01kbd);
++ free_irq(s3c2410_gpio_getirq(pdev->resource[1].start), gta01kbd);
+#if 0
+ int i;
+
More information about the commitlog
mailing list