#include <linux/err.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/regmap.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#define AW37503_REG_VPOS …
#define AW37503_REG_VNEG …
#define AW37503_REG_APPS …
#define AW37503_REG_CONTROL …
#define AW37503_REG_WPRTEN …
#define AW37503_VOUT_MASK …
#define AW37503_VOUT_N_VOLTAGE …
#define AW37503_VOUT_VMIN …
#define AW37503_VOUT_VMAX …
#define AW37503_VOUT_STEP …
#define AW37503_REG_APPS_DIS_VPOS …
#define AW37503_REG_APPS_DIS_VNEG …
#define AW37503_REGULATOR_ID_VPOS …
#define AW37503_REGULATOR_ID_VNEG …
#define AW37503_MAX_REGULATORS …
struct aw37503_reg_pdata { … };
struct aw37503_regulator { … };
static int aw37503_regulator_enable(struct regulator_dev *rdev)
{ … }
static int aw37503_regulator_disable(struct regulator_dev *rdev)
{ … }
static int aw37503_regulator_is_enabled(struct regulator_dev *rdev)
{ … }
static const struct regulator_ops aw37503_regulator_ops = …;
static int aw37503_of_parse_cb(struct device_node *np,
const struct regulator_desc *desc,
struct regulator_config *config)
{ … }
#define AW37503_REGULATOR_DESC(_id, _name) …
static const struct regulator_desc aw_regs_desc[AW37503_MAX_REGULATORS] = …;
static const struct regmap_range aw37503_no_reg_ranges[] = …;
static const struct regmap_access_table aw37503_no_reg_table = …;
static const struct regmap_config aw37503_regmap_config = …;
static int aw37503_probe(struct i2c_client *client)
{ … }
static const struct i2c_device_id aw37503_id[] = …;
MODULE_DEVICE_TABLE(i2c, aw37503_id);
static const struct of_device_id aw37503_of_match[] = …;
MODULE_DEVICE_TABLE(of, aw37503_of_match);
static struct i2c_driver aw37503_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;