diff options
Diffstat (limited to 'include/linux/gpio/driver.h')
| -rw-r--r-- | include/linux/gpio/driver.h | 42 | 
1 files changed, 19 insertions, 23 deletions
| diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index b1e0f1f8ee2e..ad5b92b74ccf 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -12,6 +12,8 @@  #include <linux/property.h>  #include <linux/types.h> +#include <asm/msi.h> +  struct gpio_desc;  struct of_phandle_args;  struct device_node; @@ -23,6 +25,13 @@ enum gpio_lookup_flags;  struct gpio_chip; +union gpio_irq_fwspec { +	struct irq_fwspec	fwspec; +#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN +	msi_alloc_info_t	msiinfo; +#endif +}; +  #define GPIO_LINE_DIRECTION_IN	1  #define GPIO_LINE_DIRECTION_OUT	0 @@ -103,9 +112,10 @@ struct gpio_irq_chip {  	 * variant named &gpiochip_populate_parent_fwspec_fourcell is also  	 * available.  	 */ -	void *(*populate_parent_alloc_arg)(struct gpio_chip *gc, -				       unsigned int parent_hwirq, -				       unsigned int parent_type); +	int (*populate_parent_alloc_arg)(struct gpio_chip *gc, +					 union gpio_irq_fwspec *fwspec, +					 unsigned int parent_hwirq, +					 unsigned int parent_type);  	/**  	 * @child_offset_to_irq: @@ -646,28 +656,14 @@ struct bgpio_pdata {  #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY -void *gpiochip_populate_parent_fwspec_twocell(struct gpio_chip *gc, +int gpiochip_populate_parent_fwspec_twocell(struct gpio_chip *gc, +					    union gpio_irq_fwspec *gfwspec, +					    unsigned int parent_hwirq, +					    unsigned int parent_type); +int gpiochip_populate_parent_fwspec_fourcell(struct gpio_chip *gc, +					     union gpio_irq_fwspec *gfwspec,  					     unsigned int parent_hwirq,  					     unsigned int parent_type); -void *gpiochip_populate_parent_fwspec_fourcell(struct gpio_chip *gc, -					      unsigned int parent_hwirq, -					      unsigned int parent_type); - -#else - -static inline void *gpiochip_populate_parent_fwspec_twocell(struct gpio_chip *gc, -						    unsigned int parent_hwirq, -						    unsigned int parent_type) -{ -	return NULL; -} - -static inline void *gpiochip_populate_parent_fwspec_fourcell(struct gpio_chip *gc, -						     unsigned int parent_hwirq, -						     unsigned int parent_type) -{ -	return NULL; -}  #endif /* CONFIG_IRQ_DOMAIN_HIERARCHY */ |