summaryrefslogtreecommitdiffstats
path: root/target/linux/s3c24xx/patches-2.6.24/1110-Add-GPIO-IRQ-for-the-s3c2410-and-add-irq_to_gpio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1110-Add-GPIO-IRQ-for-the-s3c2410-and-add-irq_to_gpio.patch')
-rw-r--r--target/linux/s3c24xx/patches-2.6.24/1110-Add-GPIO-IRQ-for-the-s3c2410-and-add-irq_to_gpio.patch132
1 files changed, 0 insertions, 132 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1110-Add-GPIO-IRQ-for-the-s3c2410-and-add-irq_to_gpio.patch b/target/linux/s3c24xx/patches-2.6.24/1110-Add-GPIO-IRQ-for-the-s3c2410-and-add-irq_to_gpio.patch
deleted file mode 100644
index 4b94d76ac4..0000000000
--- a/target/linux/s3c24xx/patches-2.6.24/1110-Add-GPIO-IRQ-for-the-s3c2410-and-add-irq_to_gpio.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 5134afd82f568f1eae133069bc9298e731546bc1 Mon Sep 17 00:00:00 2001
-From: Holger Freyther <zecke@openmoko.org>
-Date: Sun, 13 Apr 2008 07:25:54 +0100
-Subject: [PATCH] Add GPIO -> IRQ for the s3c2410 and add irq_to_gpio to the gpio.h of the Samsung SoC
-
-Use this irq_to_gpio in the neo1973 keyboard driver
----
- arch/arm/plat-s3c24xx/gpio.c | 17 +++++++++++++++++
- drivers/input/keyboard/neo1973kbd.c | 19 ++++++-------------
- include/asm-arm/arch-s3c2410/gpio.h | 1 +
- include/asm-arm/arch-s3c2410/hardware.h | 2 ++
- 4 files changed, 26 insertions(+), 13 deletions(-)
-
-diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c
-index 7cab212..dfdb33a 100644
---- a/arch/arm/plat-s3c24xx/gpio.c
-+++ b/arch/arm/plat-s3c24xx/gpio.c
-@@ -188,6 +188,23 @@ int s3c2410_gpio_getirq(unsigned int pin)
-
- EXPORT_SYMBOL(s3c2410_gpio_getirq);
-
-+int s3c2410_irq_to_gpio(unsigned int irq)
-+{
-+ /* not valid interrupts */
-+ if (irq > 15 + IRQ_EINT8)
-+ return -1;
-+
-+ if (irq < IRQ_EINT4)
-+ return (irq - IRQ_EINT0) + S3C2410_GPF0;
-+
-+ if (irq < IRQ_EINT8)
-+ return (irq - IRQ_EINT4) + S3C2410_GPF4;
-+
-+ return (irq - IRQ_EINT8) + S3C2410_GPG0;
-+}
-+
-+EXPORT_SYMBOL(s3c2410_irq_to_gpio);
-+
- static void pretty_dump(u32 cfg, u32 state, u32 pull,
- const char ** function_names_2,
- const char ** function_names_3,
-diff --git a/drivers/input/keyboard/neo1973kbd.c b/drivers/input/keyboard/neo1973kbd.c
-index b413bc8..06fa8e0 100644
---- a/drivers/input/keyboard/neo1973kbd.c
-+++ b/drivers/input/keyboard/neo1973kbd.c
-@@ -28,16 +28,13 @@
- struct neo1973kbd {
- struct input_dev *input;
- unsigned int suspended;
-- int gpio_aux;
-- int gpio_hold;
-- int gpio_jack;
- };
-
- static irqreturn_t neo1973kbd_aux_irq(int irq, void *dev_id)
- {
- struct neo1973kbd *neo1973kbd_data = dev_id;
-
-- int key_pressed = !gpio_get_value(neo1973kbd_data->gpio_aux);
-+ int key_pressed = !gpio_get_value(irq_to_gpio(irq));
- input_report_key(neo1973kbd_data->input, KEY_PHONE, key_pressed);
- input_sync(neo1973kbd_data->input);
-
-@@ -48,7 +45,7 @@ static irqreturn_t neo1973kbd_hold_irq(int irq, void *dev_id)
- {
- struct neo1973kbd *neo1973kbd_data = dev_id;
-
-- int key_pressed = gpio_get_value(neo1973kbd_data->gpio_hold);
-+ int key_pressed = gpio_get_value(irq_to_gpio(irq));
- input_report_key(neo1973kbd_data->input, KEY_PAUSE, key_pressed);
- input_sync(neo1973kbd_data->input);
-
-@@ -59,7 +56,7 @@ static irqreturn_t neo1973kbd_headphone_irq(int irq, void *dev_id)
- {
- struct neo1973kbd *neo1973kbd_data = dev_id;
-
-- int key_pressed = gpio_get_value(neo1973kbd_data->gpio_jack);
-+ int key_pressed = gpio_get_value(irq_to_gpio(irq));
- input_report_switch(neo1973kbd_data->input,
- SW_HEADPHONE_INSERT, key_pressed);
- input_sync(neo1973kbd_data->input);
-@@ -107,19 +104,15 @@ static int neo1973kbd_probe(struct platform_device *pdev)
- if (pdev->resource[0].flags != 0)
- return -EINVAL;
-
-- neo1973kbd->gpio_aux = pdev->resource[0].start;
-- neo1973kbd->gpio_hold = pdev->resource[1].start;
-- neo1973kbd->gpio_jack = pdev->resource[2].start;
--
-- irq_aux = gpio_to_irq(neo1973kbd->gpio_aux);
-+ irq_aux = gpio_to_irq(pdev->resource[0].start);
- if (irq_aux < 0)
- return -EINVAL;
-
-- irq_hold = gpio_to_irq(neo1973kbd->gpio_hold);
-+ irq_hold = gpio_to_irq(pdev->resource[1].start);
- if (irq_hold < 0)
- return -EINVAL;
-
-- irq_jack = gpio_to_irq(neo1973kbd->gpio_jack);
-+ irq_jack = gpio_to_irq(pdev->resource[2].start);
- if (irq_jack < 0)
- return -EINVAL;
-
-diff --git a/include/asm-arm/arch-s3c2410/gpio.h b/include/asm-arm/arch-s3c2410/gpio.h
-index 7583895..9c8a338 100644
---- a/include/asm-arm/arch-s3c2410/gpio.h
-+++ b/include/asm-arm/arch-s3c2410/gpio.h
-@@ -61,6 +61,7 @@ static inline int gpio_direction_output(unsigned gpio, int value)
- #define gpio_to_irq(gpio) s3c2400_gpio_getirq(gpio)
- #else
- #define gpio_to_irq(gpio) s3c2410_gpio_getirq(gpio)
-+#define irq_to_gpio(irq) s3c2410_irq_to_gpio(irq)
- #endif
-
- /* FIXME implement irq_to_gpio() */
-diff --git a/include/asm-arm/arch-s3c2410/hardware.h b/include/asm-arm/arch-s3c2410/hardware.h
-index 6dadf58..caea511 100644
---- a/include/asm-arm/arch-s3c2410/hardware.h
-+++ b/include/asm-arm/arch-s3c2410/hardware.h
-@@ -50,6 +50,8 @@ extern unsigned int s3c2410_gpio_getcfg(unsigned int pin);
-
- extern int s3c2410_gpio_getirq(unsigned int pin);
-
-+extern int s3c2410_irq_to_gpio(unsigned int irq);
-+
- #ifdef CONFIG_CPU_S3C2400
-
- extern int s3c2400_gpio_getirq(unsigned int pin);
---
-1.5.6.5
-