Re: [PATCH v3 8/8] iio: adc: ti-ads1015: inline ads1015_set_conv_mode()

Andy Shevchenko <[email protected]>
Newsgroups org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel
Organization Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.