* [PATCH 0/2] pinctrl: Use FIELD_MODIFY() to simplify bit manipulation
@ 2026-04-30 17:01 Hans Zhang
2026-04-30 17:01 ` [PATCH 1/2] pinctrl: sophgo: Use FIELD_MODIFY() Hans Zhang
2026-04-30 17:01 ` [PATCH 2/2] pinctrl: spacemit: " Hans Zhang
0 siblings, 2 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
This series replaces open-coded bitfield clear-and-set sequences with the
FIELD_MODIFY() macro in two pinctrl drivers. No functional change is
intended. The resulting code is shorter and easier to read, and it avoids
potential mistakes when adjusting bitmask definitions in the future.
---
Hi, If the Maintainers think it's not necessary, please ignore it.
---
Hans Zhang (2):
pinctrl: sophgo: Use FIELD_MODIFY()
pinctrl: spacemit: Use FIELD_MODIFY()
drivers/pinctrl/sophgo/pinctrl-cv18xx.c | 18 ++++++------------
drivers/pinctrl/spacemit/pinctrl-k1.c | 3 +--
2 files changed, 7 insertions(+), 14 deletions(-)
base-commit: 3b3bea6d4b9c162f9e555905d96b8c1da67ecd5b
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [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
end of thread, other threads:[~2026-04-30 17:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH 2/2] pinctrl: spacemit: " Hans Zhang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox