Lines Matching refs:adc_bat
65 struct gab *adc_bat = to_generic_bat(psy); in gab_ext_power_changed() local
67 schedule_delayed_work(&adc_bat->bat_work, msecs_to_jiffies(0)); in gab_ext_power_changed()
93 static bool gab_charge_finished(struct gab *adc_bat) in gab_charge_finished() argument
95 if (!adc_bat->charge_finished) in gab_charge_finished()
97 return gpiod_get_value(adc_bat->charge_finished); in gab_charge_finished()
100 static int gab_get_status(struct gab *adc_bat) in gab_get_status() argument
102 struct gab_platform_data *pdata = adc_bat->pdata; in gab_get_status()
106 if (adc_bat->level == bat_info->charge_full_design) in gab_get_status()
108 return adc_bat->status; in gab_get_status()
127 static int read_channel(struct gab *adc_bat, enum power_supply_property psp, in read_channel() argument
134 ret = iio_read_channel_processed(adc_bat->channel[chan_index], in read_channel()
144 struct gab *adc_bat; in gab_get_property() local
150 adc_bat = to_generic_bat(psy); in gab_get_property()
151 if (!adc_bat) { in gab_get_property()
155 pdata = adc_bat->pdata; in gab_get_property()
160 val->intval = gab_get_status(adc_bat); in gab_get_property()
171 ret = read_channel(adc_bat, psp, &result); in gab_get_property()
200 struct gab *adc_bat; in gab_work() local
206 adc_bat = container_of(delayed_work, struct gab, bat_work); in gab_work()
207 status = adc_bat->status; in gab_work()
209 is_plugged = power_supply_am_i_supplied(adc_bat->psy); in gab_work()
210 adc_bat->cable_plugged = is_plugged; in gab_work()
213 adc_bat->status = POWER_SUPPLY_STATUS_DISCHARGING; in gab_work()
214 else if (gab_charge_finished(adc_bat)) in gab_work()
215 adc_bat->status = POWER_SUPPLY_STATUS_NOT_CHARGING; in gab_work()
217 adc_bat->status = POWER_SUPPLY_STATUS_CHARGING; in gab_work()
219 if (status != adc_bat->status) in gab_work()
220 power_supply_changed(adc_bat->psy); in gab_work()
225 struct gab *adc_bat = dev_id; in gab_charged() local
226 struct gab_platform_data *pdata = adc_bat->pdata; in gab_charged()
230 schedule_delayed_work(&adc_bat->bat_work, in gab_charged()
237 struct gab *adc_bat; in gab_probe() local
247 adc_bat = devm_kzalloc(&pdev->dev, sizeof(*adc_bat), GFP_KERNEL); in gab_probe()
248 if (!adc_bat) { in gab_probe()
253 psy_cfg.drv_data = adc_bat; in gab_probe()
254 psy_desc = &adc_bat->psy_desc; in gab_probe()
258 adc_bat->cable_plugged = false; in gab_probe()
259 adc_bat->status = POWER_SUPPLY_STATUS_DISCHARGING; in gab_probe()
263 adc_bat->pdata = pdata; in gab_probe()
285 adc_bat->channel[chan] = iio_channel_get(&pdev->dev, in gab_probe()
287 if (IS_ERR(adc_bat->channel[chan])) { in gab_probe()
288 ret = PTR_ERR(adc_bat->channel[chan]); in gab_probe()
289 adc_bat->channel[chan] = NULL; in gab_probe()
319 adc_bat->psy = power_supply_register(&pdev->dev, psy_desc, &psy_cfg); in gab_probe()
320 if (IS_ERR(adc_bat->psy)) { in gab_probe()
321 ret = PTR_ERR(adc_bat->psy); in gab_probe()
325 INIT_DELAYED_WORK(&adc_bat->bat_work, gab_work); in gab_probe()
327 adc_bat->charge_finished = devm_gpiod_get_optional(&pdev->dev, in gab_probe()
329 if (adc_bat->charge_finished) { in gab_probe()
332 irq = gpiod_to_irq(adc_bat->charge_finished); in gab_probe()
335 "battery charged", adc_bat); in gab_probe()
340 platform_set_drvdata(pdev, adc_bat); in gab_probe()
343 schedule_delayed_work(&adc_bat->bat_work, in gab_probe()
348 power_supply_unregister(adc_bat->psy); in gab_probe()
351 if (adc_bat->channel[chan]) in gab_probe()
352 iio_channel_release(adc_bat->channel[chan]); in gab_probe()
363 struct gab *adc_bat = platform_get_drvdata(pdev); in gab_remove() local
365 power_supply_unregister(adc_bat->psy); in gab_remove()
367 if (adc_bat->charge_finished) in gab_remove()
368 free_irq(gpiod_to_irq(adc_bat->charge_finished), adc_bat); in gab_remove()
371 if (adc_bat->channel[chan]) in gab_remove()
372 iio_channel_release(adc_bat->channel[chan]); in gab_remove()
375 kfree(adc_bat->psy_desc.properties); in gab_remove()
376 cancel_delayed_work_sync(&adc_bat->bat_work); in gab_remove()
382 struct gab *adc_bat = dev_get_drvdata(dev); in gab_suspend() local
384 cancel_delayed_work_sync(&adc_bat->bat_work); in gab_suspend()
385 adc_bat->status = POWER_SUPPLY_STATUS_UNKNOWN; in gab_suspend()
391 struct gab *adc_bat = dev_get_drvdata(dev); in gab_resume() local
392 struct gab_platform_data *pdata = adc_bat->pdata; in gab_resume()
398 schedule_delayed_work(&adc_bat->bat_work, in gab_resume()