pinctrl: mediatek: add input-enable and direction setting for eint resources
authorBiao Huang <biao.huang@mediatek.com>
Tue, 16 Feb 2016 19:16:34 +0000 (03:16 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 18 Feb 2016 23:30:22 +0000 (00:30 +0100)
To use pin as eint, user should make sure that:
1. pin is set to right mode, this is done in .irq_request_resources
implementation already.
2. direction of the pin is input, which should call GPIO API to set
pin to input gpio.
We add what step 2 do to .irq_request_resources so that user doesn't
need call GPIO API any more when pin for eint usage.

Signed-off-by: Biao Huang <biao.huang@mediatek.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/mediatek/pinctrl-mtk-common.c

index 578897a1c45fc8e469b493c530b470d45acc47cc..342d85b9861fc016dc90ac38dc97ab234fe060e5 100644 (file)
@@ -863,6 +863,10 @@ static int mtk_pinctrl_irq_request_resources(struct irq_data *d)
 
        /* set mux to INT mode */
        mtk_pmx_set_mode(pctl->pctl_dev, pin->pin.number, pin->eint.eintmux);
+       /* set gpio direction to input */
+       mtk_pmx_gpio_set_direction(pctl->pctl_dev, NULL, pin->pin.number, true);
+       /* set input-enable */
+       mtk_pconf_set_ies_smt(pctl, pin->pin.number, 1, PIN_CONFIG_INPUT_ENABLE);
 
        return 0;
 }