summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/mediatek
diff options
context:
space:
mode:
authorBiao Huang2016-02-16 20:16:34 +0100
committerLinus Walleij2016-02-19 00:30:22 +0100
commitb1c5b77035e086c9c3c8157dcc294a17e67a6ce0 (patch)
treec33d14ebc2d60737c351a025dbb2baf1ad676d8d /drivers/pinctrl/mediatek
parentpinctrl: mediatek: add input-enable setting in gpio_request_enable (diff)
downloadkernel-qcow2-linux-b1c5b77035e086c9c3c8157dcc294a17e67a6ce0.tar.gz
kernel-qcow2-linux-b1c5b77035e086c9c3c8157dcc294a17e67a6ce0.tar.xz
kernel-qcow2-linux-b1c5b77035e086c9c3c8157dcc294a17e67a6ce0.zip
pinctrl: mediatek: add input-enable and direction setting for eint resources
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>
Diffstat (limited to 'drivers/pinctrl/mediatek')
-rw-r--r--drivers/pinctrl/mediatek/pinctrl-mtk-common.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
index 578897a1c45f..342d85b9861f 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -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;
}