* [PATCH 1/2] pinctrl: sophgo: Use FIELD_MODIFY()
2026-04-30 17:01 [PATCH 0/2] pinctrl: Use FIELD_MODIFY() to simplify bit manipulation Hans Zhang
@ 2026-04-30 17:01 ` Hans Zhang
2026-04-30 17:01 ` [PATCH 2/2] pinctrl: spacemit: " Hans Zhang
1 sibling, 0 replies; 3+ messages in thread
From: Hans Zhang @ 2026-04-30 17:01 UTC (permalink / raw)
To: linusw, unicorn_wang, inochiama, dlan
Cc: linux-gpio, linux-kernel, Hans Zhang
Use FIELD_MODIFY() to remove open-coded bit manipulation.
No functional change intended.
Signed-off-by: Hans Zhang <18255117159@163.com>
---
drivers/pinctrl/sophgo/pinctrl-cv18xx.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/drivers/pinctrl/sophgo/pinctrl-cv18xx.c b/drivers/pinctrl/sophgo/pinctrl-cv18xx.c
index c3a2dcf71f2a..40a85d93b52e 100644
--- a/drivers/pinctrl/sophgo/pinctrl-cv18xx.c
+++ b/drivers/pinctrl/sophgo/pinctrl-cv18xx.c
@@ -333,13 +333,11 @@ static int cv1800_pinconf_compute_config(struct sophgo_pinctrl *pctrl,
switch (param) {
case PIN_CONFIG_BIAS_PULL_DOWN:
- v &= ~PIN_IO_PULLDOWN;
- v |= FIELD_PREP(PIN_IO_PULLDOWN, arg);
+ FIELD_MODIFY(PIN_IO_PULLDOWN, &v, arg);
m |= PIN_IO_PULLDOWN;
break;
case PIN_CONFIG_BIAS_PULL_UP:
- v &= ~PIN_IO_PULLUP;
- v |= FIELD_PREP(PIN_IO_PULLUP, arg);
+ FIELD_MODIFY(PIN_IO_PULLUP, &v, arg);
m |= PIN_IO_PULLUP;
break;
case PIN_CONFIG_DRIVE_STRENGTH_UA:
@@ -347,8 +345,7 @@ static int cv1800_pinconf_compute_config(struct sophgo_pinctrl *pctrl,
priv->power_cfg, arg);
if (ret < 0)
return ret;
- v &= ~PIN_IO_DRIVE;
- v |= FIELD_PREP(PIN_IO_DRIVE, ret);
+ FIELD_MODIFY(PIN_IO_DRIVE, &v, ret);
m |= PIN_IO_DRIVE;
break;
case PIN_CONFIG_INPUT_SCHMITT_UV:
@@ -356,21 +353,18 @@ static int cv1800_pinconf_compute_config(struct sophgo_pinctrl *pctrl,
priv->power_cfg, arg);
if (ret < 0)
return ret;
- v &= ~PIN_IO_SCHMITT;
- v |= FIELD_PREP(PIN_IO_SCHMITT, ret);
+ FIELD_MODIFY(PIN_IO_SCHMITT, &v, ret);
m |= PIN_IO_SCHMITT;
break;
case PIN_CONFIG_POWER_SOURCE:
/* Ignore power source as it is always fixed */
break;
case PIN_CONFIG_SLEW_RATE:
- v &= ~PIN_IO_OUT_FAST_SLEW;
- v |= FIELD_PREP(PIN_IO_OUT_FAST_SLEW, arg);
+ FIELD_MODIFY(PIN_IO_OUT_FAST_SLEW, &v, arg);
m |= PIN_IO_OUT_FAST_SLEW;
break;
case PIN_CONFIG_BIAS_BUS_HOLD:
- v &= ~PIN_IO_BUS_HOLD;
- v |= FIELD_PREP(PIN_IO_BUS_HOLD, arg);
+ FIELD_MODIFY(PIN_IO_BUS_HOLD, &v, arg);
m |= PIN_IO_BUS_HOLD;
break;
default:
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/2] pinctrl: spacemit: Use FIELD_MODIFY()
2026-04-30 17:01 [PATCH 0/2] pinctrl: Use FIELD_MODIFY() to simplify bit manipulation Hans Zhang
2026-04-30 17:01 ` [PATCH 1/2] pinctrl: sophgo: Use FIELD_MODIFY() Hans Zhang
@ 2026-04-30 17:01 ` Hans Zhang
1 sibling, 0 replies; 3+ messages in thread
From: Hans Zhang @ 2026-04-30 17:01 UTC (permalink / raw)
To: linusw, unicorn_wang, inochiama, dlan
Cc: linux-gpio, linux-kernel, Hans Zhang
Use FIELD_MODIFY() to remove open-coded bit manipulation.
No functional change intended.
Signed-off-by: Hans Zhang <18255117159@163.com>
---
drivers/pinctrl/spacemit/pinctrl-k1.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/pinctrl/spacemit/pinctrl-k1.c b/drivers/pinctrl/spacemit/pinctrl-k1.c
index b0be62b1c816..54674f55ed81 100644
--- a/drivers/pinctrl/spacemit/pinctrl-k1.c
+++ b/drivers/pinctrl/spacemit/pinctrl-k1.c
@@ -777,9 +777,8 @@ static int spacemit_pinconf_generate_config(struct spacemit_pinctrl *pctrl,
return -EINVAL;
}
} else {
- v &= ~PAD_SLEW_RATE;
slew_rate = slew_rate > 1 ? (slew_rate - 2) : 0;
- v |= FIELD_PREP(PAD_SLEW_RATE, slew_rate);
+ FIELD_MODIFY(PAD_SLEW_RATE, &v, slew_rate);
}
}
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread