[PATCH 2/9] ARM: shmobile: add GPIO IRQ macro

Magnus Damm magnus.damm at gmail.com
Wed May 29 21:32:55 EDT 2013


Hey Olof,

On Tue, May 28, 2013 at 3:18 PM, Olof Johansson <olof at lixom.net> wrote:
> On Tue, May 28, 2013 at 02:53:04PM +0900, Magnus Damm wrote:
>> Hi Olof,
>>
>> On Tue, May 28, 2013 at 1:07 PM, Olof Johansson <olof at lixom.net> wrote:
>> > On Mon, May 27, 2013 at 06:59:26PM +0900, Simon Horman wrote:
>> >> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>> >>
>> >> R-Car series gpio_rcar driver can control GPIO IRQ today.
>> >> It needs base IRQ number for gpio_rcar_config :: .irq_base
>> >> This patch adds macro for GPIO IRQ.
>> >> This patch was tested on Bock-W board
>> >>
>> >> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>> >> Signed-off-by: Simon Horman <horms+renesas at verge.net.au>
>> >> ---
>> >>  arch/arm/mach-shmobile/include/mach/irqs.h |    5 +++++
>> >>  1 file changed, 5 insertions(+)
>> >>
>> >> diff --git a/arch/arm/mach-shmobile/include/mach/irqs.h b/arch/arm/mach-shmobile/include/mach/irqs.h
>> >> index b2074e2..d241bfd 100644
>> >> --- a/arch/arm/mach-shmobile/include/mach/irqs.h
>> >> +++ b/arch/arm/mach-shmobile/include/mach/irqs.h
>> >> @@ -16,4 +16,9 @@
>> >>  #define IRQPIN_BASE          2000
>> >>  #define irq_pin(nr)          ((nr) + IRQPIN_BASE)
>> >>
>> >> +/* GPIO IRQ */
>> >> +#define _GPIO_IRQ_BASE               2500
>> >> +#define GPIO_IRQ_BASE(x)     (_GPIO_IRQ_BASE + (32 * x))
>> >> +#define GPIO_IRQ(x, y)               (_GPIO_IRQ_BASE + (32 * x) + y)
>> >> +
>> >>  #endif /* __ASM_MACH_IRQS_H */
>> >
>> > Hmm. It'd be real nice to see some effort on moving this over to sparse
>> > irq instead. That'll be needed for full device tree conversion anyway. And
>> > with that, the static irq bases will be gone, so drivers and some of
>> > the platform code will need to be adjusted accordingly.
>>
>> I believe we've been doing sparse IRQ for ages, this is just to make
>> non-DT stuff more readable.
>>
>> Or was there some particular other interface you wanted us to use for
>> non-DT board code?
>
> Sorry, terminology confusion on my side. Most other platforms sorted
> this out when they moved to sparse irq, removing most hardcoded interrupt
> numbers at the same time and handling it through DT. But since shmobile
> still has a ways to go on DT conversion things are a bit different.
>
> Either way, once things have been converted fully to DT, most of these
> static numberings can/should be possible to remove.

Yes, exactly! Please note that the current drivers are written to be
DT aware and the IRQ code makes use of IRQ domains, so like you say
the DT -reference board code does not need to make use of these kind
of macros.

However, we are still not able to swith to DT fully due to lack of DT
support for PINMUX/GPIO. One even larger road block is the common
clock framework. And then we have the I/O power domains used with
Runtime PM on sh7372.

Thanks for your help,

/ magnus



More information about the linux-arm-kernel mailing list