mirror of
https://github.com/torvalds/linux.git
synced 2026-10-12 21:31:03 +02:00
pinctrl: npcm8xx: clear pending GPIO events during init
A bank may retain pending event status across resets of the GPIO block. If probe leaves the old state in place, the chained IRQ handler can see spurious events as soon as the irqchip is registered. Disable event generation and clear EVST before wiring each GPIO bank into gpiolib so the driver starts from a known state. Signed-off-by: Tomer Maimon <tmaimon77@gmail.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
parent
dc0e211e1a
commit
cd39cce4cf
|
|
@ -2471,6 +2471,9 @@ static int npcm8xx_gpio_fw(struct npcm8xx_pinctrl *pctrl)
|
|||
if (ret < 0)
|
||||
return dev_err_probe(dev, ret, "Failed to retrieve IRQ for bank %u\n", id);
|
||||
|
||||
iowrite32(0, pctrl->gpio_bank[id].base + NPCM8XX_GP_N_EVEN);
|
||||
iowrite32(0xffffffff, pctrl->gpio_bank[id].base + NPCM8XX_GP_N_EVST);
|
||||
|
||||
pctrl->gpio_bank[id].irq = ret;
|
||||
pctrl->gpio_bank[id].irq_chip = npcmgpio_irqchip;
|
||||
pctrl->gpio_bank[id].irqbase = id * NPCM8XX_GPIO_PER_BANK;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user