#include <linux/bitops.h>
#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 "pmbus.h"
enum chips { … };
struct zl6100_data { … };
#define to_zl6100_data(x) …
#define ZL6100_MFR_CONFIG …
#define ZL6100_DEVICE_ID …
#define ZL6100_MFR_XTEMP_ENABLE …
#define ZL8802_MFR_USER_GLOBAL_CONFIG …
#define ZL8802_MFR_TMON_ENABLE …
#define ZL8802_MFR_USER_CONFIG …
#define ZL8802_MFR_XTEMP_ENABLE_2 …
#define ZL8802_MFR_DDC_CONFIG …
#define ZL8802_MFR_PHASES_MASK …
#define MFR_VMON_OV_FAULT_LIMIT …
#define MFR_VMON_UV_FAULT_LIMIT …
#define MFR_READ_VMON …
#define VMON_UV_WARNING …
#define VMON_OV_WARNING …
#define VMON_UV_FAULT …
#define VMON_OV_FAULT …
#define ZL6100_WAIT_TIME …
static ushort delay = …;
module_param(delay, ushort, 0644);
MODULE_PARM_DESC(…) …;
static long zl6100_l2d(s16 l)
{ … }
#define MAX_MANTISSA …
#define MIN_MANTISSA …
static u16 zl6100_d2l(long val)
{ … }
static inline void zl6100_wait(const struct zl6100_data *data)
{ … }
static int zl6100_read_word_data(struct i2c_client *client, int page,
int phase, int reg)
{ … }
static int zl6100_read_byte_data(struct i2c_client *client, int page, int reg)
{ … }
static int zl6100_write_word_data(struct i2c_client *client, int page, int reg,
u16 word)
{ … }
static int zl6100_write_byte(struct i2c_client *client, int page, u8 value)
{ … }
static const struct i2c_device_id zl6100_id[] = …;
MODULE_DEVICE_TABLE(i2c, zl6100_id);
static int zl6100_probe(struct i2c_client *client)
{ … }
static struct i2c_driver zl6100_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);