Re: [PATCH v3 8/8] iio: adc: ti-ads1015: inline ads1015_set_conv_mode()
From: Andy Shevchenko
Date: Thu Aug 13 2026 - 05:11:48 EST
On Wed, Aug 12, 2026 at 10:14:33PM +0530, Archit Anant wrote:
> The ads1015_set_conv_mode() helper function is a single-line wrapper
> around regmap_update_bits().
>
> With the transition to the FIELD_PREP() macro, the raw register updates
> are now self-documenting and easy to read. Remove the wrapper function
> and inline the regmap calls directly at the call sites.
>
> This also allows for the removal of the final custom shift macro,
> ADS1015_CFG_MOD_SHIFT.
...
> -static int ads1015_set_conv_mode(struct ads1015_data *data, int mode)
> +static void ads1015_power_off(void *data)
> {
> - return regmap_update_bits(data->regmap, ADS1015_CFG_REG,
> - ADS1015_CFG_MOD_MASK,
> - mode << ADS1015_CFG_MOD_SHIFT);
> -}
> + struct ads1015_data *st = data;
>
> -static void ads1015_power_off(void *st)
> -{
> - ads1015_set_conv_mode(st, ADS1015_SINGLESHOT);
> + regmap_update_bits(st->regmap, ADS1015_CFG_REG,
> + ADS1015_CFG_MOD_MASK,
> + FIELD_PREP(ADS1015_CFG_MOD_MASK,
> + ADS1015_SINGLESHOT));
> }
Wouldn't be better to have it as
static void ads1015_power_off(void *data)
{
unsigned int val = FIELD_PREP(ADS1015_CFG_MOD_MASK, ADS1015_SINGLESHOT);
struct regmap *map = data->regmap;
regmap_update_bits(map, ADS1015_CFG_REG, ADS1015_CFG_MOD_MASK, val);
}
In lieu of this, think if the similar approach can be applied elsewhere in this
driver.
--
With Best Regards,
Andy Shevchenko