gpio: Introduce struct gpio_irq_chip
This new structure will be used to group all fields related to interrupt handling in a GPIO chip. Doing so will properly namespace these fields and make it easier to distinguish which fields are used for IRQ support. Signed-off-by: Thierry Reding <treding@nvidia.com> Acked-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
b53b8300bf
commit
c44eafd79b
|
@ -19,6 +19,36 @@ struct module;
|
|||
|
||||
#ifdef CONFIG_GPIOLIB
|
||||
|
||||
#ifdef CONFIG_GPIOLIB_IRQCHIP
|
||||
/**
|
||||
* struct gpio_irq_chip - GPIO interrupt controller
|
||||
*/
|
||||
struct gpio_irq_chip {
|
||||
/**
|
||||
* @domain_ops:
|
||||
*
|
||||
* Table of interrupt domain operations for this IRQ chip.
|
||||
*/
|
||||
const struct irq_domain_ops *domain_ops;
|
||||
|
||||
/**
|
||||
* @parent_handler:
|
||||
*
|
||||
* The interrupt handler for the GPIO chip's parent interrupts, may be
|
||||
* NULL if the parent interrupts are nested rather than cascaded.
|
||||
*/
|
||||
irq_flow_handler_t parent_handler;
|
||||
|
||||
/**
|
||||
* @parent_handler_data:
|
||||
*
|
||||
* Data associated, and passed to, the handler for the parent
|
||||
* interrupt.
|
||||
*/
|
||||
void *parent_handler_data;
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct gpio_chip - abstract a GPIO controller
|
||||
* @label: a functional name for the GPIO device, such as a part
|
||||
|
@ -176,6 +206,14 @@ struct gpio_chip {
|
|||
bool irq_need_valid_mask;
|
||||
unsigned long *irq_valid_mask;
|
||||
struct lock_class_key *lock_key;
|
||||
|
||||
/**
|
||||
* @irq:
|
||||
*
|
||||
* Integrates interrupt chip functionality with the GPIO chip. Can be
|
||||
* used to handle IRQs for most practical cases.
|
||||
*/
|
||||
struct gpio_irq_chip irq;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OF_GPIO)
|
||||
|
|
Loading…
Reference in New Issue