]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/input/touchscreen/tsc2005.c
Merge current mainline tree into linux-omap tree
[linux-2.6-omap-h63xx.git] / drivers / input / touchscreen / tsc2005.c
index 1e4ed3c25db58ff0c8e2b3fd0ac071d29df8781f..ec4c9e7a736753a7070af69cbddcbd551d0a0f1d 100644 (file)
 #include <linux/input.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
+#include <linux/gpio.h>
 #include <linux/spi/spi.h>
 
-#ifdef CONFIG_ARCH_OMAP
-#include <asm/arch/gpio.h>
-#endif
-
 #include <linux/spi/tsc2005.h>
 
 /**
@@ -534,16 +531,15 @@ static int __devinit tsc2005_ts_init(struct tsc2005 *ts,
        ts->dav_gpio = dav_gpio;
        dev_dbg(&ts->spi->dev, "TSC2005: DAV GPIO = %d\n", dav_gpio);
 
-#ifdef CONFIG_ARCH_OMAP
-       r = omap_request_gpio(dav_gpio);
+       r = gpio_request(dav_gpio, "TSC2005 dav");
        if (r < 0) {
                dev_err(&ts->spi->dev, "unable to get DAV GPIO");
                goto err1;
        }
-       omap_set_gpio_direction(dav_gpio, 1);
-       ts->irq = OMAP_GPIO_IRQ(dav_gpio);
+       gpio_direction_input(dav_gpio);
+       ts->irq = gpio_to_irq(dav_gpio);
        dev_dbg(&ts->spi->dev, "TSC2005: DAV IRQ = %d\n", ts->irq);
-#endif
+
        init_timer(&ts->penup_timer);
        setup_timer(&ts->penup_timer, tsc2005_ts_penup_timer_handler,
                        (unsigned long)ts);
@@ -570,7 +566,7 @@ static int __devinit tsc2005_ts_init(struct tsc2005 *ts,
 
        idev->name = "TSC2005 touchscreen";
        snprintf(ts->phys, sizeof(ts->phys), "%s/input-ts",
-                ts->spi->dev.bus_id);
+                dev_name(&ts->spi->dev));
        idev->phys = ts->phys;
 
        idev->evbit[0] = BIT(EV_ABS) | BIT(EV_KEY);
@@ -612,9 +608,7 @@ err3:
        tsc2005_stop_scan(ts);
        input_free_device(idev);
 err2:
-#ifdef CONFIG_ARCH_OMAP
-       omap_free_gpio(dav_gpio);
-#endif
+       gpio_free(dav_gpio);
 err1:
        return r;
 }
@@ -672,9 +666,7 @@ static int __devexit tsc2005_remove(struct spi_device *spi)
        free_irq(ts->irq, ts);
        input_unregister_device(ts->idev);
 
-#ifdef CONFIG_ARCH_OMAP
-       omap_free_gpio(ts->dav_gpio);
-#endif
+       gpio_free(ts->dav_gpio);
        kfree(ts);
 
        return 0;