#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/mfd/core.h>
#include <linux/mfd/lp8788.h>
#include <linux/module.h>
#include <linux/slab.h>
#define MAX_LP8788_REGISTERS …
#define MFD_DEV_SIMPLE(_name) …
#define MFD_DEV_WITH_ID(_name, _id) …
#define MFD_DEV_WITH_RESOURCE(_name, _resource, num_resource) …
static const struct resource chg_irqs[] = …;
static const struct resource rtc_irqs[] = …;
static const struct mfd_cell lp8788_devs[] = …;
int lp8788_read_byte(struct lp8788 *lp, u8 reg, u8 *data)
{ … }
EXPORT_SYMBOL_GPL(…);
int lp8788_read_multi_bytes(struct lp8788 *lp, u8 reg, u8 *data, size_t count)
{ … }
EXPORT_SYMBOL_GPL(…);
int lp8788_write_byte(struct lp8788 *lp, u8 reg, u8 data)
{ … }
EXPORT_SYMBOL_GPL(…);
int lp8788_update_bits(struct lp8788 *lp, u8 reg, u8 mask, u8 data)
{ … }
EXPORT_SYMBOL_GPL(…);
static int lp8788_platform_init(struct lp8788 *lp)
{ … }
static const struct regmap_config lp8788_regmap_config = …;
static int lp8788_probe(struct i2c_client *cl)
{ … }
static void lp8788_remove(struct i2c_client *cl)
{ … }
static const struct i2c_device_id lp8788_ids[] = …;
MODULE_DEVICE_TABLE(i2c, lp8788_ids);
static struct i2c_driver lp8788_driver = …;
static int __init lp8788_init(void)
{ … }
subsys_initcall(lp8788_init);
static void __exit lp8788_exit(void)
{ … }
module_exit(lp8788_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;