Skip to contentSkip to conversation

ARM: S5P: Support gpio interrupts

PATCH Superseded Joonyoung Shim 4 participants 5 messages Jun 11, 2010 – Jul 6, 2010 Arm Samsung Exynos

lore
Share & tools
lore
#0 lore raw

v2 cover ARM: S5P: Support gpio interrupts

This patch v2 set is to support gpio interrupts of samsung s5p cpus, and the GPIOlib gpio_to_irq goes to plat-samsung gpiolib, so patch v2 set has four commit smaller than v1.

Changes since v1:
- Add irq_base to s3c_gpio_chip struct
- GPIOlib gpio_to_irq() is implemented to samsung_gpiolib_to_irq() of plat-samsung gpiolib

Joonyoung Shim (4):
ARM: S5PV210: Add gpio interrupt support
ARM: S5PC100: Use S5P gpio interrupts interface
ARM: S5PC100: Move external interrupt defines
ARM: SAMSUNG: Add GPIOlib gpio_to_irq

 arch/arm/mach-s5pc100/Makefile                 |    2 +-
 arch/arm/mach-s5pc100/gpiolib.c                |   70 ++-----
 arch/arm/mach-s5pc100/include/mach/gpio.h      |    7 -
 arch/arm/mach-s5pc100/include/mach/irqs.h      |   18 ++-
 arch/arm/mach-s5pc100/include/mach/regs-gpio.h |    7 +
 arch/arm/mach-s5pc100/irq-gpio.c               |  266 ------------------------
 arch/arm/mach-s5pv210/gpiolib.c                |   18 ++-
 arch/arm/mach-s5pv210/include/mach/irqs.h      |   16 ++-
 arch/arm/plat-s5p/Makefile                     |    2 +-
 arch/arm/plat-s5p/irq-gpioint.c                |  208 ++++++++++++++++++
 arch/arm/plat-samsung/gpiolib.c                |    9 +
 arch/arm/plat-samsung/include/plat/gpio-core.h |    6 +
 12 files changed, 295 insertions(+), 334 deletions(-)
 delete mode 100644 arch/arm/mach-s5pc100/irq-gpio.c
 create mode 100644 arch/arm/plat-s5p/irq-gpioint.c
#1 lore raw

v2 cover ARM: S5P: Support gpio interrupts

Quoted 16 lines · Joonyoung Shim

This patch v2 set is to support gpio interrupts of samsung s5p cpus, and the GPIOlib gpio_to_irq goes to plat-samsung gpiolib, so patch v2 set has four commit smaller than v1.

Changes since v1:
- Add irq_base to s3c_gpio_chip struct
- GPIOlib gpio_to_irq() is implemented to samsung_gpiolib_to_irq() of plat-samsung gpiolib

Joonyoung Shim (4):
ARM: S5PV210: Add gpio interrupt support
ARM: S5PC100: Use S5P gpio interrupts interface
ARM: S5PC100: Move external interrupt defines
ARM: SAMSUNG: Add GPIOlib gpio_to_irq

Quoted 6 lines
 arch/arm/mach-s5pc100/Makefile                 |    2 +-
 arch/arm/mach-s5pc100/gpiolib.c                |   70 ++-----
 arch/arm/mach-s5pc100/include/mach/gpio.h      |    7 -
 arch/arm/mach-s5pc100/include/mach/irqs.h      |   18 ++-
 arch/arm/mach-s5pc100/include/mach/regs-gpio.h |    7 +
 arch/arm/mach-s5pc100/irq-gpio.c               |  266

------------------------

Quoted 10 lines
 arch/arm/mach-s5pv210/gpiolib.c                |   18 ++-
 arch/arm/mach-s5pv210/include/mach/irqs.h      |   16 ++-
 arch/arm/plat-s5p/Makefile                     |    2 +-
 arch/arm/plat-s5p/irq-gpioint.c                |  208 ++++++++++++++++++
 arch/arm/plat-samsung/gpiolib.c                |    9 +
 arch/arm/plat-samsung/include/plat/gpio-core.h |    6 +
 12 files changed, 295 insertions(+), 334 deletions(-)
 delete mode 100644 arch/arm/mach-s5pc100/irq-gpio.c
 create mode 100644 arch/arm/plat-s5p/irq-gpioint.c

I am sure this patchset is working code, but Ben had made suggestion about 'sparse irq'...
It is because there are too many gpio interrupts and having support of all of them is unnecessary as realistically only few of them maybe used. In fact in SMDK board there is no use of gpio in interrupt mode.

Ben, I remember your suggestion for using 'sparse irq' for handling gpio interrupts.
And in fact, sparse irq implementation can be beneficial to many other boards...
Could you please explain about that?

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.

#2 lore raw

v2 cover ARM: S5P: Support gpio interrupts

Quoted 41 lines · Kukjin Kim
Quoted 16 lines · Joonyoung Shim

This patch v2 set is to support gpio interrupts of samsung s5p cpus, and the GPIOlib gpio_to_irq goes to plat-samsung gpiolib, so patch v2 set has four commit smaller than v1.

Changes since v1:
- Add irq_base to s3c_gpio_chip struct
- GPIOlib gpio_to_irq() is implemented to samsung_gpiolib_to_irq() of ? plat-samsung gpiolib

Joonyoung Shim (4):
? ? ? ARM: S5PV210: Add gpio interrupt support ? ? ? ARM: S5PC100: Use S5P gpio interrupts interface ? ? ? ARM: S5PC100: Move external interrupt defines ? ? ? ARM: SAMSUNG: Add GPIOlib gpio_to_irq

Quoted 6 lines
?arch/arm/mach-s5pc100/Makefile ? ? ? ? ? ? ? ? | ? ?2 +-
?arch/arm/mach-s5pc100/gpiolib.c ? ? ? ? ? ? ? ?| ? 70 ++-----
?arch/arm/mach-s5pc100/include/mach/gpio.h ? ? ?| ? ?7 -
?arch/arm/mach-s5pc100/include/mach/irqs.h ? ? ?| ? 18 ++-
?arch/arm/mach-s5pc100/include/mach/regs-gpio.h | ? ?7 +
?arch/arm/mach-s5pc100/irq-gpio.c ? ? ? ? ? ? ? | ?266

------------------------

Quoted 10 lines
?arch/arm/mach-s5pv210/gpiolib.c ? ? ? ? ? ? ? ?| ? 18 ++-
?arch/arm/mach-s5pv210/include/mach/irqs.h ? ? ?| ? 16 ++-
?arch/arm/plat-s5p/Makefile ? ? ? ? ? ? ? ? ? ? | ? ?2 +-
?arch/arm/plat-s5p/irq-gpioint.c ? ? ? ? ? ? ? ?| ?208 ++++++++++++++++++
?arch/arm/plat-samsung/gpiolib.c ? ? ? ? ? ? ? ?| ? ?9 +
?arch/arm/plat-samsung/include/plat/gpio-core.h | ? ?6 +

?12 files changed, 295 insertions(+), 334 deletions(-) ?delete mode 100644 arch/arm/mach-s5pc100/irq-gpio.c ?create mode 100644 arch/arm/plat-s5p/irq-gpioint.c

I am sure this patchset is working code, but Ben had made suggestion about 'sparse irq'...
It is because there are too many gpio interrupts and having support of all of them is unnecessary as realistically only few of them maybe used. In fact in SMDK board there is no use of gpio in interrupt mode.

Quoted 5 lines

Ben, I remember your suggestion for using 'sparse irq' for handling gpio interrupts.
And in fact, sparse irq implementation can be beneficial to many other boards...
Could you please explain about that?

Interesting.
you can find it by "[ARM] Preliminary support for dynamic IRQ" written by Eric. Instead define the 'NR_IRQS' of chip, board can define each 'nr_irqs' at init time.

Maybe smdk don't use the GPIOs. but mobile phones at samsung use the until MP0x. Sometime H/W team connect it at MP04 or MP05 which doesn't support GPIO interrupt.

Thank you,
Kyungmin Park

#3 lore raw

v2 cover ARM: S5P: Support gpio interrupts

In reply to Kukjin Kim

Hello,

Quoted 35 lines · Kukjin Kim
Quoted 16 lines · Joonyoung Shim

This patch v2 set is to support gpio interrupts of samsung s5p cpus, and the GPIOlib gpio_to_irq goes to plat-samsung gpiolib, so patch v2 set has four commit smaller than v1.

Changes since v1:
- Add irq_base to s3c_gpio_chip struct
- GPIOlib gpio_to_irq() is implemented to samsung_gpiolib_to_irq() of plat-samsung gpiolib

Joonyoung Shim (4):
ARM: S5PV210: Add gpio interrupt support
ARM: S5PC100: Use S5P gpio interrupts interface
ARM: S5PC100: Move external interrupt defines
ARM: SAMSUNG: Add GPIOlib gpio_to_irq

Quoted 6 lines
 arch/arm/mach-s5pc100/Makefile                 |    2 +-
 arch/arm/mach-s5pc100/gpiolib.c                |   70 ++-----
 arch/arm/mach-s5pc100/include/mach/gpio.h      |    7 -
 arch/arm/mach-s5pc100/include/mach/irqs.h      |   18 ++-
 arch/arm/mach-s5pc100/include/mach/regs-gpio.h |    7 +
 arch/arm/mach-s5pc100/irq-gpio.c               |  266

------------------------

Quoted 10 lines
 arch/arm/mach-s5pv210/gpiolib.c                |   18 ++-
 arch/arm/mach-s5pv210/include/mach/irqs.h      |   16 ++-
 arch/arm/plat-s5p/Makefile                     |    2 +-
 arch/arm/plat-s5p/irq-gpioint.c                |  208 ++++++++++++++++++
 arch/arm/plat-samsung/gpiolib.c                |    9 +
 arch/arm/plat-samsung/include/plat/gpio-core.h |    6 +
 12 files changed, 295 insertions(+), 334 deletions(-)
 delete mode 100644 arch/arm/mach-s5pc100/irq-gpio.c
 create mode 100644 arch/arm/plat-s5p/irq-gpioint.c
Quoted 4 lines

I am sure this patchset is working code, but Ben had made suggestion about 'sparse irq'...
It is because there are too many gpio interrupts and having support of all of them is unnecessary as realistically only few of them maybe used.

Right. Ben suggested to create a pool for gpio interrupts (for example 16 interrupts) and selectively assign them in machine startup code to those gpio pins that really need it.

The problem is that such solution is not yet ready and we really need the gpio interrupt functionality for our boards (Aquila and GONI).

Maybe these current patches could be merged now, and then, once the new solution is prepared, the gpio interrupt support get converted to selective registering?

S5PC100 already has gpio interrupt support.

Quoted 1 line

In fact in SMDK board there is no use of gpio in interrupt mode.

We are talking about support for Samsung S5PV210/S5PC110 SoCs in the Linux mainline kernel, not the support for only SMDK boards. GPIO interrupts is a feature of the SoC not a particular board.

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center

#4 lore raw

v2 cover ARM: S5P: Support gpio interrupts

Quoted 46 lines · Marek Szyprowski

Hello,

Quoted 33 lines · Kukjin Kim
Quoted 15 lines · Joonyoung Shim

This patch v2 set is to support gpio interrupts of samsung s5p cpus, and the GPIOlib gpio_to_irq goes to plat-samsung gpiolib, so patch v2 set has four commit smaller than v1.

Changes since v1:
- Add irq_base to s3c_gpio_chip struct
- GPIOlib gpio_to_irq() is implemented to samsung_gpiolib_to_irq() of plat-samsung gpiolib

Joonyoung Shim (4):
ARM: S5PV210: Add gpio interrupt support
ARM: S5PC100: Use S5P gpio interrupts interface
ARM: S5PC100: Move external interrupt defines
ARM: SAMSUNG: Add GPIOlib gpio_to_irq

Quoted 6 lines
 arch/arm/mach-s5pc100/Makefile                 |    2 +-
 arch/arm/mach-s5pc100/gpiolib.c                |   70 ++-----
 arch/arm/mach-s5pc100/include/mach/gpio.h      |    7 -
 arch/arm/mach-s5pc100/include/mach/irqs.h      |   18 ++-
 arch/arm/mach-s5pc100/include/mach/regs-gpio.h |    7 +
 arch/arm/mach-s5pc100/irq-gpio.c               |  266

------------------------

Quoted 10 lines
 arch/arm/mach-s5pv210/gpiolib.c                |   18 ++-
 arch/arm/mach-s5pv210/include/mach/irqs.h      |   16 ++-
 arch/arm/plat-s5p/Makefile                     |    2 +-
 arch/arm/plat-s5p/irq-gpioint.c                |  208 ++++++++++++++++++
 arch/arm/plat-samsung/gpiolib.c                |    9 +
 arch/arm/plat-samsung/include/plat/gpio-core.h |    6 +
 12 files changed, 295 insertions(+), 334 deletions(-)
 delete mode 100644 arch/arm/mach-s5pc100/irq-gpio.c
 create mode 100644 arch/arm/plat-s5p/irq-gpioint.c
Quoted 4 lines

I am sure this patchset is working code, but Ben had made suggestion about 'sparse irq'...
It is because there are too many gpio interrupts and having support of all of them is unnecessary as realistically only few of them maybe used.

Right. Ben suggested to create a pool for gpio interrupts (for example 16 interrupts) and selectively assign them in machine startup code to those gpio pins that really need it.

Quoted 7 lines

The problem is that such solution is not yet ready and we really need the gpio interrupt functionality for our boards (Aquila and GONI).

Maybe these current patches could be merged now, and then, once the new solution is prepared, the gpio interrupt support get converted to selective registering?

I agree with Marek.

Ben and Kukjin, how do you think about this?

Quoted 14 lines

S5PC100 already has gpio interrupt support.

Quoted 1 line

In fact in SMDK board there is no use of gpio in interrupt mode.

We are talking about support for Samsung S5PV210/S5PC110 SoCs in the Linux mainline kernel, not the support for only SMDK boards. GPIO interrupts is a feature of the SoC not a particular board.

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center