19 #include <linux/errno.h>
21 #include <linux/module.h>
22 #include <linux/slab.h>
27 #define JITTER_DEFAULT 10
40 static const char *
const gab_chan_name[] = {
63 struct gab *adc_bat = to_generic_bat(psy);
91 static bool gab_charge_finished(
struct gab *adc_bat)
102 static int gab_get_status(
struct gab *adc_bat)
135 chan_index = gab_prop_to_chan(psp);
139 pr_err(
"read channel error\n");
152 adc_bat = to_generic_bat(psy);
157 pdata = adc_bat->
pdata;
162 gab_get_status(adc_bat);
173 ret = read_channel(adc_bat, psp, &result);
208 delayed_work =
container_of(work,
struct delayed_work, work);
210 pdata = adc_bat->
pdata;
218 else if (gab_charge_finished(adc_bat))
223 if (status != adc_bat->
status)
251 dev_err(&pdev->
dev,
"failed to allocate memory\n");
282 properties = psy->
properties +
sizeof(gab_props);
288 for (chan = 0; chan <
ARRAY_SIZE(gab_chan_name); chan++) {
290 gab_chan_name[chan]);
291 if (IS_ERR(adc_bat->
channel[chan])) {
292 ret = PTR_ERR(adc_bat->
channel[chan]);
296 &gab_dyn_props[chan],
297 sizeof(gab_dyn_props[chan]));
304 goto second_mem_fail;
329 "battery charged", adc_bat);
334 platform_set_drvdata(pdev, adc_bat);
346 for (chan = 0;
ARRAY_SIZE(gab_chan_name); chan++)
357 struct gab *adc_bat = platform_get_drvdata(pdev);
367 for (chan = 0;
ARRAY_SIZE(gab_chan_name); chan++)
376 static int gab_suspend(
struct device *
dev)
385 static int gab_resume(
struct device *
dev)
401 .resume = gab_resume,
404 #define GAB_PM_OPS (&gab_pm_ops)
406 #define GAB_PM_OPS (NULL)
411 .name =
"generic-adc-battery",