On Sun, Jun 8, 2025 at 5:27 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > On Sun, 1 Jun 2025 17:21:32 +0000 > Lothar Rubusch <l.rubusch@xxxxxxxxx> wrote: > > > Rework controlling measurement and standby of the sensor. Therefore, > > replace writing the register directly by encapsulating this and dealing > > with the return value in a separte function to enable and disable > > measurement. This will help to avoid redundant code in all locations > > where the sensor configuration needs to be adjusted, thus measurement will > > be set to standby, in follow up patches. > > > > Further, reduce the control mask to only the measurement bit. The sleep bit > > actually controls a different behavior (not just putting the sensor to > > standby for configuration, but turning it into sleep mode) and it is not > > used so far. In consequence, there is no need to cover sleep bit and > > measurement with the same mask. > > > > Signed-off-by: Lothar Rubusch <l.rubusch@xxxxxxxxx> > This is a good bit to have as a precursor patch (as you have done) > because it is refactoring the existing code. It doesn't stand on it's > own though given for now there is only one caller, so I won't pick it up > until the patch that uses it is ready to go. > So, I'll leave this patch (in case I might refrase the commit message, and I hope this is ok). I'm going to merge [v4 02/11] [v4 05/11] and [v4 06/11] for a v5. Let me know if I got this wrong. > Jonathan > > > --- > > drivers/iio/accel/adxl313.h | 3 +-- > > drivers/iio/accel/adxl313_core.c | 10 +++++++--- > > 2 files changed, 8 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/iio/accel/adxl313.h b/drivers/iio/accel/adxl313.h > > index fc937bdf83b6..9bf2facdbf87 100644 > > --- a/drivers/iio/accel/adxl313.h > > +++ b/drivers/iio/accel/adxl313.h > > @@ -36,8 +36,7 @@ > > #define ADXL313_RATE_MSK GENMASK(3, 0) > > #define ADXL313_RATE_BASE 6 > > > > -#define ADXL313_POWER_CTL_MSK GENMASK(3, 2) > > -#define ADXL313_MEASUREMENT_MODE BIT(3) > > +#define ADXL313_POWER_CTL_MSK BIT(3) > > > > #define ADXL313_RANGE_MSK GENMASK(1, 0) > > #define ADXL313_RANGE_MAX 3 > > diff --git a/drivers/iio/accel/adxl313_core.c b/drivers/iio/accel/adxl313_core.c > > index 0c893c286017..6170c9daa30f 100644 > > --- a/drivers/iio/accel/adxl313_core.c > > +++ b/drivers/iio/accel/adxl313_core.c > > @@ -63,6 +63,12 @@ bool adxl313_is_volatile_reg(struct device *dev, unsigned int reg) > > } > > EXPORT_SYMBOL_NS_GPL(adxl313_is_volatile_reg, "IIO_ADXL313"); > > > > +static int adxl313_set_measure_en(struct adxl313_data *data, bool en) > > +{ > > + return regmap_assign_bits(data->regmap, ADXL313_REG_POWER_CTL, > > + ADXL313_POWER_CTL_MSK, en); > > +} > > + > > static int adxl312_check_id(struct device *dev, > > struct adxl313_data *data) > > { > > @@ -410,9 +416,7 @@ static int adxl313_setup(struct device *dev, struct adxl313_data *data, > > } > > > > /* Enables measurement mode */ > > - return regmap_update_bits(data->regmap, ADXL313_REG_POWER_CTL, > > - ADXL313_POWER_CTL_MSK, > > - ADXL313_MEASUREMENT_MODE); > > + return adxl313_set_measure_en(data, true); > > } > > > > /** >