bool sec_hal_chg_get_property(struct sec_charger_info *charger, enum power_supply_property psp, union power_supply_propval *val) { u8 data; switch (psp) { case POWER_SUPPLY_PROP_STATUS: val->intval = max14577_get_charging_status(charger); break; case POWER_SUPPLY_PROP_CHARGE_TYPE: if (charger->is_charging) val->intval = POWER_SUPPLY_CHARGE_TYPE_FAST; else val->intval = POWER_SUPPLY_CHARGE_TYPE_NONE; break; case POWER_SUPPLY_PROP_HEALTH: val->intval = max14577_get_charging_health(charger); break; case POWER_SUPPLY_PROP_ONLINE: val->intval = charger->cable_type; break; case POWER_SUPPLY_PROP_CURRENT_AVG: /* charging current */ /* calculated input current limit value */ case POWER_SUPPLY_PROP_CURRENT_NOW: if (charger->charging_current) { max14577_read_reg(charger->client, MAX14577_CHG_REG_CHG_CTRL4, &data); if (data & 0x10) /* enable fast charge current set */ val->intval = (data & 0x0f) * 50 + 200; else val->intval = 90; } else val->intval = 0; dev_dbg(&charger->client->dev, "%s : set-current(%dmA), current now(%dmA)\n", __func__, charger->charging_current, val->intval); break; default: return false; } return true; }
bool sec_hal_chg_get_property(struct sec_charger_info *charger, enum power_supply_property psp, union power_supply_propval *val) { u8 data; switch (psp) { case POWER_SUPPLY_PROP_STATUS: val->intval = max14577_get_charging_status(charger); break; case POWER_SUPPLY_PROP_CHARGE_TYPE: if (charger->is_charging) val->intval = POWER_SUPPLY_CHARGE_TYPE_FAST; else val->intval = POWER_SUPPLY_CHARGE_TYPE_NONE; break; case POWER_SUPPLY_PROP_HEALTH: val->intval = max14577_get_charging_health(charger); break; case POWER_SUPPLY_PROP_ONLINE: val->intval = charger->cable_type; break; case POWER_SUPPLY_PROP_CURRENT_AVG: /* charging current */ /* calculated input current limit value */ case POWER_SUPPLY_PROP_CURRENT_NOW: if (charger->charging_current) { max14577_read_reg(charger->client, MAX14577_CHG_REG_CHG_CTRL4, &data); if (data & 0x10) /* enable fast charge current set */ #if defined(max77836_charger) val->intval = (data & 0x0f) * 25 + 100; #else val->intval = (data & 0x0f) * 50 + 200; #endif else val->intval = 90; } else