#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pmbus.h>
#include <linux/slab.h>
#include "pmbus.h"
enum chips { … };
struct pim4328_data { … };
#define to_pim4328_data(x) …
#define PIM4328_MFR_READ_VINA …
#define PIM4328_MFR_READ_VINB …
#define PIM4328_MFR_READ_IINA …
#define PIM4328_MFR_READ_IINB …
#define PIM4328_MFR_FET_CHECKSTATUS …
#define PIM4328_MFR_STATUS_BITS …
#define PIM4328_MFR_READ_STATUS …
static const struct i2c_device_id pim4328_id[] = …;
MODULE_DEVICE_TABLE(i2c, pim4328_id);
static int pim4328_read_word_data(struct i2c_client *client, int page,
int phase, int reg)
{ … }
static int pim4328_read_byte_data(struct i2c_client *client, int page, int reg)
{ … }
static int pim4328_probe(struct i2c_client *client)
{ … }
static struct i2c_driver pim4328_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);