#include <linux/interrupt.h>
#include <linux/irqdomain.h>
#include <linux/device.h>
#include <linux/mfd/lp8788.h>
#include <linux/module.h>
#define LP8788_INT_1 0x00
#define LP8788_INTEN_1 0x03
#define BASE_INTEN_ADDR LP8788_INTEN_1
struct irq_domain *domain;
int enabled[LP8788_INT_MAX];
static inline u8 _irq_to_addr(enum lp8788_int_id id)
static inline u8 _irq_to_enable_addr(enum lp8788_int_id id)
return _irq_to_addr(id) + BASE_INTEN_ADDR;
static inline u8 _irq_to_mask(enum lp8788_int_id id)
return 1 << (id % SIZE_REG);
static inline u8 _irq_to_val(enum lp8788_int_id id, int enable)
return enable << (id % SIZE_REG);