#include <linux/device.h>
#include <linux/export.h>
#include <linux/interrupt.h>
#include <linux/irqdomain.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
struct regmap_irq_chip_data {
struct irq_chip irq_chip;
const struct regmap_irq_chip *chip;
struct irq_domain *domain;
unsigned int *main_status_buf;
unsigned int *status_buf;
unsigned int *mask_buf_def;
unsigned int *type_buf_def;
unsigned int irq_reg_stride;
unsigned int type_reg_stride;
struct regmap_irq *irq_to_regmap_irq(struct regmap_irq_chip_data *data,
return &data->chip->irqs[irq];
static void regmap_irq_lock(struct irq_data *data)
struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);