Loading drivers/power/qpnp-fg.c +11 −0 Original line number Diff line number Diff line Loading @@ -255,6 +255,7 @@ struct fg_chip { u8 thermal_coefficients[THERMAL_COEFF_N_BYTES]; bool use_thermal_coefficients; unsigned int batt_profile_len; unsigned int batt_max_voltage_uv; const char *batt_type; unsigned long last_sram_update_time; unsigned long last_temp_update_time; Loading Loading @@ -1212,6 +1213,7 @@ static enum power_supply_property fg_power_props[] = { POWER_SUPPLY_PROP_CURRENT_NOW, POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_VOLTAGE_OCV, POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, POWER_SUPPLY_PROP_TEMP, POWER_SUPPLY_PROP_COOL_TEMP, POWER_SUPPLY_PROP_WARM_TEMP, Loading Loading @@ -1243,6 +1245,9 @@ static int fg_power_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_VOLTAGE_OCV: val->intval = get_sram_prop_now(chip, FG_DATA_OCV); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: val->intval = chip->batt_max_voltage_uv; break; case POWER_SUPPLY_PROP_TEMP: val->intval = get_sram_prop_now(chip, FG_DATA_BATT_TEMP); break; Loading Loading @@ -1509,6 +1514,12 @@ wait: return -ENODATA; } rc = of_property_read_u32(profile_node, "qcom,max-voltage-uv", &chip->batt_max_voltage_uv); if (rc) pr_warn("couldn't find battery max voltage\n"); data = of_get_property(profile_node, "qcom,fg-profile-data", &len); if (!data) { pr_err("no battery profile loaded\n"); Loading drivers/power/qpnp-smbcharger.c +18 −0 Original line number Diff line number Diff line Loading @@ -563,6 +563,7 @@ static enum power_supply_property smbchg_battery_properties[] = { POWER_SUPPLY_PROP_FLASH_CURRENT_MAX, POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, POWER_SUPPLY_PROP_VOLTAGE_MAX, POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, POWER_SUPPLY_PROP_CURRENT_NOW, POWER_SUPPLY_PROP_TEMP, POWER_SUPPLY_PROP_VOLTAGE_NOW, Loading Loading @@ -774,6 +775,20 @@ static int get_prop_batt_voltage_now(struct smbchg_chip *chip) return uv; } #define DEFAULT_BATT_VOLTAGE_MAX_DESIGN 4200000 static int get_prop_batt_voltage_max_design(struct smbchg_chip *chip) { int uv, rc; rc = get_property_from_fg(chip, POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, &uv); if (rc) { pr_smb(PR_STATUS, "Couldn't get voltage rc = %d\n", rc); uv = DEFAULT_BATT_VOLTAGE_MAX_DESIGN; } return uv; } static int get_prop_batt_health(struct smbchg_chip *chip) { if (chip->batt_hot) Loading Loading @@ -1930,6 +1945,9 @@ static int smbchg_battery_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_TEMP: val->intval = get_prop_batt_temp(chip); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: val->intval = get_prop_batt_voltage_max_design(chip); break; default: return -EINVAL; } Loading Loading
drivers/power/qpnp-fg.c +11 −0 Original line number Diff line number Diff line Loading @@ -255,6 +255,7 @@ struct fg_chip { u8 thermal_coefficients[THERMAL_COEFF_N_BYTES]; bool use_thermal_coefficients; unsigned int batt_profile_len; unsigned int batt_max_voltage_uv; const char *batt_type; unsigned long last_sram_update_time; unsigned long last_temp_update_time; Loading Loading @@ -1212,6 +1213,7 @@ static enum power_supply_property fg_power_props[] = { POWER_SUPPLY_PROP_CURRENT_NOW, POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_VOLTAGE_OCV, POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, POWER_SUPPLY_PROP_TEMP, POWER_SUPPLY_PROP_COOL_TEMP, POWER_SUPPLY_PROP_WARM_TEMP, Loading Loading @@ -1243,6 +1245,9 @@ static int fg_power_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_VOLTAGE_OCV: val->intval = get_sram_prop_now(chip, FG_DATA_OCV); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: val->intval = chip->batt_max_voltage_uv; break; case POWER_SUPPLY_PROP_TEMP: val->intval = get_sram_prop_now(chip, FG_DATA_BATT_TEMP); break; Loading Loading @@ -1509,6 +1514,12 @@ wait: return -ENODATA; } rc = of_property_read_u32(profile_node, "qcom,max-voltage-uv", &chip->batt_max_voltage_uv); if (rc) pr_warn("couldn't find battery max voltage\n"); data = of_get_property(profile_node, "qcom,fg-profile-data", &len); if (!data) { pr_err("no battery profile loaded\n"); Loading
drivers/power/qpnp-smbcharger.c +18 −0 Original line number Diff line number Diff line Loading @@ -563,6 +563,7 @@ static enum power_supply_property smbchg_battery_properties[] = { POWER_SUPPLY_PROP_FLASH_CURRENT_MAX, POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, POWER_SUPPLY_PROP_VOLTAGE_MAX, POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, POWER_SUPPLY_PROP_CURRENT_NOW, POWER_SUPPLY_PROP_TEMP, POWER_SUPPLY_PROP_VOLTAGE_NOW, Loading Loading @@ -774,6 +775,20 @@ static int get_prop_batt_voltage_now(struct smbchg_chip *chip) return uv; } #define DEFAULT_BATT_VOLTAGE_MAX_DESIGN 4200000 static int get_prop_batt_voltage_max_design(struct smbchg_chip *chip) { int uv, rc; rc = get_property_from_fg(chip, POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, &uv); if (rc) { pr_smb(PR_STATUS, "Couldn't get voltage rc = %d\n", rc); uv = DEFAULT_BATT_VOLTAGE_MAX_DESIGN; } return uv; } static int get_prop_batt_health(struct smbchg_chip *chip) { if (chip->batt_hot) Loading Loading @@ -1930,6 +1945,9 @@ static int smbchg_battery_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_TEMP: val->intval = get_prop_batt_temp(chip); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: val->intval = get_prop_batt_voltage_max_design(chip); break; default: return -EINVAL; } Loading