mfd: max77686: Use devm_mfd_add_devices and devm_regmap_add_irq_chip
Use devm_mfd_add_devices() for adding MFD child devices and devm_regmap_add_irq_chip() for IRQ chip registration. This reduces the error code path and .remove callback for removing MFD child devices and deleting IRQ chip data. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
0bbfb87c56
commit
1a5422c9e5
1 changed files with 8 additions and 23 deletions
|
@ -230,7 +230,8 @@ static int max77686_i2c_probe(struct i2c_client *i2c,
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
ret = regmap_add_irq_chip(max77686->regmap, max77686->irq,
|
||||
ret = devm_regmap_add_irq_chip(&i2c->dev, max77686->regmap,
|
||||
max77686->irq,
|
||||
IRQF_TRIGGER_FALLING | IRQF_ONESHOT |
|
||||
IRQF_SHARED, 0, irq_chip,
|
||||
&max77686->irq_data);
|
||||
|
@ -239,28 +240,13 @@ static int max77686_i2c_probe(struct i2c_client *i2c,
|
|||
return ret;
|
||||
}
|
||||
|
||||
ret = mfd_add_devices(max77686->dev, -1, cells, n_devs, NULL, 0, NULL);
|
||||
ret = devm_mfd_add_devices(max77686->dev, -1, cells, n_devs, NULL,
|
||||
0, NULL);
|
||||
if (ret < 0) {
|
||||
dev_err(&i2c->dev, "failed to add MFD devices: %d\n", ret);
|
||||
goto err_del_irqc;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_del_irqc:
|
||||
regmap_del_irq_chip(max77686->irq, max77686->irq_data);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int max77686_i2c_remove(struct i2c_client *i2c)
|
||||
{
|
||||
struct max77686_dev *max77686 = i2c_get_clientdata(i2c);
|
||||
|
||||
mfd_remove_devices(max77686->dev);
|
||||
|
||||
regmap_del_irq_chip(max77686->irq, max77686->irq_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -317,7 +303,6 @@ static struct i2c_driver max77686_i2c_driver = {
|
|||
.of_match_table = of_match_ptr(max77686_pmic_dt_match),
|
||||
},
|
||||
.probe = max77686_i2c_probe,
|
||||
.remove = max77686_i2c_remove,
|
||||
.id_table = max77686_i2c_id,
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue