static int max17047_set_property(struct power_supply *psy, enum power_supply_property psp, const union power_supply_propval *val) { struct max17047_fuelgauge_data *fg_data = container_of(psy, struct max17047_fuelgauge_data, fuelgauge); switch (psp) { case POWER_SUPPLY_PROP_CAPACITY: max17047_reset_soc(fg_data->client); break; case POWER_SUPPLY_PROP_STATUS: if (val->intval != POWER_SUPPLY_STATUS_FULL) return -EINVAL; pr_info("%s: charger full state!\n", __func__); /* adjust full soc */ max17047_adjust_fullsoc(fg_data->client); break; default: return -EINVAL; } return 0; }
static int max17047_set_property(struct power_supply *psy, enum power_supply_property psp, const union power_supply_propval *val) { struct max17047_fuelgauge_data *fuelgauge_data = container_of(psy, struct max17047_fuelgauge_data, fuelgauge); switch (psp) { case POWER_SUPPLY_PROP_CAPACITY: max17047_reset_soc(fuelgauge_data->client); break; default: return -EINVAL; } return 0; }
static int max17047_set_property(struct power_supply *psy, enum power_supply_property psp, const union power_supply_propval *val) { struct max17047_fuelgauge_data *fg_data = container_of(psy, struct max17047_fuelgauge_data, fuelgauge); switch (psp) { case POWER_SUPPLY_PROP_CAPACITY: max17047_reset_soc(fg_data->client); break; case POWER_SUPPLY_PROP_STATUS: if (val->intval != POWER_SUPPLY_STATUS_FULL) return -EINVAL; pr_info("%s: charger full state!\n", __func__); /* adjust full soc */ max17047_adjust_fullsoc(fg_data->client); break; #if defined(CONFIG_MACH_GC1) || defined(CONFIG_MACH_GD2) || defined(CONFIG_GC2PD_LTE) case POWER_SUPPLY_PROP_RCOMP: if (fg_data->prev_status == val->intval) { pr_debug("%s: No rcomp change, prev(%d) = cur(%d)\n", __func__, fg_data->prev_status, val->intval); } else { if (val->intval == POWER_SUPPLY_STATUS_CHARGING) max17047_set_rcomp(fg_data->client, 1); else max17047_set_rcomp(fg_data->client, 0); max17047_get_rcomp(fg_data->client, val->intval); fg_data->prev_status = val->intval; } break; #endif default: return -EINVAL; } return 0; }