diff options
Diffstat (limited to 'drivers/mfd/max77693.c')
-rw-r--r-- | drivers/mfd/max77693.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/mfd/max77693.c b/drivers/mfd/max77693.c index cf008f45968c..711773e8e64b 100644 --- a/drivers/mfd/max77693.c +++ b/drivers/mfd/max77693.c | |||
@@ -240,7 +240,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c, | |||
240 | goto err_irq_charger; | 240 | goto err_irq_charger; |
241 | } | 241 | } |
242 | 242 | ||
243 | ret = regmap_add_irq_chip(max77693->regmap, max77693->irq, | 243 | ret = regmap_add_irq_chip(max77693->regmap_muic, max77693->irq, |
244 | IRQF_ONESHOT | IRQF_SHARED | | 244 | IRQF_ONESHOT | IRQF_SHARED | |
245 | IRQF_TRIGGER_FALLING, 0, | 245 | IRQF_TRIGGER_FALLING, 0, |
246 | &max77693_muic_irq_chip, | 246 | &max77693_muic_irq_chip, |
@@ -250,6 +250,17 @@ static int max77693_i2c_probe(struct i2c_client *i2c, | |||
250 | goto err_irq_muic; | 250 | goto err_irq_muic; |
251 | } | 251 | } |
252 | 252 | ||
253 | /* Unmask interrupts from all blocks in interrupt source register */ | ||
254 | ret = regmap_update_bits(max77693->regmap, | ||
255 | MAX77693_PMIC_REG_INTSRC_MASK, | ||
256 | SRC_IRQ_ALL, (unsigned int)~SRC_IRQ_ALL); | ||
257 | if (ret < 0) { | ||
258 | dev_err(max77693->dev, | ||
259 | "Could not unmask interrupts in INTSRC: %d\n", | ||
260 | ret); | ||
261 | goto err_intsrc; | ||
262 | } | ||
263 | |||
253 | pm_runtime_set_active(max77693->dev); | 264 | pm_runtime_set_active(max77693->dev); |
254 | 265 | ||
255 | ret = mfd_add_devices(max77693->dev, -1, max77693_devs, | 266 | ret = mfd_add_devices(max77693->dev, -1, max77693_devs, |
@@ -261,6 +272,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c, | |||
261 | 272 | ||
262 | err_mfd: | 273 | err_mfd: |
263 | mfd_remove_devices(max77693->dev); | 274 | mfd_remove_devices(max77693->dev); |
275 | err_intsrc: | ||
264 | regmap_del_irq_chip(max77693->irq, max77693->irq_data_muic); | 276 | regmap_del_irq_chip(max77693->irq, max77693->irq_data_muic); |
265 | err_irq_muic: | 277 | err_irq_muic: |
266 | regmap_del_irq_chip(max77693->irq, max77693->irq_data_charger); | 278 | regmap_del_irq_chip(max77693->irq, max77693->irq_data_charger); |