#include <linux/bits.h>
#include <linux/bitfield.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/mfd/core.h>
#include <linux/module.h>
#include <linux/regmap.h>
#include "mt6370.h"
#define MT6370_REG_DEV_INFO …
#define MT6370_REG_CHG_IRQ1 …
#define MT6370_REG_CHG_MASK1 …
#define MT6370_REG_MAXADDR …
#define MT6370_VENID_MASK …
#define MT6370_NUM_IRQREGS …
#define MT6370_USBC_I2CADDR …
#define MT6370_MAX_ADDRLEN …
#define MT6370_VENID_RT5081 …
#define MT6370_VENID_RT5081A …
#define MT6370_VENID_MT6370 …
#define MT6370_VENID_MT6371 …
#define MT6370_VENID_MT6372P …
#define MT6370_VENID_MT6372CP …
static const struct regmap_irq mt6370_irqs[] = …;
static const struct regmap_irq_chip mt6370_irq_chip = …;
static const struct resource mt6370_regulator_irqs[] = …;
static const struct mfd_cell mt6370_devices[] = …;
static const struct mfd_cell mt6370_exclusive_devices[] = …;
static const struct mfd_cell mt6372_exclusive_devices[] = …;
static int mt6370_check_vendor_info(struct device *dev, struct regmap *rmap,
int *vid)
{ … }
static int mt6370_regmap_read(void *context, const void *reg_buf,
size_t reg_size, void *val_buf, size_t val_size)
{ … }
static int mt6370_regmap_write(void *context, const void *data, size_t count)
{ … }
static const struct regmap_bus mt6370_regmap_bus = …;
static const struct regmap_config mt6370_regmap_config = …;
static int mt6370_probe(struct i2c_client *i2c)
{ … }
static const struct of_device_id mt6370_match_table[] = …;
MODULE_DEVICE_TABLE(of, mt6370_match_table);
static struct i2c_driver mt6370_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;