pinctrl: sunxi: Add macro definition for pinctrl with more than one interrupt
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Thu, 5 Jun 2014 13:26:01 +0000 (15:26 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 19 Jun 2014 07:35:11 +0000 (09:35 +0200)
The A31 and A23, unlike the other Allwinner SoCs, have several interrupts banks
and parent interrupts, while the other only have up to 32 interrupts in a
single bank and a single parent interrupt.

Start supporting it by introducing a function macro to declare irq functions
and their banks.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/sunxi/pinctrl-sunxi.h

index 8169ba5..cb87e15 100644 (file)
@@ -77,6 +77,7 @@
 struct sunxi_desc_function {
        const char      *name;
        u8              muxval;
+       u8              irqbank;
        u8              irqnum;
 };
 
@@ -139,6 +140,14 @@ struct sunxi_pinctrl {
                .irqnum = _irq,                                 \
        }
 
+#define SUNXI_FUNCTION_IRQ_BANK(_val, _bank, _irq)             \
+       {                                                       \
+               .name = "irq",                                  \
+               .muxval = _val,                                 \
+               .irqbank = _bank,                               \
+               .irqnum = _irq,                                 \
+       }
+
 /*
  * The sunXi PIO registers are organized as is:
  * 0x00 - 0x0c Muxing values.