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

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

Merge "power: smb5: Disable SMB thermal regulation"

parents df9c344a 2baef134
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -611,7 +611,7 @@ static int smb5_usb_get_prop(struct power_supply *psy,
		break;
	case POWER_SUPPLY_PROP_CONNECTOR_HEALTH:
		if (chg->connector_health == -EINVAL)
			rc = smblib_get_prop_connector_health(chg, val);
			val->intval = smblib_get_prop_connector_health(chg);
		else
			val->intval = chg->connector_health;
		break;
@@ -1613,6 +1613,15 @@ static int smb5_init_hw(struct smb5 *chip)
		return rc;
	}

	/* Disable SMB Temperature ADC INT */
	rc = smblib_masked_write(chg, MISC_THERMREG_SRC_CFG_REG,
					 THERMREG_SMB_ADC_SRC_EN_BIT, 0);
	if (rc < 0) {
		dev_err(chg->dev, "Couldn't configure SMB thermal regulation  rc=%d\n",
				rc);
		return rc;
	}

	/* Use SW based VBUS control, disable HW autonomous mode */
	rc = smblib_masked_write(chg, USBIN_OPTIONS_1_CFG_REG,
		HVDCP_AUTH_ALG_EN_CFG_BIT | HVDCP_AUTONOMOUS_MODE_EN_CFG_BIT,
+11 −21
Original line number Diff line number Diff line
@@ -2324,8 +2324,7 @@ int smblib_get_prop_die_health(struct smb_charger *chg,
	return 0;
}

int smblib_get_prop_connector_health(struct smb_charger *chg,
						union power_supply_propval *val)
int smblib_get_prop_connector_health(struct smb_charger *chg)
{
	int rc;
	u8 stat;
@@ -2334,28 +2333,19 @@ int smblib_get_prop_connector_health(struct smb_charger *chg,
	if (rc < 0) {
		smblib_err(chg, "Couldn't read CONNECTOR_TEMP_STATUS_REG, rc=%d\n",
									rc);
		return rc;
		return POWER_SUPPLY_HEALTH_UNKNOWN;
	}

	/* Thermal status bits are mutually exclusive */
	switch (stat) {
	case CONNECTOR_TEMP_LB_BIT:
		val->intval = POWER_SUPPLY_HEALTH_COOL;
		break;
	case CONNECTOR_TEMP_UB_BIT:
		val->intval = POWER_SUPPLY_HEALTH_WARM;
		break;
	case CONNECTOR_TEMP_RST_BIT:
		val->intval = POWER_SUPPLY_HEALTH_HOT;
		break;
	case CONNECTOR_TEMP_SHDN_BIT:
		val->intval = POWER_SUPPLY_HEALTH_OVERHEAT;
		break;
	default:
		val->intval = POWER_SUPPLY_HEALTH_UNKNOWN;
	}
	if (stat & CONNECTOR_TEMP_RST_BIT)
		return POWER_SUPPLY_HEALTH_OVERHEAT;

	return 0;
	if (stat & CONNECTOR_TEMP_UB_BIT)
		return POWER_SUPPLY_HEALTH_HOT;

	if (stat & CONNECTOR_TEMP_LB_BIT)
		return POWER_SUPPLY_HEALTH_WARM;

	return POWER_SUPPLY_HEALTH_COOL;
}

#define SDP_CURRENT_UA			500000
+1 −2
Original line number Diff line number Diff line
@@ -517,8 +517,7 @@ int smblib_get_prop_charger_temp(struct smb_charger *chg,
				union power_supply_propval *val);
int smblib_get_prop_die_health(struct smb_charger *chg,
			       union power_supply_propval *val);
int smblib_get_prop_connector_health(struct smb_charger *chg,
			       union power_supply_propval *val);
int smblib_get_prop_connector_health(struct smb_charger *chg);
int smblib_set_prop_pd_current_max(struct smb_charger *chg,
				const union power_supply_propval *val);
int smblib_set_prop_sdp_current_max(struct smb_charger *chg,
+3 −0
Original line number Diff line number Diff line
@@ -387,6 +387,9 @@ enum {
#define AICL_RERUN_TIME_CFG_REG			(MISC_BASE + 0x61)
#define AICL_RERUN_TIME_12S_VAL			0x01

#define MISC_THERMREG_SRC_CFG_REG		(MISC_BASE + 0x70)
#define THERMREG_SMB_ADC_SRC_EN_BIT		BIT(5)

#define MISC_SMB_CFG_REG			(MISC_BASE + 0x90)
#define SMB_EN_SEL_BIT				BIT(4)
#define CP_EN_POLARITY_CFG_BIT			BIT(3)