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

Commit 980d0d51 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull pin-control fixes from Linus Walleij:
 "This kernel cycle has been calm for both pin control and GPIO so far
  but here are three pin control patches for you anyway, only really
  dealing with Baytrail:

   - Two fixes for the Baytrail driver affecting IRQs and output state
     in sysfs
   - Use the linux-gpio mailing list also for pinctrl patches"

* tag 'pinctrl-v3.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
  pinctrl: baytrail: show output gpio state correctly on Intel Baytrail
  pinctrl: use linux-gpio mailing list
  pinctrl: baytrail: Clear DIRECT_IRQ bit
parents f3ed88a6 d90c3381
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -7180,6 +7180,7 @@ F: drivers/crypto/picoxcell*

PIN CONTROL SUBSYSTEM
M:	Linus Walleij <linus.walleij@linaro.org>
L:	linux-gpio@vger.kernel.org
S:	Maintained
F:	drivers/pinctrl/
F:	include/linux/pinctrl/
+6 −2
Original line number Diff line number Diff line
@@ -227,10 +227,14 @@ static int byt_irq_type(struct irq_data *d, unsigned type)
	spin_lock_irqsave(&vg->lock, flags);
	value = readl(reg);

	WARN(value & BYT_DIRECT_IRQ_EN,
		"Bad pad config for io mode, force direct_irq_en bit clearing");

	/* For level trigges the BYT_TRIG_POS and BYT_TRIG_NEG bits
	 * are used to indicate high and low level triggering
	 */
	value &= ~(BYT_TRIG_POS | BYT_TRIG_NEG | BYT_TRIG_LVL);
	value &= ~(BYT_DIRECT_IRQ_EN | BYT_TRIG_POS | BYT_TRIG_NEG |
		   BYT_TRIG_LVL);

	switch (type) {
	case IRQ_TYPE_LEVEL_HIGH:
@@ -318,7 +322,7 @@ static int byt_gpio_direction_output(struct gpio_chip *chip,
		"Potential Error: Setting GPIO with direct_irq_en to output");

	reg_val = readl(reg) | BYT_DIR_MASK;
	reg_val &= ~BYT_OUTPUT_EN;
	reg_val &= ~(BYT_OUTPUT_EN | BYT_INPUT_EN);

	if (value)
		writel(reg_val | BYT_LEVEL, reg);