#include <linux/module.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/err.h>
#include <linux/interrupt.h>
#include <linux/of.h>
#include <linux/pm_runtime.h>
#include <linux/mutex.h>
#include <linux/mfd/core.h>
#include <linux/mfd/max77693.h>
#include <linux/mfd/max77693-common.h>
#include <linux/mfd/max77693-private.h>
#include <linux/regulator/machine.h>
#include <linux/regmap.h>
#define I2C_ADDR_PMIC …
#define I2C_ADDR_MUIC …
#define I2C_ADDR_HAPTIC …
static const struct mfd_cell max77693_devs[] = …;
static const struct regmap_config max77693_regmap_config = …;
static const struct regmap_irq max77693_led_irqs[] = …;
static const struct regmap_irq_chip max77693_led_irq_chip = …;
static const struct regmap_irq max77693_topsys_irqs[] = …;
static const struct regmap_irq_chip max77693_topsys_irq_chip = …;
static const struct regmap_irq max77693_charger_irqs[] = …;
static const struct regmap_irq_chip max77693_charger_irq_chip = …;
static const struct regmap_config max77693_regmap_muic_config = …;
static const struct regmap_irq max77693_muic_irqs[] = …;
static const struct regmap_irq_chip max77693_muic_irq_chip = …;
static const struct regmap_config max77693_regmap_haptic_config = …;
static int max77693_i2c_probe(struct i2c_client *i2c)
{ … }
static void max77693_i2c_remove(struct i2c_client *i2c)
{ … }
static const struct i2c_device_id max77693_i2c_id[] = …;
MODULE_DEVICE_TABLE(i2c, max77693_i2c_id);
static int max77693_suspend(struct device *dev)
{ … }
static int max77693_resume(struct device *dev)
{ … }
static const struct dev_pm_ops max77693_pm = …;
#ifdef CONFIG_OF
static const struct of_device_id max77693_dt_match[] = …;
MODULE_DEVICE_TABLE(of, max77693_dt_match);
#endif
static struct i2c_driver max77693_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;