[PATCH v8 03/11] pinctrl: k1: fix pull-up/pull-down configuration
Eric Chung <[email protected]> Sun, 02 Aug 2026 00:40:44 +0800
| Newsgroups | gmane.comp.boot-loaders.u-boot |
|---|---|
| Message-ID | <[email protected]> |
Fix pull-up/pull-down configuration to honor the argument parameter: when argument is non-zero, enable the requested pull direction; when argument is zero, clear all pull bits to disable. Signed-off-by: Eric Chung <[email protected]> --- v7: - Simplify pull-up/pull-down configuration by using a single clrsetbits_le32() call. v6: - Fix pull-up/pull-down configuration. --- drivers/pinctrl/spacemit/pinctrl-k1.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/pinctrl/spacemit/pinctrl-k1.c b/drivers/pinctrl/spacemit/pinctrl-k1.c index 6ed511879daf..4e65fad1e8c5 100644 --- a/drivers/pinctrl/spacemit/pinctrl-k1.c +++ b/drivers/pinctrl/spacemit/pinctrl-k1.c @@ -409,7 +409,6 @@ static int spacemit_pinconf_set(struct udevice *dev, unsigned int pin_selector, struct spacemit_pinctrl_data *data; struct spacemit_pinctrl_priv *priv = dev_get_priv(dev); void __iomem *addr; - u32 mask; unsigned int io_type; u8 ds; bool found; @@ -424,12 +423,12 @@ static int spacemit_pinconf_set(struct udevice *dev, unsigned int pin_selector, clrbits_le32(addr, PAD_PULLUP | PAD_PULLDOWN | PAD_PULL_EN); break; case PIN_CONFIG_BIAS_PULL_DOWN: - mask = PAD_PULLDOWN | PAD_PULLUP | PAD_PULL_EN; - clrsetbits_le32(addr, mask, PAD_PULLDOWN | PAD_PULL_EN); + clrsetbits_le32(addr, PAD_PULLDOWN | PAD_PULLUP | PAD_PULL_EN, + argument ? PAD_PULLDOWN | PAD_PULL_EN : 0); break; case PIN_CONFIG_BIAS_PULL_UP: - mask = PAD_PULLDOWN | PAD_PULLUP | PAD_PULL_EN; - clrsetbits_le32(addr, mask, PAD_PULLUP | PAD_PULL_EN); + clrsetbits_le32(addr, PAD_PULLDOWN | PAD_PULLUP | PAD_PULL_EN, + argument ? PAD_PULLUP | PAD_PULL_EN : 0); break; case PIN_CONFIG_DRIVE_STRENGTH: io_type = IO_TYPE_1V8; -- 2.51.0