#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/mfd/core.h>
#include <linux/mfd/max8907.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regmap.h>
#include <linux/slab.h>
static const struct mfd_cell max8907_cells[] = …;
static bool max8907_gen_is_volatile_reg(struct device *dev, unsigned int reg)
{ … }
static bool max8907_gen_is_precious_reg(struct device *dev, unsigned int reg)
{ … }
static bool max8907_gen_is_writeable_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config max8907_regmap_gen_config = …;
static bool max8907_rtc_is_volatile_reg(struct device *dev, unsigned int reg)
{ … }
static bool max8907_rtc_is_precious_reg(struct device *dev, unsigned int reg)
{ … }
static bool max8907_rtc_is_writeable_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config max8907_regmap_rtc_config = …;
static const struct regmap_irq max8907_chg_irqs[] = …;
static const struct regmap_irq_chip max8907_chg_irq_chip = …;
static const struct regmap_irq max8907_on_off_irqs[] = …;
static const struct regmap_irq_chip max8907_on_off_irq_chip = …;
static const struct regmap_irq max8907_rtc_irqs[] = …;
static const struct regmap_irq_chip max8907_rtc_irq_chip = …;
static struct max8907 *max8907_pm_off;
static void max8907_power_off(void)
{ … }
static int max8907_i2c_probe(struct i2c_client *i2c)
{ … }
static void max8907_i2c_remove(struct i2c_client *i2c)
{ … }
#ifdef CONFIG_OF
static const struct of_device_id max8907_of_match[] = …;
MODULE_DEVICE_TABLE(of, max8907_of_match);
#endif
static const struct i2c_device_id max8907_i2c_id[] = …;
MODULE_DEVICE_TABLE(i2c, max8907_i2c_id);
static struct i2c_driver max8907_i2c_driver = …;
static int __init max8907_i2c_init(void)
{ … }
subsys_initcall(max8907_i2c_init);
static void __exit max8907_i2c_exit(void)
{ … }
module_exit(max8907_i2c_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;