Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dab3eba7 authored by Heiko Stübner's avatar Heiko Stübner Committed by Linus Walleij
Browse files

pinctrl: rockchip: return a complete config in pinconf_get



Till now pinconf_get only set the argument value into the config parameter
effectively removing the actual config param value. As other pinctrl drivers
do, it might be nicer to keep the config param intact.
Therefore construct a real pinconfig value from param and arg in pinconf_get

Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 7420d2d0
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -740,13 +740,14 @@ static int rockchip_pinconf_get(struct pinctrl_dev *pctldev, unsigned int pin,
	struct rockchip_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
	struct rockchip_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
	struct rockchip_pin_bank *bank = pin_to_bank(info, pin);
	struct rockchip_pin_bank *bank = pin_to_bank(info, pin);
	enum pin_config_param param = pinconf_to_config_param(*config);
	enum pin_config_param param = pinconf_to_config_param(*config);
	u16 arg;


	switch (param) {
	switch (param) {
	case PIN_CONFIG_BIAS_DISABLE:
	case PIN_CONFIG_BIAS_DISABLE:
		if (rockchip_get_pull(bank, pin - bank->pin_base) != param)
		if (rockchip_get_pull(bank, pin - bank->pin_base) != param)
			return -EINVAL;
			return -EINVAL;


		*config = 0;
		arg = 0;
		break;
		break;
	case PIN_CONFIG_BIAS_PULL_UP:
	case PIN_CONFIG_BIAS_PULL_UP:
	case PIN_CONFIG_BIAS_PULL_DOWN:
	case PIN_CONFIG_BIAS_PULL_DOWN:
@@ -758,13 +759,15 @@ static int rockchip_pinconf_get(struct pinctrl_dev *pctldev, unsigned int pin,
		if (rockchip_get_pull(bank, pin - bank->pin_base) != param)
		if (rockchip_get_pull(bank, pin - bank->pin_base) != param)
			return -EINVAL;
			return -EINVAL;


		*config = 1;
		arg = 1;
		break;
		break;
	default:
	default:
		return -ENOTSUPP;
		return -ENOTSUPP;
		break;
		break;
	}
	}


	*config = pinconf_to_config_packed(param, arg);

	return 0;
	return 0;
}
}