Loading drivers/power/supply/qcom/qpnp-smb2.c +4 −0 Original line number Diff line number Diff line Loading @@ -1034,6 +1034,9 @@ static int smb2_batt_set_prop(struct power_supply *psy, struct smb_charger *chg = power_supply_get_drvdata(psy); switch (prop) { case POWER_SUPPLY_PROP_STATUS: rc = smblib_set_prop_batt_status(chg, val); break; case POWER_SUPPLY_PROP_INPUT_SUSPEND: rc = smblib_set_prop_input_suspend(chg, val); break; Loading Loading @@ -1111,6 +1114,7 @@ static int smb2_batt_prop_is_writeable(struct power_supply *psy, enum power_supply_property psp) { switch (psp) { case POWER_SUPPLY_PROP_STATUS: case POWER_SUPPLY_PROP_INPUT_SUSPEND: case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: case POWER_SUPPLY_PROP_CAPACITY: Loading drivers/power/supply/qcom/smb-lib.c +21 −0 Original line number Diff line number Diff line Loading @@ -1634,6 +1634,12 @@ int smblib_get_prop_batt_status(struct smb_charger *chg, if (val->intval != POWER_SUPPLY_STATUS_CHARGING) return 0; if (!usb_online && dc_online && chg->fake_batt_status == POWER_SUPPLY_STATUS_FULL) { val->intval = POWER_SUPPLY_STATUS_FULL; return 0; } rc = smblib_read(chg, BATTERY_CHARGER_STATUS_7_REG, &stat); if (rc < 0) { smblib_err(chg, "Couldn't read BATTERY_CHARGER_STATUS_2 rc=%d\n", Loading Loading @@ -1887,6 +1893,20 @@ int smblib_set_prop_batt_capacity(struct smb_charger *chg, return 0; } int smblib_set_prop_batt_status(struct smb_charger *chg, const union power_supply_propval *val) { /* Faking battery full */ if (val->intval == POWER_SUPPLY_STATUS_FULL) chg->fake_batt_status = val->intval; else chg->fake_batt_status = -EINVAL; power_supply_changed(chg->batt_psy); return 0; } int smblib_set_prop_system_temp_level(struct smb_charger *chg, const union power_supply_propval *val) { Loading Loading @@ -4719,6 +4739,7 @@ int smblib_init(struct smb_charger *chg) INIT_DELAYED_WORK(&chg->bb_removal_work, smblib_bb_removal_work); chg->fake_capacity = -EINVAL; chg->fake_input_current_limited = -EINVAL; chg->fake_batt_status = -EINVAL; switch (chg->mode) { case PARALLEL_MASTER: Loading drivers/power/supply/qcom/smb-lib.h +3 −0 Original line number Diff line number Diff line Loading @@ -307,6 +307,7 @@ struct smb_charger { int *thermal_mitigation; int dcp_icl_ua; int fake_capacity; int fake_batt_status; bool step_chg_enabled; bool sw_jeita_enabled; bool is_hdc; Loading Loading @@ -427,6 +428,8 @@ int smblib_set_prop_input_suspend(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_batt_capacity(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_batt_status(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_system_temp_level(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_input_current_limited(struct smb_charger *chg, Loading Loading
drivers/power/supply/qcom/qpnp-smb2.c +4 −0 Original line number Diff line number Diff line Loading @@ -1034,6 +1034,9 @@ static int smb2_batt_set_prop(struct power_supply *psy, struct smb_charger *chg = power_supply_get_drvdata(psy); switch (prop) { case POWER_SUPPLY_PROP_STATUS: rc = smblib_set_prop_batt_status(chg, val); break; case POWER_SUPPLY_PROP_INPUT_SUSPEND: rc = smblib_set_prop_input_suspend(chg, val); break; Loading Loading @@ -1111,6 +1114,7 @@ static int smb2_batt_prop_is_writeable(struct power_supply *psy, enum power_supply_property psp) { switch (psp) { case POWER_SUPPLY_PROP_STATUS: case POWER_SUPPLY_PROP_INPUT_SUSPEND: case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: case POWER_SUPPLY_PROP_CAPACITY: Loading
drivers/power/supply/qcom/smb-lib.c +21 −0 Original line number Diff line number Diff line Loading @@ -1634,6 +1634,12 @@ int smblib_get_prop_batt_status(struct smb_charger *chg, if (val->intval != POWER_SUPPLY_STATUS_CHARGING) return 0; if (!usb_online && dc_online && chg->fake_batt_status == POWER_SUPPLY_STATUS_FULL) { val->intval = POWER_SUPPLY_STATUS_FULL; return 0; } rc = smblib_read(chg, BATTERY_CHARGER_STATUS_7_REG, &stat); if (rc < 0) { smblib_err(chg, "Couldn't read BATTERY_CHARGER_STATUS_2 rc=%d\n", Loading Loading @@ -1887,6 +1893,20 @@ int smblib_set_prop_batt_capacity(struct smb_charger *chg, return 0; } int smblib_set_prop_batt_status(struct smb_charger *chg, const union power_supply_propval *val) { /* Faking battery full */ if (val->intval == POWER_SUPPLY_STATUS_FULL) chg->fake_batt_status = val->intval; else chg->fake_batt_status = -EINVAL; power_supply_changed(chg->batt_psy); return 0; } int smblib_set_prop_system_temp_level(struct smb_charger *chg, const union power_supply_propval *val) { Loading Loading @@ -4719,6 +4739,7 @@ int smblib_init(struct smb_charger *chg) INIT_DELAYED_WORK(&chg->bb_removal_work, smblib_bb_removal_work); chg->fake_capacity = -EINVAL; chg->fake_input_current_limited = -EINVAL; chg->fake_batt_status = -EINVAL; switch (chg->mode) { case PARALLEL_MASTER: Loading
drivers/power/supply/qcom/smb-lib.h +3 −0 Original line number Diff line number Diff line Loading @@ -307,6 +307,7 @@ struct smb_charger { int *thermal_mitigation; int dcp_icl_ua; int fake_capacity; int fake_batt_status; bool step_chg_enabled; bool sw_jeita_enabled; bool is_hdc; Loading Loading @@ -427,6 +428,8 @@ int smblib_set_prop_input_suspend(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_batt_capacity(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_batt_status(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_system_temp_level(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_input_current_limited(struct smb_charger *chg, Loading