#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/of.h>
#include <linux/regmap.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/of_regulator.h>
#define SY8827N_VSEL0 …
#define SY8827N_BUCK_EN …
#define SY8827N_MODE …
#define SY8827N_VSEL1 …
#define SY8827N_CTRL …
#define SY8827N_ID1 …
#define SY8827N_ID2 …
#define SY8827N_PGOOD …
#define SY8827N_MAX …
#define SY8827N_NVOLTAGES …
#define SY8827N_VSELMIN …
#define SY8827N_VSELSTEP …
struct sy8827n_device_info { … };
static int sy8827n_set_mode(struct regulator_dev *rdev, unsigned int mode)
{ … }
static unsigned int sy8827n_get_mode(struct regulator_dev *rdev)
{ … }
static const struct regulator_ops sy8827n_regulator_ops = …;
static int sy8827n_regulator_register(struct sy8827n_device_info *di,
struct regulator_config *config)
{ … }
static bool sy8827n_volatile_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config sy8827n_regmap_config = …;
static int sy8827n_i2c_probe(struct i2c_client *client)
{ … }
static const struct of_device_id sy8827n_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, sy8827n_dt_ids);
static const struct i2c_device_id sy8827n_id[] = …;
MODULE_DEVICE_TABLE(i2c, sy8827n_id);
static struct i2c_driver sy8827n_regulator_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;