drivers: gpio: SiFive GPIO allows <32 pins

Add ifdefs to the SiFive GPIO driver IRQ bindings to allow fewer than
32 pins to be configured based on the DTS configuration

Signed-off-by: Nathaniel Graff <nathaniel.graff@sifive.com>
This commit is contained in:
Nathaniel Graff 2018-08-17 10:12:33 -07:00 committed by Anas Nashif
commit ca12b3f7d4

View file

@ -372,164 +372,228 @@ DEVICE_AND_API_INIT(gpio_sifive_0, CONFIG_GPIO_SIFIVE_GPIO_NAME,
static void gpio_sifive_cfg_0(void)
{
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_0
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_0,
CONFIG_GPIO_SIFIVE_0_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_1
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_1,
CONFIG_GPIO_SIFIVE_1_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_2
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_2,
CONFIG_GPIO_SIFIVE_2_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_3
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_3,
CONFIG_GPIO_SIFIVE_3_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_4
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_4,
CONFIG_GPIO_SIFIVE_4_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_5
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_5,
CONFIG_GPIO_SIFIVE_5_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_6
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_6,
CONFIG_GPIO_SIFIVE_6_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_7
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_7,
CONFIG_GPIO_SIFIVE_7_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_8
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_8,
CONFIG_GPIO_SIFIVE_8_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_9
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_9,
CONFIG_GPIO_SIFIVE_9_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_10
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_10,
CONFIG_GPIO_SIFIVE_10_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_11
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_11,
CONFIG_GPIO_SIFIVE_11_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_12
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_12,
CONFIG_GPIO_SIFIVE_12_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_13
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_13,
CONFIG_GPIO_SIFIVE_13_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_14
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_14,
CONFIG_GPIO_SIFIVE_14_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_15
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_15,
CONFIG_GPIO_SIFIVE_15_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_16
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_16,
CONFIG_GPIO_SIFIVE_16_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_17
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_17,
CONFIG_GPIO_SIFIVE_17_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_18
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_18,
CONFIG_GPIO_SIFIVE_18_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_19
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_19,
CONFIG_GPIO_SIFIVE_19_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_20
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_20,
CONFIG_GPIO_SIFIVE_20_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_21
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_21,
CONFIG_GPIO_SIFIVE_21_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_22
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_22,
CONFIG_GPIO_SIFIVE_22_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_23
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_23,
CONFIG_GPIO_SIFIVE_23_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_24
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_24,
CONFIG_GPIO_SIFIVE_24_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_25
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_25,
CONFIG_GPIO_SIFIVE_25_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_26
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_26,
CONFIG_GPIO_SIFIVE_26_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_27
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_27,
CONFIG_GPIO_SIFIVE_27_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_28
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_28,
CONFIG_GPIO_SIFIVE_28_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_29
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_29,
CONFIG_GPIO_SIFIVE_29_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_30
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_30,
CONFIG_GPIO_SIFIVE_30_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
#ifdef CONFIG_SIFIVE_GPIO_0_IRQ_31
IRQ_CONNECT(CONFIG_SIFIVE_GPIO_0_IRQ_31,
CONFIG_GPIO_SIFIVE_31_PRIORITY,
gpio_sifive_irq_handler,
DEVICE_GET(gpio_sifive_0),
0);
#endif
}