#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mfd/core.h>
#include <linux/mfd/as3722.h>
#include <linux/of.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#define AS3722_DEVICE_ID …
static const struct resource as3722_rtc_resource[] = …;
static const struct resource as3722_adc_resource[] = …;
static const struct mfd_cell as3722_devs[] = …;
static const struct regmap_irq as3722_irqs[] = …;
static const struct regmap_irq_chip as3722_irq_chip = …;
static int as3722_check_device_id(struct as3722 *as3722)
{ … }
static int as3722_configure_pullups(struct as3722 *as3722)
{ … }
static const struct regmap_range as3722_readable_ranges[] = …;
static const struct regmap_access_table as3722_readable_table = …;
static const struct regmap_range as3722_writable_ranges[] = …;
static const struct regmap_access_table as3722_writable_table = …;
static const struct regmap_range as3722_cacheable_ranges[] = …;
static const struct regmap_access_table as3722_volatile_table = …;
static const struct regmap_config as3722_regmap_config = …;
static int as3722_i2c_of_probe(struct i2c_client *i2c,
struct as3722 *as3722)
{ … }
static int as3722_i2c_probe(struct i2c_client *i2c)
{ … }
static int __maybe_unused as3722_i2c_suspend(struct device *dev)
{ … }
static int __maybe_unused as3722_i2c_resume(struct device *dev)
{ … }
static const struct of_device_id as3722_of_match[] = …;
MODULE_DEVICE_TABLE(of, as3722_of_match);
static const struct i2c_device_id as3722_i2c_id[] = …;
MODULE_DEVICE_TABLE(i2c, as3722_i2c_id);
static const struct dev_pm_ops as3722_pm_ops = …;
static struct i2c_driver as3722_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;