#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/ktime.h>
#include <linux/delay.h>
#include <linux/pmbus.h>
#include "pmbus.h"
static const struct i2c_device_id max15301_id[] = …;
MODULE_DEVICE_TABLE(i2c, max15301_id);
struct max15301_data { … };
#define to_max15301_data(x) …
#define MAX15301_WAIT_TIME …
static ushort delay = …;
module_param(delay, ushort, 0644);
MODULE_PARM_DESC(…) …;
static struct max15301_data max15301_data = …;
static inline void max15301_wait(const struct max15301_data *data)
{ … }
static int max15301_read_word_data(struct i2c_client *client, int page,
int phase, int reg)
{ … }
static int max15301_read_byte_data(struct i2c_client *client, int page, int reg)
{ … }
static int max15301_write_word_data(struct i2c_client *client, int page, int reg,
u16 word)
{ … }
static int max15301_write_byte(struct i2c_client *client, int page, u8 value)
{ … }
static int max15301_probe(struct i2c_client *client)
{ … }
static struct i2c_driver max15301_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);