Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 182c842f authored by Sean Wang's avatar Sean Wang Committed by Linus Walleij
Browse files

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: default avatarRyder.Lee <ryder.lee@mediatek.com>
Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 0d7ca772
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
@@ -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 */

			err = mtk_hw_set_value(hw, pin, PINCTRL_PIN_REG_DIR,
					       MTK_OUTPUT);
			if (err)
				goto err;
			break;
		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);
			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;

+1 −0
Original line number Diff line number Diff line
@@ -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,
+2 −0
Original line number Diff line number Diff line
@@ -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,