[PATCH v2 1/2] iio: adc: ti-ads112c14: parameterize GPIO register field macros

From: David Lechner (TI)

Date: Fri Oct 09 2026 - 19:26:47 EST


Replace the per-pin GPIO register field macros with parameterized ones.
This will be used in a later patch to access the fields by GPIO offset.

Signed-off-by: David Lechner (TI) <dlechner@xxxxxxxxxxxx>
---
drivers/iio/adc/ti-ads112c14.c | 23 +++++++----------------
1 file changed, 7 insertions(+), 16 deletions(-)

diff --git a/drivers/iio/adc/ti-ads112c14.c b/drivers/iio/adc/ti-ads112c14.c
index 3c877126b0be..cbd82de03127 100644
--- a/drivers/iio/adc/ti-ads112c14.c
+++ b/drivers/iio/adc/ti-ads112c14.c
@@ -63,10 +63,7 @@

#define ADS112C14_REG_STATUS_LSB 0x03
#define ADS112C14_STATUS_LSB_CONV_COUNT GENMASK(7, 4)
-#define ADS112C14_STATUS_LSB_GPIO3_DAT_IN BIT(3)
-#define ADS112C14_STATUS_LSB_GPIO2_DAT_IN BIT(2)
-#define ADS112C14_STATUS_LSB_GPIO1_DAT_IN BIT(1)
-#define ADS112C14_STATUS_LSB_GPIO0_DAT_IN BIT(0)
+#define ADS112C14_STATUS_LSB_GPIO_DAT_IN(n) BIT(n)

#define ADS112C14_REG_CONVERSION_CTRL 0x04
#define ADS112C14_CONVERSION_CTRL_RESET GENMASK(7, 2)
@@ -133,10 +130,7 @@
#define ADS112C14_DIGITAL_CFG_CODING BIT(1)

#define ADS112C14_REG_GPIO_CFG 0x0B
-#define ADS112C14_GPIO_CFG_GPIO3_CFG GENMASK(7, 6)
-#define ADS112C14_GPIO_CFG_GPIO2_CFG GENMASK(5, 4)
-#define ADS112C14_GPIO_CFG_GPIO1_CFG GENMASK(3, 2)
-#define ADS112C14_GPIO_CFG_GPIO0_CFG GENMASK(1, 0)
+#define ADS112C14_GPIO_CFG_GPIO_CFG(n) (GENMASK(1, 0) << (2 * (n)))
#define ADS112C14_GPIO_CFG_GPIO_CFG_DISABLED 0
#define ADS112C14_GPIO_CFG_GPIO_CFG_INPUT 1
#define ADS112C14_GPIO_CFG_GPIO_CFG_OUTPUT_PUSH_PULL 2
@@ -147,10 +141,7 @@
#define ADS112C14_GPIO_DATA_OUTPUT_GPIO3_SRC_DAT_OUT 0
#define ADS112C14_GPIO_DATA_OUTPUT_GPIO3_SRC_DRDY 1
#define ADS112C14_GPIO_DATA_OUTPUT_GPIO2_SRC BIT(6)
-#define ADS112C14_GPIO_DATA_OUTPUT_GPIO3_DAT_OUT BIT(3)
-#define ADS112C14_GPIO_DATA_OUTPUT_GPIO2_DAT_OUT BIT(2)
-#define ADS112C14_GPIO_DATA_OUTPUT_GPIO1_DAT_OUT BIT(1)
-#define ADS112C14_GPIO_DATA_OUTPUT_GPIO0_DAT_OUT BIT(0)
+#define ADS112C14_GPIO_DATA_OUTPUT_GPIO_DAT_OUT(n) BIT(n)

#define ADS112C14_REG_IDAC_MAG_CFG 0x0D
#define ADS112C14_IDAC_MAG_CFG_I2MAG GENMASK(7, 4)
@@ -2520,8 +2511,8 @@ static int ads112c14_probe(struct i2c_client *client)
* order to support open drain option here.
*/
ret = regmap_update_bits(data->regmap, ADS112C14_REG_GPIO_CFG,
- ADS112C14_GPIO_CFG_GPIO3_CFG,
- FIELD_PREP(ADS112C14_GPIO_CFG_GPIO3_CFG,
+ ADS112C14_GPIO_CFG_GPIO_CFG(3),
+ FIELD_PREP(ADS112C14_GPIO_CFG_GPIO_CFG(3),
ADS112C14_GPIO_CFG_GPIO_CFG_OUTPUT_PUSH_PULL));
if (ret)
return ret;
@@ -2556,8 +2547,8 @@ static int ads112c14_probe(struct i2c_client *client)

if (clk) {
ret = regmap_update_bits(data->regmap, ADS112C14_REG_GPIO_CFG,
- ADS112C14_GPIO_CFG_GPIO3_CFG,
- FIELD_PREP(ADS112C14_GPIO_CFG_GPIO3_CFG,
+ ADS112C14_GPIO_CFG_GPIO_CFG(3),
+ FIELD_PREP(ADS112C14_GPIO_CFG_GPIO_CFG(3),
ADS112C14_GPIO_CFG_GPIO_CFG_INPUT));
if (ret)
return ret;

--
2.53.0