#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/mutex.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/mfd/core.h>
#include <linux/mfd/tps65090.h>
#include <linux/of.h>
#include <linux/err.h>
#define NUM_INT_REG …
#define TPS65090_INT1_MASK_VAC_STATUS_CHANGE …
#define TPS65090_INT1_MASK_VSYS_STATUS_CHANGE …
#define TPS65090_INT1_MASK_BAT_STATUS_CHANGE …
#define TPS65090_INT1_MASK_CHARGING_STATUS_CHANGE …
#define TPS65090_INT1_MASK_CHARGING_COMPLETE …
#define TPS65090_INT1_MASK_OVERLOAD_DCDC1 …
#define TPS65090_INT1_MASK_OVERLOAD_DCDC2 …
#define TPS65090_INT2_MASK_OVERLOAD_DCDC3 …
#define TPS65090_INT2_MASK_OVERLOAD_FET1 …
#define TPS65090_INT2_MASK_OVERLOAD_FET2 …
#define TPS65090_INT2_MASK_OVERLOAD_FET3 …
#define TPS65090_INT2_MASK_OVERLOAD_FET4 …
#define TPS65090_INT2_MASK_OVERLOAD_FET5 …
#define TPS65090_INT2_MASK_OVERLOAD_FET6 …
#define TPS65090_INT2_MASK_OVERLOAD_FET7 …
static const struct resource charger_resources[] = …;
enum tps65090_cells { … };
static struct mfd_cell tps65090s[] = …;
static const struct regmap_irq tps65090_irqs[] = …;
static struct regmap_irq_chip tps65090_irq_chip = …;
static bool is_volatile_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config tps65090_regmap_config = …;
#ifdef CONFIG_OF
static const struct of_device_id tps65090_of_match[] = …;
#endif
static int tps65090_i2c_probe(struct i2c_client *client)
{ … }
static const struct i2c_device_id tps65090_id_table[] = …;
static struct i2c_driver tps65090_driver = …;
static int __init tps65090_init(void)
{ … }
subsys_initcall(tps65090_init);