aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/da9055-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/da9055-core.c')
-rw-r--r--drivers/mfd/da9055-core.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/mfd/da9055-core.c b/drivers/mfd/da9055-core.c
index 49cb23d37469..d3670cd3c3c6 100644
--- a/drivers/mfd/da9055-core.c
+++ b/drivers/mfd/da9055-core.c
@@ -379,8 +379,9 @@ static struct regmap_irq_chip da9055_regmap_irq_chip = {
379 379
380int da9055_device_init(struct da9055 *da9055) 380int da9055_device_init(struct da9055 *da9055)
381{ 381{
382 struct da9055_pdata *pdata = da9055->dev->platform_data; 382 struct da9055_pdata *pdata = dev_get_platdata(da9055->dev);
383 int ret; 383 int ret;
384 uint8_t clear_events[3] = {0xFF, 0xFF, 0xFF};
384 385
385 if (pdata && pdata->init != NULL) 386 if (pdata && pdata->init != NULL)
386 pdata->init(da9055); 387 pdata->init(da9055);
@@ -390,6 +391,10 @@ int da9055_device_init(struct da9055 *da9055)
390 else 391 else
391 da9055->irq_base = pdata->irq_base; 392 da9055->irq_base = pdata->irq_base;
392 393
394 ret = da9055_group_write(da9055, DA9055_REG_EVENT_A, 3, clear_events);
395 if (ret < 0)
396 return ret;
397
393 ret = regmap_add_irq_chip(da9055->regmap, da9055->chip_irq, 398 ret = regmap_add_irq_chip(da9055->regmap, da9055->chip_irq,
394 IRQF_TRIGGER_LOW | IRQF_ONESHOT, 399 IRQF_TRIGGER_LOW | IRQF_ONESHOT,
395 da9055->irq_base, &da9055_regmap_irq_chip, 400 da9055->irq_base, &da9055_regmap_irq_chip,