Loading drivers/power/supply/qcom/qpnp-smb5.c +12 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,7 @@ module_param_named( ); #define PMI632_MAX_ICL_UA 3000000 #define PM6150_MAX_FCC_UA 3000000 static int smb5_chg_config_init(struct smb5 *chip) { struct smb_charger *chg = &chip->chg; Loading Loading @@ -256,6 +257,7 @@ static int smb5_chg_config_init(struct smb5 *chip) chg->param = smb5_pm8150b_params; chg->name = "pm6150_charger"; chg->wa_flags |= SW_THERM_REGULATION_WA; chg->main_fcc_max = PM6150_MAX_FCC_UA; break; case PMI632_SUBTYPE: chip->chg.smb_version = PMI632_SUBTYPE; Loading Loading @@ -885,6 +887,7 @@ static enum power_supply_property smb5_usb_main_props[] = { POWER_SUPPLY_PROP_FLASH_ACTIVE, POWER_SUPPLY_PROP_FLASH_TRIGGER, POWER_SUPPLY_PROP_TOGGLE_STAT, POWER_SUPPLY_PROP_MAIN_FCC_MAX, }; static int smb5_usb_main_get_prop(struct power_supply *psy, Loading Loading @@ -927,6 +930,9 @@ static int smb5_usb_main_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_TOGGLE_STAT: val->intval = 0; break; case POWER_SUPPLY_PROP_MAIN_FCC_MAX: val->intval = chg->main_fcc_max; break; default: pr_debug("get prop %d is not supported in usb-main\n", psp); rc = -EINVAL; Loading Loading @@ -964,6 +970,10 @@ static int smb5_usb_main_set_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_TOGGLE_STAT: rc = smblib_toggle_smb_en(chg, val->intval); break; case POWER_SUPPLY_PROP_MAIN_FCC_MAX: chg->main_fcc_max = val->intval; rerun_election(chg->fcc_votable); break; default: pr_err("set prop %d is not supported\n", psp); rc = -EINVAL; Loading @@ -980,6 +990,7 @@ static int smb5_usb_main_prop_is_writeable(struct power_supply *psy, switch (psp) { case POWER_SUPPLY_PROP_TOGGLE_STAT: case POWER_SUPPLY_PROP_MAIN_FCC_MAX: rc = 1; break; default: Loading Loading @@ -2642,6 +2653,7 @@ static int smb5_probe(struct platform_device *pdev) chg->die_health = -EINVAL; chg->connector_health = -EINVAL; chg->otg_present = false; chg->main_fcc_max = -EINVAL; chg->regmap = dev_get_regmap(chg->dev->parent, NULL); if (!chg->regmap) { Loading drivers/power/supply/qcom/smb5-lib.h +1 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,7 @@ struct smb_charger { int skin_temp; int connector_temp; int thermal_status; int main_fcc_max; /* workaround flag */ u32 wa_flags; Loading Loading
drivers/power/supply/qcom/qpnp-smb5.c +12 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,7 @@ module_param_named( ); #define PMI632_MAX_ICL_UA 3000000 #define PM6150_MAX_FCC_UA 3000000 static int smb5_chg_config_init(struct smb5 *chip) { struct smb_charger *chg = &chip->chg; Loading Loading @@ -256,6 +257,7 @@ static int smb5_chg_config_init(struct smb5 *chip) chg->param = smb5_pm8150b_params; chg->name = "pm6150_charger"; chg->wa_flags |= SW_THERM_REGULATION_WA; chg->main_fcc_max = PM6150_MAX_FCC_UA; break; case PMI632_SUBTYPE: chip->chg.smb_version = PMI632_SUBTYPE; Loading Loading @@ -885,6 +887,7 @@ static enum power_supply_property smb5_usb_main_props[] = { POWER_SUPPLY_PROP_FLASH_ACTIVE, POWER_SUPPLY_PROP_FLASH_TRIGGER, POWER_SUPPLY_PROP_TOGGLE_STAT, POWER_SUPPLY_PROP_MAIN_FCC_MAX, }; static int smb5_usb_main_get_prop(struct power_supply *psy, Loading Loading @@ -927,6 +930,9 @@ static int smb5_usb_main_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_TOGGLE_STAT: val->intval = 0; break; case POWER_SUPPLY_PROP_MAIN_FCC_MAX: val->intval = chg->main_fcc_max; break; default: pr_debug("get prop %d is not supported in usb-main\n", psp); rc = -EINVAL; Loading Loading @@ -964,6 +970,10 @@ static int smb5_usb_main_set_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_TOGGLE_STAT: rc = smblib_toggle_smb_en(chg, val->intval); break; case POWER_SUPPLY_PROP_MAIN_FCC_MAX: chg->main_fcc_max = val->intval; rerun_election(chg->fcc_votable); break; default: pr_err("set prop %d is not supported\n", psp); rc = -EINVAL; Loading @@ -980,6 +990,7 @@ static int smb5_usb_main_prop_is_writeable(struct power_supply *psy, switch (psp) { case POWER_SUPPLY_PROP_TOGGLE_STAT: case POWER_SUPPLY_PROP_MAIN_FCC_MAX: rc = 1; break; default: Loading Loading @@ -2642,6 +2653,7 @@ static int smb5_probe(struct platform_device *pdev) chg->die_health = -EINVAL; chg->connector_health = -EINVAL; chg->otg_present = false; chg->main_fcc_max = -EINVAL; chg->regmap = dev_get_regmap(chg->dev->parent, NULL); if (!chg->regmap) { Loading
drivers/power/supply/qcom/smb5-lib.h +1 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,7 @@ struct smb_charger { int skin_temp; int connector_temp; int thermal_status; int main_fcc_max; /* workaround flag */ u32 wa_flags; Loading