#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/mfd/core.h>
#include <linux/mfd/stpmic1.h>
#include <linux/module.h>
#include <linux/reboot.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/pm_wakeirq.h>
#include <linux/regmap.h>
#include <dt-bindings/mfd/st,stpmic1.h>
#define STPMIC1_MAIN_IRQ …
static const struct regmap_range stpmic1_readable_ranges[] = …;
static const struct regmap_range stpmic1_writeable_ranges[] = …;
static const struct regmap_range stpmic1_volatile_ranges[] = …;
static const struct regmap_access_table stpmic1_readable_table = …;
static const struct regmap_access_table stpmic1_writeable_table = …;
static const struct regmap_access_table stpmic1_volatile_table = …;
static const struct regmap_config stpmic1_regmap_config = …;
static const struct regmap_irq stpmic1_irqs[] = …;
static const struct regmap_irq_chip stpmic1_regmap_irq_chip = …;
static int stpmic1_power_off(struct sys_off_data *data)
{ … }
static int stpmic1_probe(struct i2c_client *i2c)
{ … }
static int stpmic1_suspend(struct device *dev)
{ … }
static int stpmic1_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(stpmic1_pm, stpmic1_suspend, stpmic1_resume);
static const struct of_device_id stpmic1_of_match[] = …;
MODULE_DEVICE_TABLE(of, stpmic1_of_match);
static struct i2c_driver stpmic1_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;