Loading drivers/power/supply/qcom/battery.c +6 −6 Original line number Diff line number Diff line Loading @@ -945,7 +945,7 @@ static void pl_taper_work(struct work_struct *work) } chip->charge_type = pval.intval; if (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) { if (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) { fcc_ua = get_client_vote(chip->fcc_votable, TAPER_STEPPER_VOTER); if (fcc_ua < 0) { Loading Loading @@ -1558,7 +1558,7 @@ static int pl_disable_vote_callback(struct votable *votable, if (rc < 0) { pr_err("Couldn't get batt charge type rc=%d\n", rc); } else { if (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER if (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE && !chip->taper_work_running) { pl_dbg(chip, PR_PARALLEL, "pl enabled in Taper scheduing work\n"); Loading Loading @@ -1761,7 +1761,7 @@ static void handle_main_charge_type(struct pl_data *chip) /* not fast/not taper state to disables parallel */ if ((pval.intval != POWER_SUPPLY_CHARGE_TYPE_FAST) && (pval.intval != QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER)) { && (pval.intval != POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE)) { vote(chip->pl_disable_votable, CHG_STATE_VOTER, true, 0); chip->charge_type = pval.intval; return; Loading @@ -1769,7 +1769,7 @@ static void handle_main_charge_type(struct pl_data *chip) /* handle taper charge entry */ if (chip->charge_type == POWER_SUPPLY_CHARGE_TYPE_FAST && (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER)) { && (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE)) { chip->charge_type = pval.intval; if (!chip->taper_work_running) { pl_dbg(chip, PR_PARALLEL, "taper entry scheduling work\n"); Loading @@ -1780,7 +1780,7 @@ static void handle_main_charge_type(struct pl_data *chip) } /* handle fast/taper charge entry */ if (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER if (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE || pval.intval == POWER_SUPPLY_CHARGE_TYPE_FAST) { /* * Undo parallel charging termination if entered taper in Loading Loading @@ -1895,7 +1895,7 @@ static void handle_parallel_in_taper(struct pl_data *chip) * if parallel is seen in taper mode ever, that is an anomaly and * we disable parallel charger */ if (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) { if (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) { vote(chip->pl_disable_votable, PL_TAPER_EARLY_BAD_VOTER, true, 0); return; Loading drivers/power/supply/qcom/fg-alg.c +3 −3 Original line number Diff line number Diff line Loading @@ -1213,7 +1213,7 @@ static int get_time_to_full_locked(struct ttf *ttf, int *val) pr_debug("TTF: i_cc2cv=%d\n", i_cc2cv); /* if we are already in CV state then we can skip estimating CC */ if (charge_type == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) if (charge_type == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) goto cv_estimate; /* estimated SOC at the CC to CV transition */ Loading Loading @@ -1343,14 +1343,14 @@ static int get_time_to_full_locked(struct ttf *ttf, int *val) cv_estimate: pr_debug("TTF: t_predicted_cc=%d\n", t_predicted); if (charge_type == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) if (charge_type == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) iterm = max(100, abs(iterm)); else iterm = max(100, abs(iterm) + ttf->iterm_delta); pr_debug("TTF: iterm=%d\n", iterm); if (charge_type == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) if (charge_type == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) tau = max(MILLI_UNIT, ibatt_avg * MILLI_UNIT / iterm); else tau = max(MILLI_UNIT, i_cc2cv * MILLI_UNIT / iterm); Loading drivers/power/supply/qcom/qpnp-smb5.c +3 −0 Original line number Diff line number Diff line Loading @@ -869,6 +869,7 @@ static int smb5_usb_get_prop(struct power_supply *psy, rc = smblib_get_prop_scope(chg, val); break; case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT: /* USB uses this to set SDP current */ val->intval = get_client_vote(chg->usb_icl_votable, USB_PSY_VOTER); break; Loading Loading @@ -1072,6 +1073,7 @@ static int smb5_dc_get_prop(struct power_supply *psy, switch (psp) { case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT: /* For DC, INPUT_CURRENT_LIMIT equates to INPUT_SUSPEND */ val->intval = get_effective_result(chg->dc_suspend_votable); break; case POWER_SUPPLY_PROP_PRESENT: Loading Loading @@ -1209,6 +1211,7 @@ static int smb5_batt_get_prop(struct power_supply *psy, rc = smblib_get_prop_batt_present(chg, pval); break; case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT: /* For battery, INPUT_CURRENT_LIMIT equates to INPUT_SUSPEND */ rc = smblib_get_prop_input_current_limit_usb(chg, pval); break; case POWER_SUPPLY_PROP_CHARGE_TYPE: Loading drivers/power/supply/qcom/smb5-iio.c +3 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,9 @@ int smb5_iio_get_prop(struct smb_charger *chg, int channel, int *val) case PSY_IIO_FCC_STEPPER_ENABLE: *val = chg->fcc_stepper_enable; break; case PSY_IIO_TYPEC_ACCESSORY_MODE: rc = smblib_get_usb_prop_typec_accessory_mode(chg, val); break; default: pr_err("get prop %d is not supported\n", channel); rc = -EINVAL; Loading drivers/power/supply/qcom/smb5-iio.h +1 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,7 @@ static const struct smb5_iio_prop_channels smb5_chans_pmic[] = { SMB5_CHAN_ACTIVITY("battery_recharge_soc", RECHARGE_SOC) SMB5_CHAN_ACTIVITY("battery_force_recharge", FORCE_RECHARGE) SMB5_CHAN_ACTIVITY("battery_fcc_stepper_enable", FCC_STEPPER_ENABLE) SMB5_CHAN_INDEX("usb_typec_accessory_mode", TYPEC_ACCESSORY_MODE) }; struct iio_channel **get_ext_channels(struct device *dev, Loading Loading
drivers/power/supply/qcom/battery.c +6 −6 Original line number Diff line number Diff line Loading @@ -945,7 +945,7 @@ static void pl_taper_work(struct work_struct *work) } chip->charge_type = pval.intval; if (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) { if (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) { fcc_ua = get_client_vote(chip->fcc_votable, TAPER_STEPPER_VOTER); if (fcc_ua < 0) { Loading Loading @@ -1558,7 +1558,7 @@ static int pl_disable_vote_callback(struct votable *votable, if (rc < 0) { pr_err("Couldn't get batt charge type rc=%d\n", rc); } else { if (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER if (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE && !chip->taper_work_running) { pl_dbg(chip, PR_PARALLEL, "pl enabled in Taper scheduing work\n"); Loading Loading @@ -1761,7 +1761,7 @@ static void handle_main_charge_type(struct pl_data *chip) /* not fast/not taper state to disables parallel */ if ((pval.intval != POWER_SUPPLY_CHARGE_TYPE_FAST) && (pval.intval != QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER)) { && (pval.intval != POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE)) { vote(chip->pl_disable_votable, CHG_STATE_VOTER, true, 0); chip->charge_type = pval.intval; return; Loading @@ -1769,7 +1769,7 @@ static void handle_main_charge_type(struct pl_data *chip) /* handle taper charge entry */ if (chip->charge_type == POWER_SUPPLY_CHARGE_TYPE_FAST && (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER)) { && (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE)) { chip->charge_type = pval.intval; if (!chip->taper_work_running) { pl_dbg(chip, PR_PARALLEL, "taper entry scheduling work\n"); Loading @@ -1780,7 +1780,7 @@ static void handle_main_charge_type(struct pl_data *chip) } /* handle fast/taper charge entry */ if (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER if (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE || pval.intval == POWER_SUPPLY_CHARGE_TYPE_FAST) { /* * Undo parallel charging termination if entered taper in Loading Loading @@ -1895,7 +1895,7 @@ static void handle_parallel_in_taper(struct pl_data *chip) * if parallel is seen in taper mode ever, that is an anomaly and * we disable parallel charger */ if (pval.intval == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) { if (pval.intval == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) { vote(chip->pl_disable_votable, PL_TAPER_EARLY_BAD_VOTER, true, 0); return; Loading
drivers/power/supply/qcom/fg-alg.c +3 −3 Original line number Diff line number Diff line Loading @@ -1213,7 +1213,7 @@ static int get_time_to_full_locked(struct ttf *ttf, int *val) pr_debug("TTF: i_cc2cv=%d\n", i_cc2cv); /* if we are already in CV state then we can skip estimating CC */ if (charge_type == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) if (charge_type == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) goto cv_estimate; /* estimated SOC at the CC to CV transition */ Loading Loading @@ -1343,14 +1343,14 @@ static int get_time_to_full_locked(struct ttf *ttf, int *val) cv_estimate: pr_debug("TTF: t_predicted_cc=%d\n", t_predicted); if (charge_type == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) if (charge_type == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) iterm = max(100, abs(iterm)); else iterm = max(100, abs(iterm) + ttf->iterm_delta); pr_debug("TTF: iterm=%d\n", iterm); if (charge_type == QTI_POWER_SUPPLY_CHARGE_TYPE_TAPER) if (charge_type == POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE) tau = max(MILLI_UNIT, ibatt_avg * MILLI_UNIT / iterm); else tau = max(MILLI_UNIT, i_cc2cv * MILLI_UNIT / iterm); Loading
drivers/power/supply/qcom/qpnp-smb5.c +3 −0 Original line number Diff line number Diff line Loading @@ -869,6 +869,7 @@ static int smb5_usb_get_prop(struct power_supply *psy, rc = smblib_get_prop_scope(chg, val); break; case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT: /* USB uses this to set SDP current */ val->intval = get_client_vote(chg->usb_icl_votable, USB_PSY_VOTER); break; Loading Loading @@ -1072,6 +1073,7 @@ static int smb5_dc_get_prop(struct power_supply *psy, switch (psp) { case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT: /* For DC, INPUT_CURRENT_LIMIT equates to INPUT_SUSPEND */ val->intval = get_effective_result(chg->dc_suspend_votable); break; case POWER_SUPPLY_PROP_PRESENT: Loading Loading @@ -1209,6 +1211,7 @@ static int smb5_batt_get_prop(struct power_supply *psy, rc = smblib_get_prop_batt_present(chg, pval); break; case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT: /* For battery, INPUT_CURRENT_LIMIT equates to INPUT_SUSPEND */ rc = smblib_get_prop_input_current_limit_usb(chg, pval); break; case POWER_SUPPLY_PROP_CHARGE_TYPE: Loading
drivers/power/supply/qcom/smb5-iio.c +3 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,9 @@ int smb5_iio_get_prop(struct smb_charger *chg, int channel, int *val) case PSY_IIO_FCC_STEPPER_ENABLE: *val = chg->fcc_stepper_enable; break; case PSY_IIO_TYPEC_ACCESSORY_MODE: rc = smblib_get_usb_prop_typec_accessory_mode(chg, val); break; default: pr_err("get prop %d is not supported\n", channel); rc = -EINVAL; Loading
drivers/power/supply/qcom/smb5-iio.h +1 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,7 @@ static const struct smb5_iio_prop_channels smb5_chans_pmic[] = { SMB5_CHAN_ACTIVITY("battery_recharge_soc", RECHARGE_SOC) SMB5_CHAN_ACTIVITY("battery_force_recharge", FORCE_RECHARGE) SMB5_CHAN_ACTIVITY("battery_fcc_stepper_enable", FCC_STEPPER_ENABLE) SMB5_CHAN_INDEX("usb_typec_accessory_mode", TYPEC_ACCESSORY_MODE) }; struct iio_channel **get_ext_channels(struct device *dev, Loading