From: Archit Anant <architanant5@gmail.com>
To: jic23@kernel.org
Cc: dlechner@baylibre.com, andy@kernel.org, nuno.sa@analog.com,
u.kleine-koenig@baylibre.com, linux-iio@vger.kernel.org,
linux-kernel@vger.kernel.org,
Archit Anant <architanant5@gmail.com>
Subject: [PATCH v4 8/8] iio: adc: ti-ads1015: inline ads1015_set_conv_mode()
Date: Thu, 27 Aug 2026 22:51:00 +0530 [thread overview]
Message-ID: <20260827172100.39176-9-architanant5@gmail.com> (raw)
In-Reply-To: <20260827172100.39176-1-architanant5@gmail.com>
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.
Suggested-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Archit Anant <architanant5@gmail.com>
---
drivers/iio/adc/ti-ads1015.c | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c
index d675f82c0bd5..2072b9dd43e8 100644
--- a/drivers/iio/adc/ti-ads1015.c
+++ b/drivers/iio/adc/ti-ads1015.c
@@ -40,8 +40,6 @@
#define ADS1015_LO_THRESH_REG 0x02
#define ADS1015_HI_THRESH_REG 0x03
-#define ADS1015_CFG_MOD_SHIFT 8
-
#define ADS1015_CFG_COMP_QUE_MASK GENMASK(1, 0)
#define ADS1015_CFG_COMP_LAT_MASK BIT(2)
#define ADS1015_CFG_COMP_POL_MASK BIT(3)
@@ -739,6 +737,7 @@ static int ads1015_disable_event_config(struct ads1015_data *data,
const struct iio_chan_spec *chan, int comp_mode)
{
unsigned int val = FIELD_PREP(ADS1015_CFG_COMP_QUE_MASK, ADS1015_CFG_COMP_DISABLE);
+ struct regmap *map = data->regmap;
int ret;
if (!ads1015_event_channel_enabled(data))
@@ -751,7 +750,7 @@ static int ads1015_disable_event_config(struct ads1015_data *data,
comp_mode == ADS1015_CFG_COMP_MODE_WINDOW)
return 0;
- ret = regmap_update_bits(data->regmap, ADS1015_CFG_REG, ADS1015_CFG_COMP_QUE_MASK, val);
+ ret = regmap_update_bits(map, ADS1015_CFG_REG, ADS1015_CFG_COMP_QUE_MASK, val);
if (ret)
return ret;
@@ -913,19 +912,14 @@ static void ads1015_get_channels_config(struct i2c_client *client)
}
}
-static int ads1015_set_conv_mode(struct ads1015_data *data, int mode)
-{
- return regmap_update_bits(data->regmap, ADS1015_CFG_REG,
- ADS1015_CFG_MOD_MASK,
- mode << ADS1015_CFG_MOD_SHIFT);
-}
-
static void ads1015_power_down(void *p)
{
+ unsigned int val = FIELD_PREP(ADS1015_CFG_MOD_MASK, ADS1015_SINGLESHOT);
struct ads1015_data *data = p;
+ struct regmap *map = data->regmap;
int ret;
- ret = ads1015_set_conv_mode(data, ADS1015_SINGLESHOT);
+ ret = regmap_update_bits(map, ADS1015_CFG_REG, ADS1015_CFG_MOD_MASK, val);
if (ret)
dev_warn(regmap_get_device(data->regmap),
"Failed to power down (%pe)\n", ERR_PTR(ret));
@@ -933,6 +927,7 @@ static void ads1015_power_down(void *p)
static int ads1015_probe(struct i2c_client *client)
{
+ unsigned int cfg_mode = FIELD_PREP(ADS1015_CFG_MOD_MASK, ADS1015_CONTINUOUS);
const struct ads1015_chip_data *chip;
struct device *dev = &client->dev;
struct iio_dev *indio_dev;
@@ -1028,7 +1023,7 @@ static int ads1015_probe(struct i2c_client *client)
return ret;
}
- ret = ads1015_set_conv_mode(data, ADS1015_CONTINUOUS);
+ ret = regmap_update_bits(data->regmap, ADS1015_CFG_REG, ADS1015_CFG_MOD_MASK, cfg_mode);
if (ret)
return ret;
@@ -1049,19 +1044,23 @@ static int ads1015_probe(struct i2c_client *client)
static int ads1015_runtime_suspend(struct device *dev)
{
+ unsigned int val = FIELD_PREP(ADS1015_CFG_MOD_MASK, ADS1015_SINGLESHOT);
struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev));
struct ads1015_data *data = iio_priv(indio_dev);
+ struct regmap *map = data->regmap;
- return ads1015_set_conv_mode(data, ADS1015_SINGLESHOT);
+ return regmap_update_bits(map, ADS1015_CFG_REG, ADS1015_CFG_MOD_MASK, val);
}
static int ads1015_runtime_resume(struct device *dev)
{
+ unsigned int val = FIELD_PREP(ADS1015_CFG_MOD_MASK, ADS1015_CONTINUOUS);
struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev));
struct ads1015_data *data = iio_priv(indio_dev);
+ struct regmap *map = data->regmap;
int ret;
- ret = ads1015_set_conv_mode(data, ADS1015_CONTINUOUS);
+ ret = regmap_update_bits(map, ADS1015_CFG_REG, ADS1015_CFG_MOD_MASK, val);
if (!ret)
data->conv_invalid = true;
--
2.39.5
next prev parent reply other threads:[~2026-08-27 17:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-27 17:20 [PATCH v4 0/8] iio: adc: ti-ads1015: modernize driver Archit Anant
2026-08-27 17:20 ` [PATCH v4 1/8] iio: adc: ti-ads1015: use DEFINE_RUNTIME_DEV_PM_OPS() Archit Anant
2026-08-27 17:20 ` [PATCH v4 2/8] iio: adc: ti-ads1015: sort headers alphabetically Archit Anant
2026-08-27 17:20 ` [PATCH v4 3/8] iio: adc: ti-ads1015: use local device pointer in probe Archit Anant
2026-08-27 18:55 ` Andy Shevchenko
2026-08-27 17:20 ` [PATCH v4 4/8] iio: adc: ti-ads1015: use dev_err_probe() for error handling Archit Anant
2026-08-27 17:20 ` [PATCH v4 5/8] iio: adc: ti-ads1015: drop unneeded < 0 error checks Archit Anant
2026-08-27 17:20 ` [PATCH v4 6/8] iio: adc: ti-ads1015: Convert to managed resources Archit Anant
2026-08-27 19:28 ` Andy Shevchenko
2026-08-30 22:57 ` Jonathan Cameron
2026-08-27 17:20 ` [PATCH v4 7/8] iio: adc: ti-ads1015: replace custom shift macros with FIELD_PREP/GET Archit Anant
2026-08-27 19:32 ` Andy Shevchenko
2026-08-27 17:21 ` Archit Anant [this message]
2026-08-27 19:34 ` [PATCH v4 8/8] iio: adc: ti-ads1015: inline ads1015_set_conv_mode() Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260827172100.39176-9-architanant5@gmail.com \
--to=architanant5@gmail.com \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=u.kleine-koenig@baylibre.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®