diff options
Diffstat (limited to 'include/linux/gpio/regmap.h')
| -rw-r--r-- | include/linux/gpio/regmap.h | 18 | 
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/gpio/regmap.h b/include/linux/gpio/regmap.h index c722c67668c6..622a2939ebe0 100644 --- a/include/linux/gpio/regmap.h +++ b/include/linux/gpio/regmap.h @@ -6,6 +6,7 @@  struct device;  struct fwnode_handle;  struct gpio_regmap; +struct gpio_chip;  struct irq_domain;  struct regmap; @@ -40,6 +41,13 @@ struct regmap;   * @drvdata:		(Optional) Pointer to driver specific data which is   *			not used by gpio-remap but is provided "as is" to the   *			driver callback(s). + * @init_valid_mask:	(Optional) Routine to initialize @valid_mask, to be used + *			if not all GPIOs are valid. + * @regmap_irq_chip:	(Optional) Pointer on an regmap_irq_chip structure. If + *			set, a regmap-irq device will be created and the IRQ + *			domain will be set accordingly. + * @regmap_irq_line	(Optional) The IRQ the device uses to signal interrupts. + * @regmap_irq_flags	(Optional) The IRQF_ flags to use for the interrupt.   *   * The ->reg_mask_xlate translates a given base address and GPIO offset to   * register and mask pair. The base address is one of the given register @@ -78,10 +86,20 @@ struct gpio_regmap_config {  	int ngpio_per_reg;  	struct irq_domain *irq_domain; +#ifdef CONFIG_REGMAP_IRQ +	struct regmap_irq_chip *regmap_irq_chip; +	int regmap_irq_line; +	unsigned long regmap_irq_flags; +#endif +  	int (*reg_mask_xlate)(struct gpio_regmap *gpio, unsigned int base,  			      unsigned int offset, unsigned int *reg,  			      unsigned int *mask); +	int (*init_valid_mask)(struct gpio_chip *gc, +			       unsigned long *valid_mask, +			       unsigned int ngpios); +  	void *drvdata;  };  | 
