#include <linux/of_device.h>
#include <linux/workqueue.h>
#include <linux/power_supply.h>
+#include <linux/devm-helpers.h>
#define MAX14656_MANUFACTURER "Maxim Integrated"
#define MAX14656_NAME "max14656"
POWER_SUPPLY_PROP_MANUFACTURER,
};
-static void stop_irq_work(void *data)
-{
- struct max14656_chip *chip = data;
-
- cancel_delayed_work_sync(&chip->irq_work);
-}
-
-
static int max14656_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
return -EINVAL;
}
- INIT_DELAYED_WORK(&chip->irq_work, max14656_irq_worker);
- ret = devm_add_action(dev, stop_irq_work, chip);
+ ret = devm_delayed_work_autocancel(dev, &chip->irq_work,
+ max14656_irq_worker);
if (ret) {
- dev_err(dev, "devm_add_action %d failed\n", ret);
+ dev_err(dev, "devm_delayed_work_autocancel %d failed\n", ret);
return ret;
}