#include <linux/err.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/mfd/max8997.h>
#include <linux/mfd/max8997-private.h>
static const u8 max8997_mask_reg[] = …;
static struct i2c_client *get_i2c(struct max8997_dev *max8997,
enum max8997_irq_source src)
{ … }
struct max8997_irq_data { … };
#define DECLARE_IRQ(idx, _group, _mask) …
static const struct max8997_irq_data max8997_irqs[] = …;
static void max8997_irq_lock(struct irq_data *data)
{ … }
static void max8997_irq_sync_unlock(struct irq_data *data)
{ … }
inline static const struct max8997_irq_data *
irq_to_max8997_irq(struct max8997_dev *max8997, struct irq_data *data)
{ … }
static void max8997_irq_mask(struct irq_data *data)
{ … }
static void max8997_irq_unmask(struct irq_data *data)
{ … }
static struct irq_chip max8997_irq_chip = …;
#define MAX8997_IRQSRC_PMIC …
#define MAX8997_IRQSRC_FUELGAUGE …
#define MAX8997_IRQSRC_MUIC …
#define MAX8997_IRQSRC_GPIO …
#define MAX8997_IRQSRC_FLASH …
static irqreturn_t max8997_irq_thread(int irq, void *data)
{ … }
int max8997_irq_resume(struct max8997_dev *max8997)
{ … }
static int max8997_irq_domain_map(struct irq_domain *d, unsigned int irq,
irq_hw_number_t hw)
{ … }
static const struct irq_domain_ops max8997_irq_domain_ops = …;
int max8997_irq_init(struct max8997_dev *max8997)
{ … }
void max8997_irq_exit(struct max8997_dev *max8997)
{ … }