#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/log2.h>
#include <linux/of.h>
#include "pmbus.h"
enum chips { … };
#define LM25066_READ_VAUX …
#define LM25066_MFR_READ_IIN …
#define LM25066_MFR_READ_PIN …
#define LM25066_MFR_IIN_OC_WARN_LIMIT …
#define LM25066_MFR_PIN_OP_WARN_LIMIT …
#define LM25066_READ_PIN_PEAK …
#define LM25066_CLEAR_PIN_PEAK …
#define LM25066_DEVICE_SETUP …
#define LM25066_READ_AVG_VIN …
#define LM25066_SAMPLES_FOR_AVG …
#define LM25066_READ_AVG_VOUT …
#define LM25066_READ_AVG_IIN …
#define LM25066_READ_AVG_PIN …
#define LM25066_DEV_SETUP_CL …
#define LM25066_SAMPLES_FOR_AVG_MAX …
#define LM25056_VAUX_OV_WARN_LIMIT …
#define LM25056_VAUX_UV_WARN_LIMIT …
#define LM25056_MFR_STS_VAUX_OV_WARN …
#define LM25056_MFR_STS_VAUX_UV_WARN …
struct __coeff { … };
#define PSC_CURRENT_IN_L …
#define PSC_POWER_L …
static const struct __coeff lm25066_coeff[][PSC_NUM_CLASSES + 2] = …;
struct lm25066_data { … };
#define to_lm25066_data(x) …
static int lm25066_read_word_data(struct i2c_client *client, int page,
int phase, int reg)
{ … }
static int lm25056_read_word_data(struct i2c_client *client, int page,
int phase, int reg)
{ … }
static int lm25056_read_byte_data(struct i2c_client *client, int page, int reg)
{ … }
static int lm25066_write_word_data(struct i2c_client *client, int page, int reg,
u16 word)
{ … }
#if IS_ENABLED(CONFIG_SENSORS_LM25066_REGULATOR)
static const struct regulator_desc lm25066_reg_desc[] = …;
#endif
static const struct i2c_device_id lm25066_id[] = …;
MODULE_DEVICE_TABLE(i2c, lm25066_id);
static const struct of_device_id __maybe_unused lm25066_of_match[] = …;
MODULE_DEVICE_TABLE(of, lm25066_of_match);
static int lm25066_probe(struct i2c_client *client)
{ … }
static struct i2c_driver lm25066_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);