#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/mfd/core.h>
#include <linux/mfd/rn5t618.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/reboot.h>
#include <linux/regmap.h>
static const struct mfd_cell rn5t618_cells[] = …;
static const struct mfd_cell rc5t619_cells[] = …;
static bool rn5t618_volatile_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config rn5t618_regmap_config = …;
static const struct regmap_irq rc5t619_irqs[] = …;
static const struct regmap_irq_chip rc5t619_irq_chip = …;
static struct i2c_client *rn5t618_pm_power_off;
static struct notifier_block rn5t618_restart_handler;
static int rn5t618_irq_init(struct rn5t618 *rn5t618)
{ … }
static void rn5t618_trigger_poweroff_sequence(bool repower)
{ … }
static void rn5t618_power_off(void)
{ … }
static int rn5t618_restart(struct notifier_block *this,
unsigned long mode, void *cmd)
{ … }
static const struct of_device_id rn5t618_of_match[] = …;
MODULE_DEVICE_TABLE(of, rn5t618_of_match);
static int rn5t618_i2c_probe(struct i2c_client *i2c)
{ … }
static void rn5t618_i2c_remove(struct i2c_client *i2c)
{ … }
static int __maybe_unused rn5t618_i2c_suspend(struct device *dev)
{ … }
static int __maybe_unused rn5t618_i2c_resume(struct device *dev)
{ … }
static SIMPLE_DEV_PM_OPS(rn5t618_i2c_dev_pm_ops,
rn5t618_i2c_suspend,
rn5t618_i2c_resume);
static struct i2c_driver rn5t618_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;