Quoting Satya Priya (2022-02-18 03:01:01) > Qualcomm Technologies, Inc. PM8008 is an I2C controlled PMIC > containing 7 LDO regulators. Add a PM8008 regulator driver to > support PMIC regulator management via the regulator framework. > > Signed-off-by: Satya Priya <quic_c_skakit@xxxxxxxxxxx> > diff --git a/drivers/regulator/qcom-pm8008-regulator.c b/drivers/regulator/qcom-pm8008-regulator.c > new file mode 100644 > index 0000000..1c52864 > --- /dev/null > +++ b/drivers/regulator/qcom-pm8008-regulator.c > @@ -0,0 +1,205 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* Copyright (c) 2022, The Linux Foundation. All rights reserved. */ > + > +#include <linux/device.h> > +#include <linux/kernel.h> > +#include <linux/module.h> > +#include <linux/of.h> > +#include <linux/of_device.h> > +#include <linux/platform_device.h> > +#include <linux/regmap.h> > +#include <linux/regulator/driver.h> > +#include <linux/regulator/machine.h> > + > +#define VSET_STEP_MV 8 > +#define VSET_STEP_UV (VSET_STEP_MV * 1000) > + > +#define LDO_ENABLE_REG(base) ((base) + 0x46) > +#define ENABLE_BIT BIT(7) This is SPMI_COMMON_REG_ENABLE and SPMI_COMMON_ENABLE_MASK > + > +#define LDO_VSET_LB_REG(base) ((base) + 0x40) > + > +#define LDO_STEPPER_CTL_REG(base) ((base) + 0x3b) > +#define DEFAULT_VOLTAGE_STEPPER_RATE 38400 > +#define STEP_RATE_MASK GENMASK(1, 0) > + > +struct regulator_data { Please use a name like spmi_regulator_data :) Or pm8008_regulator_data? Something that isn't so generic. It seems similar to qcom_spmi-regulator.c so is there some reason we can't shove this into there? Less code for things that aren't relevant I guess? > + const char *name; > + const char *supply_name; > + u16 base; > + int min_uv; > + int max_uv; > + int min_dropout_uv; > + const struct linear_range *voltage_range;