#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/regulator/of_regulator.h>
#include <linux/platform_device.h>
#include <linux/reboot.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/pfuze100.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/regmap.h>
#define PFUZE_FLAG_DISABLE_SW …
#define PFUZE_NUMREGS …
#define PFUZE100_VOL_OFFSET …
#define PFUZE100_STANDBY_OFFSET …
#define PFUZE100_MODE_OFFSET …
#define PFUZE100_CONF_OFFSET …
#define PFUZE100_DEVICEID …
#define PFUZE100_REVID …
#define PFUZE100_FABID …
#define PFUZE100_COINVOL …
#define PFUZE100_SW1ABVOL …
#define PFUZE100_SW1ABMODE …
#define PFUZE100_SW1CVOL …
#define PFUZE100_SW1CMODE …
#define PFUZE100_SW2VOL …
#define PFUZE100_SW2MODE …
#define PFUZE100_SW3AVOL …
#define PFUZE100_SW3AMODE …
#define PFUZE100_SW3BVOL …
#define PFUZE100_SW3BMODE …
#define PFUZE100_SW4VOL …
#define PFUZE100_SW4MODE …
#define PFUZE100_SWBSTCON1 …
#define PFUZE100_VREFDDRCON …
#define PFUZE100_VSNVSVOL …
#define PFUZE100_VGEN1VOL …
#define PFUZE100_VGEN2VOL …
#define PFUZE100_VGEN3VOL …
#define PFUZE100_VGEN4VOL …
#define PFUZE100_VGEN5VOL …
#define PFUZE100_VGEN6VOL …
#define PFUZE100_SWxMODE_MASK …
#define PFUZE100_SWxMODE_APS_APS …
#define PFUZE100_SWxMODE_APS_OFF …
#define PFUZE100_VGENxLPWR …
#define PFUZE100_VGENxSTBY …
enum chips { … };
struct pfuze_regulator { … };
struct pfuze_chip { … };
static const int pfuze100_swbst[] = …;
static const int pfuze100_vsnvs[] = …;
static const int pfuze100_coin[] = …;
static const int pfuze3000_sw1a[] = …;
static const int pfuze3000_sw2lo[] = …;
static const int pfuze3000_sw2hi[] = …;
static const struct of_device_id pfuze_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, pfuze_dt_ids);
static int pfuze100_set_ramp_delay(struct regulator_dev *rdev, int ramp_delay)
{ … }
static const struct regulator_ops pfuze100_ldo_regulator_ops = …;
static const struct regulator_ops pfuze100_fixed_regulator_ops = …;
static const struct regulator_ops pfuze100_sw_regulator_ops = …;
static const struct regulator_ops pfuze100_sw_disable_regulator_ops = …;
static const struct regulator_ops pfuze100_swb_regulator_ops = …;
static const struct regulator_ops pfuze3000_sw_regulator_ops = …;
#define PFUZE100_FIXED_REG(_chip, _name, base, voltage) …
#define PFUZE100_SW_REG(_chip, _name, base, min, max, step) …
#define PFUZE100_SWB_REG(_chip, _name, base, mask, voltages) …
#define PFUZE100_VGEN_REG(_chip, _name, base, min, max, step) …
#define PFUZE100_COIN_REG(_chip, _name, base, mask, voltages) …
#define PFUZE3000_VCC_REG(_chip, _name, base, min, max, step) …
#define PFUZE3000_SW_REG(_chip, _name, base, mask, voltages) …
#define PFUZE3000_SW3_REG(_chip, _name, base, min, max, step) …
static struct pfuze_regulator pfuze100_regulators[] = …;
static struct pfuze_regulator pfuze200_regulators[] = …;
static struct pfuze_regulator pfuze3000_regulators[] = …;
static struct pfuze_regulator pfuze3001_regulators[] = …;
static struct of_regulator_match pfuze100_matches[] = …;
static struct of_regulator_match pfuze200_matches[] = …;
static struct of_regulator_match pfuze3000_matches[] = …;
static struct of_regulator_match pfuze3001_matches[] = …;
static struct of_regulator_match *pfuze_matches;
static int pfuze_parse_regulators_dt(struct pfuze_chip *chip)
{ … }
static inline struct regulator_init_data *match_init_data(int index)
{ … }
static inline struct device_node *match_of_node(int index)
{ … }
static int pfuze_power_off_prepare(struct sys_off_data *data)
{ … }
static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip)
{ … }
static int pfuze_identify(struct pfuze_chip *pfuze_chip)
{ … }
static const struct regmap_config pfuze_regmap_config = …;
static int pfuze100_regulator_probe(struct i2c_client *client)
{ … }
static struct i2c_driver pfuze_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;