Lines Matching refs:bat

185 static int da9052_read_chgend_current(struct da9052_battery *bat,
190 if (bat->status == POWER_SUPPLY_STATUS_DISCHARGING)
193 ret = da9052_reg_read(bat->da9052, DA9052_ICHG_END_REG);
202 static int da9052_read_chg_current(struct da9052_battery *bat, int *current_mA)
206 if (bat->status == POWER_SUPPLY_STATUS_DISCHARGING)
209 ret = da9052_reg_read(bat->da9052, DA9052_ICHG_AV_REG);
218 static int da9052_bat_check_status(struct da9052_battery *bat, int *status)
233 ret = da9052_group_read(bat->da9052, DA9052_STATUS_A_REG, 2, v);
249 bat->charger_type = DA9052_CHARGER;
255 ret = da9052_read_chg_current(bat, &chg_current);
258 ret = da9052_read_chgend_current(bat, &chg_end_current);
263 bat->status = POWER_SUPPLY_STATUS_CHARGING;
265 bat->status = POWER_SUPPLY_STATUS_NOT_CHARGING;
270 bat->status = POWER_SUPPLY_STATUS_CHARGING;
273 bat->charger_type = DA9052_CHARGER;
274 bat->status = POWER_SUPPLY_STATUS_NOT_CHARGING;
276 bat->charger_type = DA9052_NOCHARGER;
277 bat->status = POWER_SUPPLY_STATUS_DISCHARGING;
281 *status = bat->status;
285 static int da9052_bat_read_volt(struct da9052_battery *bat, int *volt_mV)
289 volt = da9052_adc_manual_read(bat->da9052, DA9052_ADC_MAN_MUXSEL_VBAT);
298 static int da9052_bat_check_presence(struct da9052_battery *bat, int *illegal)
302 bat_temp = da9052_adc_read_temp(bat->da9052);
353 static int da9052_bat_read_capacity(struct da9052_battery *bat, int *capacity)
366 ret = da9052_bat_read_volt(bat, &bat_voltage);
370 adc_temp = da9052_adc_read_temp(bat->da9052);
406 static int da9052_bat_check_health(struct da9052_battery *bat, int *health)
412 ret = da9052_bat_check_presence(bat, &bat_illegal);
417 bat->health = POWER_SUPPLY_HEALTH_UNKNOWN;
421 if (bat->health != POWER_SUPPLY_HEALTH_OVERHEAT) {
422 ret = da9052_bat_read_capacity(bat, &capacity);
426 bat->health = POWER_SUPPLY_HEALTH_DEAD;
428 bat->health = POWER_SUPPLY_HEALTH_GOOD;
431 *health = bat->health;
438 struct da9052_battery *bat = data;
441 virq = regmap_irq_get_virq(bat->da9052->irq_data, irq);
445 bat->status = POWER_SUPPLY_STATUS_FULL;
447 da9052_bat_check_status(bat, NULL);
451 power_supply_changed(bat->psy);
464 struct da9052_battery *bat = container_of(nb, struct da9052_battery,
467 if (bat->status == POWER_SUPPLY_STATUS_DISCHARGING)
470 ret = da9052_reg_read(bat->da9052, DA9052_CHGBUCK_REG);
474 if (bat->da9052->chip_id == DA9052)
488 return da9052_reg_update(bat->da9052, DA9052_ISET_REG,
498 struct da9052_battery *bat = power_supply_get_drvdata(psy);
500 ret = da9052_bat_check_presence(bat, &illegal);
509 ret = da9052_bat_check_status(bat, &val->intval);
513 (bat->charger_type == DA9052_NOCHARGER) ? 0 : 1;
516 ret = da9052_bat_check_presence(bat, &val->intval);
519 ret = da9052_bat_check_health(bat, &val->intval);
525 ret = da9052_bat_read_volt(bat, &val->intval);
528 ret = da9052_read_chg_current(bat, &val->intval);
531 ret = da9052_bat_read_capacity(bat, &val->intval);
534 val->intval = da9052_adc_read_temp(bat->da9052);
560 .name = "da9052-bat",
588 struct da9052_battery *bat;
593 bat = devm_kzalloc(&pdev->dev, sizeof(struct da9052_battery),
595 if (!bat)
598 psy_cfg.drv_data = bat;
600 bat->da9052 = dev_get_drvdata(pdev->dev.parent);
601 bat->charger_type = DA9052_NOCHARGER;
602 bat->status = POWER_SUPPLY_STATUS_UNKNOWN;
603 bat->health = POWER_SUPPLY_HEALTH_UNKNOWN;
604 bat->nb.notifier_call = da9052_USB_current_notifier;
606 pdata = bat->da9052->dev->platform_data;
613 ret = da9052_request_irq(bat->da9052,
615 da9052_bat_irq, bat);
618 dev_err(bat->da9052->dev,
625 bat->psy = devm_power_supply_register(&pdev->dev, &psy_desc, &psy_cfg);
626 if (IS_ERR(bat->psy)) {
627 ret = PTR_ERR(bat->psy);
631 platform_set_drvdata(pdev, bat);
636 da9052_free_irq(bat->da9052, da9052_bat_irq_bits[i], bat);
643 struct da9052_battery *bat = platform_get_drvdata(pdev);
646 da9052_free_irq(bat->da9052, da9052_bat_irq_bits[i], bat);
653 .name = "da9052-bat",
661 MODULE_ALIAS("platform:da9052-bat");