From cf88dcd30ace4588abacc817218e3f0b4f4fea9a Mon Sep 17 00:00:00 2001 From: Jianqun Xu Date: Wed, 26 Oct 2022 14:47:04 +0800 Subject: [PATCH] pinctrl/rockchip: set iomux to GPIO when PIN_CONFIG_OUTPUT Change-Id: Ieae64ae138bca2c142ec1f92ece29936c89e190f Signed-off-by: Jianqun Xu --- drivers/pinctrl/pinctrl-rockchip.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c index d88a52622642..c74290110ab9 100644 --- a/drivers/pinctrl/pinctrl-rockchip.c +++ b/drivers/pinctrl/pinctrl-rockchip.c @@ -2842,13 +2842,15 @@ static int rockchip_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin, return rc; break; case PIN_CONFIG_OUTPUT: - rc = rockchip_get_mux(bank, pin - bank->pin_base); - if (rc != 0) { - dev_err(info->dev, "pin-%d has been mux to func%d\n", pin, rc); + rc = rockchip_set_mux(bank, pin - bank->pin_base, + RK_FUNC_GPIO); + if (rc != RK_FUNC_GPIO) { + dev_err(info->dev, "pin-%d fail to mux to gpio, %d\n", pin, rc); return -EINVAL; } - rc = gpio->direction_output(gpio, pin - bank->pin_base, arg); + rc = gpio->direction_output(gpio, pin - bank->pin_base, + arg); if (rc) return rc; break;