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

Commit b6fb6e11 authored by Hans de Goede's avatar Hans de Goede Committed by Andy Shevchenko
Browse files

pinctrl: cherryview: Add chv_gpio_clear_triggering() helper function



This is a preparation patch for clearing the interrupt trigger from
chv_gpio_disable_free().

Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
parent 166d6e2a
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -846,6 +846,19 @@ static int chv_pinmux_set_mux(struct pinctrl_dev *pctldev,
	return 0;
}

static void chv_gpio_clear_triggering(struct chv_pinctrl *pctrl,
				      unsigned int offset)
{
	void __iomem *reg;
	u32 value;

	reg = chv_padreg(pctrl, offset, CHV_PADCTRL1);
	value = readl(reg);
	value &= ~CHV_PADCTRL1_INTWAKECFG_MASK;
	value &= ~CHV_PADCTRL1_INVRXTX_MASK;
	chv_writel(value, reg);
}

static int chv_gpio_request_enable(struct pinctrl_dev *pctldev,
				   struct pinctrl_gpio_range *range,
				   unsigned int offset)
@@ -876,11 +889,7 @@ static int chv_gpio_request_enable(struct pinctrl_dev *pctldev,
		}

		/* Disable interrupt generation */
		reg = chv_padreg(pctrl, offset, CHV_PADCTRL1);
		value = readl(reg);
		value &= ~CHV_PADCTRL1_INTWAKECFG_MASK;
		value &= ~CHV_PADCTRL1_INVRXTX_MASK;
		chv_writel(value, reg);
		chv_gpio_clear_triggering(pctrl, offset);

		reg = chv_padreg(pctrl, offset, CHV_PADCTRL0);
		value = readl(reg);