static void *platform_get_batt_charge_profile(void) { #ifdef CONFIG_BTNS_PMIC int retval = 0; retval = get_batt_prop(&ps_batt_chrg_prof); if (retval) { pr_err("Error reading battery profile from battid framework. Use hard coded value.\n"); memcpy(&batt_chg_profile, &atl_820_batt, sizeof(struct ps_pse_mod_prof)); ps_batt_chrg_prof.batt_prof = &batt_chg_profile; ps_batt_chrg_prof.chrg_prof_type = PSE_MOD_CHRG_PROF; } #if defined(CONFIG_POWER_SUPPLY_CHARGING_ALGO_STEP) && defined(CONFIG_POWER_SUPPLY_BATTID) ps_batt_chrg_prof.chrg_prof_type = STEP_MOD_CHRG_PROF; #endif #else if (!em_config_get_charge_profile(&batt_chg_profile)) ps_batt_chrg_prof.chrg_prof_type = CHRG_PROF_NONE; else ps_batt_chrg_prof.chrg_prof_type = PSE_MOD_CHRG_PROF; ps_batt_chrg_prof.batt_prof = &batt_chg_profile; #endif battery_prop_changed(POWER_SUPPLY_BATTERY_INSERTED, &ps_batt_chrg_prof); return &ps_batt_chrg_prof; }
/* FIXME: need to have a time stamp based implementation to * report battery health */ if (pbat_health < 0 && bqbat_health < 0) return pbat_health; if (pbat_health > 0 && pbat_health != POWER_SUPPLY_HEALTH_GOOD) return pbat_health; else return bqbat_health; } #define DEFAULT_VMIN 3400000 /* 3400mV */ static int mrfl_get_vsys_min(void) { struct ps_batt_chg_prof batt_profile; int ret; ret = get_batt_prop(&batt_profile); if (!ret) return ((struct ps_pse_mod_prof *)batt_profile.batt_prof) ->low_batt_mV * 1000; return DEFAULT_VMIN; } #define DEFAULT_VMAX_LIM 4200000 /* 4200mV */ static int mrfl_get_volt_max(void) { struct ps_batt_chg_prof batt_profile; int ret; ret = get_batt_prop(&batt_profile); if (!ret) return ((struct ps_pse_mod_prof *)batt_profile.batt_prof) ->voltage_max * 1000; return DEFAULT_VMAX_LIM; }
/* FIXME: need to have a time stamp based implementation to * report battery health */ if (pbat_health < 0 && bqbat_health < 0) return pbat_health; if (pbat_health > 0 && pbat_health != POWER_SUPPLY_HEALTH_GOOD) return pbat_health; else return bqbat_health; } #define DEFAULT_VMIN 3400000 /* 3400mV */ static int mrfl_get_vsys_min(void) { struct ps_batt_chg_prof batt_profile; int ret; ret = get_batt_prop(&batt_profile); if (!ret) return ((struct ps_pse_mod_prof *)batt_profile.batt_prof) ->low_batt_mV * 1000; return DEFAULT_VMIN; }
static int ctp_get_vsys_min(void) { struct ps_batt_chg_prof batt_profile; int ret; ret = get_batt_prop(&batt_profile); if (!ret) return ((struct ps_pse_mod_prof *)batt_profile.batt_prof) ->low_batt_mV * 1000; return BATT_VMIN_THRESHOLD_DEF * 1000; }