On 13 November 2019 13:40, Christoph Fritz wrote: > This patch refactors buck modes into a header file so that device trees > can make use of these mode constants. > > The new header filename uses da9063 because DA9063 was the earlier chip > and its driver code will want updating at some point in a similar manner. > > Signed-off-by: Christoph Fritz <chf.fritz@xxxxxxxxxxxxxx> Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@xxxxxxxxxxx> > --- > drivers/regulator/da9062-regulator.c | 28 ++++++++-------------- > .../dt-bindings/regulator/dlg,da9063-regulator.h | 16 +++++++++++++ > 2 files changed, 26 insertions(+), 18 deletions(-) > create mode 100644 include/dt-bindings/regulator/dlg,da9063-regulator.h > > diff --git a/drivers/regulator/da9062-regulator.c b/drivers/regulator/da9062- > regulator.c > index 4b24518..601002e 100644 > --- a/drivers/regulator/da9062-regulator.c > +++ b/drivers/regulator/da9062-regulator.c > @@ -16,6 +16,7 @@ > #include <linux/regulator/of_regulator.h> > #include <linux/mfd/da9062/core.h> > #include <linux/mfd/da9062/registers.h> > +#include <dt-bindings/regulator/dlg,da9063-regulator.h> > > /* Regulator IDs */ > enum { > @@ -75,14 +76,6 @@ struct da9062_regulators { > struct da9062_regulator regulator[0]; > }; > > -/* BUCK modes */ > -enum { > - BUCK_MODE_MANUAL, /* 0 */ > - BUCK_MODE_SLEEP, /* 1 */ > - BUCK_MODE_SYNC, /* 2 */ > - BUCK_MODE_AUTO /* 3 */ > -}; > - > /* Regulator operations */ > > /* Current limits array (in uA) > @@ -112,13 +105,13 @@ static int da9062_buck_set_mode(struct regulator_dev > *rdev, unsigned mode) > > switch (mode) { > case REGULATOR_MODE_FAST: > - val = BUCK_MODE_SYNC; > + val = DA9063_BUCK_MODE_SYNC; > break; > case REGULATOR_MODE_NORMAL: > - val = BUCK_MODE_AUTO; > + val = DA9063_BUCK_MODE_AUTO; > break; > case REGULATOR_MODE_STANDBY: > - val = BUCK_MODE_SLEEP; > + val = DA9063_BUCK_MODE_SLEEP; > break; > default: > return -EINVAL; > @@ -145,14 +138,13 @@ static unsigned da9062_buck_get_mode(struct > regulator_dev *rdev) > > switch (val) { > default: > - case BUCK_MODE_MANUAL: > /* Sleep flag bit decides the mode */ > break; > - case BUCK_MODE_SLEEP: > + case DA9063_BUCK_MODE_SLEEP: > return REGULATOR_MODE_STANDBY; > - case BUCK_MODE_SYNC: > + case DA9063_BUCK_MODE_SYNC: > return REGULATOR_MODE_FAST; > - case BUCK_MODE_AUTO: > + case DA9063_BUCK_MODE_AUTO: > return REGULATOR_MODE_NORMAL; > } > > @@ -279,13 +271,13 @@ static int da9062_buck_set_suspend_mode(struct > regulator_dev *rdev, > > switch (mode) { > case REGULATOR_MODE_FAST: > - val = BUCK_MODE_SYNC; > + val = DA9063_BUCK_MODE_SYNC; > break; > case REGULATOR_MODE_NORMAL: > - val = BUCK_MODE_AUTO; > + val = DA9063_BUCK_MODE_AUTO; > break; > case REGULATOR_MODE_STANDBY: > - val = BUCK_MODE_SLEEP; > + val = DA9063_BUCK_MODE_SLEEP; > break; > default: > return -EINVAL; > diff --git a/include/dt-bindings/regulator/dlg,da9063-regulator.h b/include/dt- > bindings/regulator/dlg,da9063-regulator.h > new file mode 100644 > index 00000000..1de710d > --- /dev/null > +++ b/include/dt-bindings/regulator/dlg,da9063-regulator.h > @@ -0,0 +1,16 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > + > +#ifndef _DT_BINDINGS_REGULATOR_DLG_DA9063_H > +#define _DT_BINDINGS_REGULATOR_DLG_DA9063_H > + > +/* > + * These buck mode constants may be used to specify values in device tree > + * properties (e.g. regulator-initial-mode). > + * A description of the following modes is in the manufacturers datasheet. > + */ > + > +#define DA9063_BUCK_MODE_SLEEP 1 > +#define DA9063_BUCK_MODE_SYNC 2 > +#define DA9063_BUCK_MODE_AUTO 3 > + > +#endif > -- > 2.1.4