diff options
| -rw-r--r-- | drivers/mfd/palmas.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 98fdcdbbd610..c4a69f193a1d 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c | |||
| @@ -356,7 +356,14 @@ static int __devinit palmas_i2c_probe(struct i2c_client *i2c, | |||
| 356 | } | 356 | } |
| 357 | } | 357 | } |
| 358 | 358 | ||
| 359 | ret = regmap_add_irq_chip(palmas->regmap[1], palmas->irq, | 359 | /* Change IRQ into clear on read mode for efficiency */ |
| 360 | slave = PALMAS_BASE_TO_SLAVE(PALMAS_INTERRUPT_BASE); | ||
| 361 | addr = PALMAS_BASE_TO_REG(PALMAS_INTERRUPT_BASE, PALMAS_INT_CTRL); | ||
| 362 | reg = PALMAS_INT_CTRL_INT_CLEAR; | ||
| 363 | |||
| 364 | regmap_write(palmas->regmap[slave], addr, reg); | ||
| 365 | |||
| 366 | ret = regmap_add_irq_chip(palmas->regmap[slave], palmas->irq, | ||
| 360 | IRQF_ONESHOT | IRQF_TRIGGER_LOW, -1, &palmas_irq_chip, | 367 | IRQF_ONESHOT | IRQF_TRIGGER_LOW, -1, &palmas_irq_chip, |
| 361 | &palmas->irq_data); | 368 | &palmas->irq_data); |
| 362 | if (ret < 0) | 369 | if (ret < 0) |
