Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91192c55 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "power: smb5: Add main charger max FCC configurability support"

parents 669d044b 70f01455
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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,
@@ -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;
@@ -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;
@@ -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:
@@ -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) {
+1 −0
Original line number Diff line number Diff line
@@ -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;