Commit ca35d5d2 authored by Emil Renner Berthing's avatar Emil Renner Berthing Committed by Linus Walleij
Browse files

pinctrl: th1520: Fix pinconf return values



When Drew took over the pinctrl driver he must have changed
all the -ENOTSUPP returns into -EOPNOTSUPP. This subtle change
was most likely not spotted because it was never mentioned in the
changelog of the patchset, but it breaks all the places in the
pin control and GPIO frameworks where -ENOTSUPP is expected.

Fixes: bed5cd6f ("pinctrl: Add driver for the T-Head TH1520 SoC")
Signed-off-by: default avatarEmil Renner Berthing <emil.renner.berthing@canonical.com>
Reviewed-by: default avatarDrew Fustini <dfustini@tenstorrent.com>
Tested-by: default avatarDrew Fustini <dfustini@tenstorrent.com>
Link: https://lore.kernel.org/20241011144826.381104-2-emil.renner.berthing@canonical.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 2a85fc70
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -591,7 +591,7 @@ static int th1520_pinconf_get(struct pinctrl_dev *pctldev,
	u32 arg;

	if ((uintptr_t)desc->drv_data & TH1520_PAD_NO_PADCFG)
		return -EOPNOTSUPP;
		return -ENOTSUPP;

	value = readl_relaxed(th1520_padcfg(thp, pin));
	value = (value >> th1520_padcfg_shift(pin)) & GENMASK(9, 0);
@@ -636,7 +636,7 @@ static int th1520_pinconf_get(struct pinctrl_dev *pctldev,
		arg = enabled ? 1 : 0;
		break;
	default:
		return -EOPNOTSUPP;
		return -ENOTSUPP;
	}

	*config = pinconf_to_config_packed(param, arg);
@@ -661,7 +661,7 @@ static int th1520_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin,
	u16 mask, value;

	if ((uintptr_t)desc->drv_data & TH1520_PAD_NO_PADCFG)
		return -EOPNOTSUPP;
		return -ENOTSUPP;

	mask = 0;
	value = 0;
@@ -676,14 +676,14 @@ static int th1520_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin,
			break;
		case PIN_CONFIG_BIAS_PULL_DOWN:
			if (arg == 0)
				return -EOPNOTSUPP;
				return -ENOTSUPP;
			mask |= TH1520_PADCFG_BIAS;
			value &= ~TH1520_PADCFG_BIAS;
			value |= TH1520_PADCFG_PE;
			break;
		case PIN_CONFIG_BIAS_PULL_UP:
			if (arg == 0)
				return -EOPNOTSUPP;
				return -ENOTSUPP;
			mask |= TH1520_PADCFG_BIAS;
			value &= ~TH1520_PADCFG_BIAS;
			if (arg == TH1520_PULL_STRONG_OHM)
@@ -718,7 +718,7 @@ static int th1520_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin,
				value &= ~TH1520_PADCFG_SL;
			break;
		default:
			return -EOPNOTSUPP;
			return -ENOTSUPP;
		}
	}