[PATCH v9 02/19] pinctrl: k1: fix pull-up/pull-down configuration
Eric Chung <[email protected]>
| Newsgroups | gmane.comp.boot-loaders.u-boot |
|---|---|
| Message-ID | <20260819-m4-v9-2-6e66016392b9__20570.2773689822$1787111765$gmane$org@riscstar.com> |
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]> Reviewed-by: Yixun Lan <[email protected]> --- v9: - Rebase since drop patch "fix drive strength configuration". 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 a6a22eacac7b..9ca4ef7c771e 100644 --- a/drivers/pinctrl/spacemit/pinctrl-k1.c +++ b/drivers/pinctrl/spacemit/pinctrl-k1.c @@ -406,7 +406,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 = 0; unsigned int io_type; u8 ds; bool found; @@ -421,12 +420,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