pinctrl/rockchip: set iomux to GPIO when PIN_CONFIG_OUTPUT

Change-Id: Ieae64ae138bca2c142ec1f92ece29936c89e190f
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
This commit is contained in:
Jianqun Xu
2022-10-26 14:47:04 +08:00
parent 8c942e9c51
commit cf88dcd30a

View File

@ -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;