diff options
author | Ben Dooks <ben-linux@fluff.org> | 2009-01-08 13:40:50 +0100 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-01-08 17:24:08 +0100 |
commit | 43ae6599fe99a22a98658f0d9d0d40a1f12653f4 (patch) | |
tree | d70546149c41ed8c98ca26de5a94971992978943 /arch/arm/plat-s3c24xx/gpiolib.c | |
parent | [ARM] S3C24XX: Add gpio_to_irq() facility (diff) | |
download | linux-43ae6599fe99a22a98658f0d9d0d40a1f12653f4.tar.xz linux-43ae6599fe99a22a98658f0d9d0d40a1f12653f4.zip |
[ARM] S3C24XX: Add gpio_to_irq implementation
Add to_irq field handlers for the GPIO banks that are configurable
as interripts.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/plat-s3c24xx/gpiolib.c')
-rw-r--r-- | arch/arm/plat-s3c24xx/gpiolib.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c24xx/gpiolib.c b/arch/arm/plat-s3c24xx/gpiolib.c index f95c6c9d9f1a..94a341aaa4e4 100644 --- a/arch/arm/plat-s3c24xx/gpiolib.c +++ b/arch/arm/plat-s3c24xx/gpiolib.c @@ -59,6 +59,22 @@ static int s3c24xx_gpiolib_banka_output(struct gpio_chip *chip, return 0; } +static int s3c24xx_gpiolib_bankf_toirq(struct gpio_chip *chip, unsigned offset) +{ + if (offset < 4) + return IRQ_EINT0 + offset; + + if (offset < 8) + return IRQ_EINT4 + offset - 4; + + return -EINVAL; +} + +static int s3c24xx_gpiolib_bankg_toirq(struct gpio_chip *chip, unsigned offset) +{ + return IRQ_EINT8 + offset; +} + struct s3c_gpio_chip s3c24xx_gpios[] = { [0] = { .base = S3C24XX_GPIO_BASE(S3C2410_GPA0), @@ -114,6 +130,7 @@ struct s3c_gpio_chip s3c24xx_gpios[] = { .owner = THIS_MODULE, .label = "GPIOF", .ngpio = 8, + .to_irq = s3c24xx_gpiolib_bankf_toirq, }, }, [6] = { @@ -123,6 +140,7 @@ struct s3c_gpio_chip s3c24xx_gpios[] = { .owner = THIS_MODULE, .label = "GPIOG", .ngpio = 10, + .to_irq = s3c24xx_gpiolib_bankg_toirq, }, }, }; |