|
@@ -250,6 +250,17 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
|
|
goto err_irq_muic;
|
|
goto err_irq_muic;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* Unmask interrupts from all blocks in interrupt source register */
|
|
|
|
+ ret = regmap_update_bits(max77693->regmap,
|
|
|
|
+ MAX77693_PMIC_REG_INTSRC_MASK,
|
|
|
|
+ SRC_IRQ_ALL, (unsigned int)~SRC_IRQ_ALL);
|
|
|
|
+ if (ret < 0) {
|
|
|
|
+ dev_err(max77693->dev,
|
|
|
|
+ "Could not unmask interrupts in INTSRC: %d\n",
|
|
|
|
+ ret);
|
|
|
|
+ goto err_intsrc;
|
|
|
|
+ }
|
|
|
|
+
|
|
pm_runtime_set_active(max77693->dev);
|
|
pm_runtime_set_active(max77693->dev);
|
|
|
|
|
|
ret = mfd_add_devices(max77693->dev, -1, max77693_devs,
|
|
ret = mfd_add_devices(max77693->dev, -1, max77693_devs,
|
|
@@ -261,6 +272,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
|
|
|
|
|
|
err_mfd:
|
|
err_mfd:
|
|
mfd_remove_devices(max77693->dev);
|
|
mfd_remove_devices(max77693->dev);
|
|
|
|
+err_intsrc:
|
|
regmap_del_irq_chip(max77693->irq, max77693->irq_data_muic);
|
|
regmap_del_irq_chip(max77693->irq, max77693->irq_data_muic);
|
|
err_irq_muic:
|
|
err_irq_muic:
|
|
regmap_del_irq_chip(max77693->irq, max77693->irq_data_charger);
|
|
regmap_del_irq_chip(max77693->irq, max77693->irq_data_charger);
|