pinctrl: qcom: handle input-enable pinconf property
authorStanimir Varbanov <svarbanov@mm-sol.com>
Wed, 4 Mar 2015 10:41:57 +0000 (12:41 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 9 Mar 2015 17:11:01 +0000 (18:11 +0100)
This enables support of 'input-enable' pinconf generic property in
the pinctrl driver.

Signed-off-by: Stanimir Varbanov <svarbanov@mm-sol.com>
Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/qcom/pinctrl-msm.c

index d36e51172567feef01001f2ecf355d469a2ab24a..f3d800f796c2f48c4a7c6c5e6b71d23dbc8cbb31 100644 (file)
@@ -193,6 +193,7 @@ static int msm_config_reg(struct msm_pinctrl *pctrl,
                *mask = 7;
                break;
        case PIN_CONFIG_OUTPUT:
+       case PIN_CONFIG_INPUT_ENABLE:
                *bit = g->oe_bit;
                *mask = 1;
                break;
@@ -260,6 +261,12 @@ static int msm_config_group_get(struct pinctrl_dev *pctldev,
                val = readl(pctrl->regs + g->io_reg);
                arg = !!(val & BIT(g->in_bit));
                break;
+       case PIN_CONFIG_INPUT_ENABLE:
+               /* Pin is output */
+               if (arg)
+                       return -EINVAL;
+               arg = 1;
+               break;
        default:
                return -ENOTSUPP;
        }
@@ -330,6 +337,10 @@ static int msm_config_group_set(struct pinctrl_dev *pctldev,
                        /* enable output */
                        arg = 1;
                        break;
+               case PIN_CONFIG_INPUT_ENABLE:
+                       /* disable output */
+                       arg = 0;
+                       break;
                default:
                        dev_err(pctrl->dev, "Unsupported config parameter: %x\n",
                                param);