ARM: S5PC110: gpio_to_irq support on external interrupt
Subsystems (3)
PATCH 3/5 ARM: S5PC110: gpio_to_irq support on external interrupt
From: Kyungmin Park <[email protected]>
Using group field, it can calculate the related irq number easily. Also if don't support gpio_to_irq, it can't use the gpio functionaliy fully. e.g., can't use the gpio-keys and so on
--- arch/arm/mach-s5pv210/gpiolib.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)
arch/arm/mach-s5pv210/gpiolib.c +12 -0
@@ -246,6 +246,15 @@ static struct s3c_gpio_chip s5pv210_gpio_4bit[] = { }, }; +static int s5pv210_extint_to_irq (struct gpio_chip *gpio,unsigned int offset) +{ +struct s3c_gpio_chip *chip =to_s3c_gpio (gpio); +int irq; + + irq = (chip->group *8 ) + offset; +return IRQ_EINT (irq); +} +static __init int s5pv210_gpiolib_init (void ) {struct s3c_gpio_chip *chip = s5pv210_gpio_4bit;
@@ -257,6 +266,9 @@ static __init int s5pv210_gpiolib_init(void) chip->config = &gpio_cfg;if (chip->config == &gpio_cfg_extint) { chip->base =S5PV210_BANK_BASE (extint) +EXTINT_OFFSET ; +/* Assign the external GPIO interrupt group number */ + chip->group = extint; + chip->chip.to_irq = s5pv210_extint_to_irq; extint++; }if (chip->base ==NULL )
Signature · 1 line
1.5.3.3
PATCH 3/5 ARM: S5PC110: gpio_to_irq support on external interrupt
I think it's also bug fix since current external IRQ can't support 'gpio_to_irq' feature.
I hope it's included at this rc window.
Quoted 50 lines · Kyungmin Park
From: Kyungmin Park <[email protected]>
Using group field, it can calculate the related irq number easily. Also if don't support
gpio_to_irq, it can't use the gpio functionaliy fully. e.g., can't use the gpio-keys and so onSigned-off-by Kyungmin Park <[email protected]>---
?arch/arm/mach-s5pv210/gpiolib.c | ? 12 ++++++++++++ ?1 files changed, 12 insertions(+), 0 deletions(-)arch/arm/mach-s5pv210/gpiolib.c +12
-1@@ -246,6 +246,15 @@ static struct s3c_gpio_chip s5pv210_gpio_4bit[] = { ? ? ? ?}, ?}; +static int s5pv210_extint_to_irq (struct gpio_chip *gpio,unsigned int offset) +{ + ? ? ? struct s3c_gpio_chip *chip = to_s3c_gpio(gpio); + ? ? ? int irq; + + ? ? ? irq = (chip->group * 8) + offset; + ? ? ? return IRQ_EINT(irq); +} + ?static __init int s5pv210_gpiolib_init(void) ?{ ? ? ? ?struct s3c_gpio_chip *chip = s5pv210_gpio_4bit;@@ -257,6 +266,9 @@ static __init int s5pv210_gpiolib_init(void) ? ? ? ? ? ? ? ? ? ? ? ?chip->config = &gpio_cfg; ? ? ? ? ? ? ? ?if (chip->config == &gpio_cfg_extint) { ? ? ? ? ? ? ? ? ? ? ? ?chip->base = S5PV210_BANK_BASE(extint) + EXTINT_OFFSET; + ? ? ? ? ? ? ? ? ? ? ? /* Assign the external GPIO interrupt group number */ + ? ? ? ? ? ? ? ? ? ? ? chip->group = extint; + ? ? ? ? ? ? ? ? ? ? ? chip->chip.to_irq = s5pv210_extint_to_irq; ? ? ? ? ? ? ? ? ? ? ? ?extint++; ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?if (chip->base == NULL) --1.5.3.3
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel