Commit 02d02728 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Lee Jones

mfd: twl6040: Clear the interrupt ID register before requesting IRQ

If for some reason the boot loader enabled the audpwron GPIO we will have
pending IRQs to be handled. This seams to break twl6040 for some reason
leading to non working i2c communication (i2c timeouts). Clearing the INTID
register after we requested the audpwron GPIO (and set it to low) will
ensure that the chip will operate normally in this case as well.
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent d137be00
...@@ -679,6 +679,9 @@ static int twl6040_probe(struct i2c_client *client, ...@@ -679,6 +679,9 @@ static int twl6040_probe(struct i2c_client *client,
GPIOF_OUT_INIT_LOW, "audpwron"); GPIOF_OUT_INIT_LOW, "audpwron");
if (ret) if (ret)
goto gpio_err; goto gpio_err;
/* Clear any pending interrupt */
twl6040_reg_read(twl6040, TWL6040_REG_INTID);
} }
ret = regmap_add_irq_chip(twl6040->regmap, twl6040->irq, IRQF_ONESHOT, ret = regmap_add_irq_chip(twl6040->regmap, twl6040->irq, IRQF_ONESHOT,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment