#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
+#include <linux/gpio.h>
#include <asm/uaccess.h>
#include <mach/mux.h>
-#include <mach/gpio.h>
#include <mach/board.h>
+#include <mach/board-nokia.h>
#include "cbus.h"
#include "tahvo.h"
tahvo_irq_pin = em_asic_config->tahvo_irq_gpio;
- if ((ret = omap_request_gpio(tahvo_irq_pin)) < 0) {
+ if ((ret = gpio_request(tahvo_irq_pin, "TAHVO irq")) < 0) {
printk(KERN_ERR PFX "Unable to reserve IRQ GPIO\n");
return ret;
}
/* Set the pin as input */
- omap_set_gpio_direction(tahvo_irq_pin, 1);
+ gpio_direction_input(tahvo_irq_pin);
/* Rising edge triggers the IRQ */
- set_irq_type(OMAP_GPIO_IRQ(tahvo_irq_pin), IRQ_TYPE_EDGE_RISING);
+ set_irq_type(gpio_to_irq(tahvo_irq_pin), IRQ_TYPE_EDGE_RISING);
/* Mask all TAHVO interrupts */
tahvo_write_reg(TAHVO_REG_IMR, 0xffff);
- ret = request_irq(OMAP_GPIO_IRQ(tahvo_irq_pin), tahvo_irq_handler, 0,
+ ret = request_irq(gpio_to_irq(tahvo_irq_pin), tahvo_irq_handler, 0,
"tahvo", 0);
if (ret < 0) {
printk(KERN_ERR PFX "Unable to register IRQ handler\n");
- omap_free_gpio(tahvo_irq_pin);
+ gpio_free(tahvo_irq_pin);
return ret;
}
#ifdef CONFIG_CBUS_TAHVO_USER
/* Initialize user-space interface */
if (tahvo_user_init() < 0) {
printk(KERN_ERR "Unable to initialize driver\n");
- free_irq(OMAP_GPIO_IRQ(tahvo_irq_pin), 0);
- omap_free_gpio(tahvo_irq_pin);
+ free_irq(gpio_to_irq(tahvo_irq_pin), 0);
+ gpio_free(tahvo_irq_pin);
return ret;
}
#endif
#endif
/* Mask all TAHVO interrupts */
tahvo_write_reg(TAHVO_REG_IMR, 0xffff);
- free_irq(OMAP_GPIO_IRQ(tahvo_irq_pin), 0);
- omap_free_gpio(tahvo_irq_pin);
+ free_irq(gpio_to_irq(tahvo_irq_pin), 0);
+ gpio_free(tahvo_irq_pin);
tasklet_kill(&tahvo_tasklet);
return 0;