forked from Minki/linux
pinctrl: mediatek: add ies register support to pinctrl-mtk-common-v2.c
Certain SoCs have to program an extra IES register to configure input enabled mode so that we add it in the existing path as an option. Signed-off-by: Ryder.Lee <ryder.lee@mediatek.com> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
0d7ca77214
commit
182c842fd5
@ -244,15 +244,27 @@ static int mtk_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin,
|
||||
MTK_DISABLE);
|
||||
if (err)
|
||||
goto err;
|
||||
/* else: fall through */
|
||||
case PIN_CONFIG_INPUT_ENABLE:
|
||||
case PIN_CONFIG_SLEW_RATE:
|
||||
reg = (param == PIN_CONFIG_SLEW_RATE) ?
|
||||
PINCTRL_PIN_REG_SR : PINCTRL_PIN_REG_DIR;
|
||||
|
||||
arg = (param == PIN_CONFIG_INPUT_ENABLE) ? 0 :
|
||||
(param == PIN_CONFIG_OUTPUT_ENABLE) ? 1 : arg;
|
||||
err = mtk_hw_set_value(hw, pin, reg, arg);
|
||||
err = mtk_hw_set_value(hw, pin, PINCTRL_PIN_REG_DIR,
|
||||
MTK_OUTPUT);
|
||||
if (err)
|
||||
goto err;
|
||||
break;
|
||||
case PIN_CONFIG_INPUT_ENABLE:
|
||||
|
||||
if (hw->soc->ies_present) {
|
||||
mtk_hw_set_value(hw, pin, PINCTRL_PIN_REG_IES,
|
||||
MTK_ENABLE);
|
||||
}
|
||||
|
||||
err = mtk_hw_set_value(hw, pin, PINCTRL_PIN_REG_DIR,
|
||||
MTK_INPUT);
|
||||
if (err)
|
||||
goto err;
|
||||
break;
|
||||
case PIN_CONFIG_SLEW_RATE:
|
||||
err = mtk_hw_set_value(hw, pin, PINCTRL_PIN_REG_SR,
|
||||
arg);
|
||||
if (err)
|
||||
goto err;
|
||||
|
||||
|
@ -767,6 +767,7 @@ static const struct mtk_pin_soc mt7622_data = {
|
||||
.eint_hw = &mt7622_eint_hw,
|
||||
.gpio_m = 1,
|
||||
.eint_m = 1,
|
||||
.ies_present = false,
|
||||
.bias_disable_set = mtk_pinconf_bias_disable_set,
|
||||
.bias_disable_get = mtk_pinconf_bias_disable_get,
|
||||
.bias_set = mtk_pinconf_bias_set,
|
||||
|
@ -54,6 +54,7 @@ enum {
|
||||
PINCTRL_PIN_REG_PUPD,
|
||||
PINCTRL_PIN_REG_R0,
|
||||
PINCTRL_PIN_REG_R1,
|
||||
PINCTRL_PIN_REG_IES,
|
||||
PINCTRL_PIN_REG_MAX,
|
||||
};
|
||||
|
||||
@ -151,6 +152,7 @@ struct mtk_pin_soc {
|
||||
/* Specific parameters per SoC */
|
||||
u8 gpio_m;
|
||||
u8 eint_m;
|
||||
bool ies_present;
|
||||
|
||||
/* Specific pinconfig operations */
|
||||
int (*bias_disable_set)(struct mtk_pinctrl *hw,
|
||||
|
Loading…
Reference in New Issue
Block a user