#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/i2c.h>
#include <linux/mfd/max8925.h>
#include <linux/slab.h>
#define RTC_I2C_ADDR …
#define ADC_I2C_ADDR …
static inline int max8925_read_device(struct i2c_client *i2c,
int reg, int bytes, void *dest)
{ … }
static inline int max8925_write_device(struct i2c_client *i2c,
int reg, int bytes, void *src)
{ … }
int max8925_reg_read(struct i2c_client *i2c, int reg)
{ … }
EXPORT_SYMBOL(…);
int max8925_reg_write(struct i2c_client *i2c, int reg,
unsigned char data)
{ … }
EXPORT_SYMBOL(…);
int max8925_bulk_read(struct i2c_client *i2c, int reg,
int count, unsigned char *buf)
{ … }
EXPORT_SYMBOL(…);
int max8925_bulk_write(struct i2c_client *i2c, int reg,
int count, unsigned char *buf)
{ … }
EXPORT_SYMBOL(…);
int max8925_set_bits(struct i2c_client *i2c, int reg,
unsigned char mask, unsigned char data)
{ … }
EXPORT_SYMBOL(…);
static const struct i2c_device_id max8925_id_table[] = …;
static int max8925_dt_init(struct device_node *np, struct device *dev,
struct max8925_platform_data *pdata)
{ … }
static int max8925_probe(struct i2c_client *client)
{ … }
static void max8925_remove(struct i2c_client *client)
{ … }
static int max8925_suspend(struct device *dev)
{ … }
static int max8925_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(max8925_pm_ops,
max8925_suspend, max8925_resume);
static const struct of_device_id max8925_dt_ids[] = …;
static struct i2c_driver max8925_driver = …;
static int __init max8925_i2c_init(void)
{ … }
subsys_initcall(max8925_i2c_init);