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

Commit e5020a4a authored by Anirudh Ghayal's avatar Anirudh Ghayal Committed by Subbaraman Narayanamurthy
Browse files

pwm: pwm-qti-lpg: Fix the order of configuring PWM value



The hardware expects the PWM MSB to be written before
LSB to avoid glitches in the output. Fix this.

Change-Id: Id7f794beed5c32f0e7578e8aa070dd7f5921a443
Signed-off-by: default avatarAnirudh Ghayal <aghayal@codeaurora.org>
parent 854a936b
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -333,19 +333,19 @@ static int qpnp_lpg_set_pwm_config(struct qpnp_lpg_channel *lpg)
	if (lpg->src_sel == LUT_PATTERN)
		return 0;

	val = lpg->pwm_config.pwm_value & LPG_PWM_VALUE_LSB_MASK;
	rc = qpnp_lpg_write(lpg, REG_LPG_PWM_VALUE_LSB, val);
	val = lpg->pwm_config.pwm_value >> 8;
	mask = LPG_PWM_VALUE_MSB_MASK;
	rc = qpnp_lpg_masked_write(lpg, REG_LPG_PWM_VALUE_MSB, mask, val);
	if (rc < 0) {
		dev_err(lpg->chip->dev, "Write LPG_PWM_VALUE_LSB failed, rc=%d\n",
		dev_err(lpg->chip->dev, "Write LPG_PWM_VALUE_MSB failed, rc=%d\n",
							rc);
		return rc;
	}

	val = lpg->pwm_config.pwm_value >> 8;
	mask = LPG_PWM_VALUE_MSB_MASK;
	rc = qpnp_lpg_masked_write(lpg, REG_LPG_PWM_VALUE_MSB, mask, val);
	val = lpg->pwm_config.pwm_value & LPG_PWM_VALUE_LSB_MASK;
	rc = qpnp_lpg_write(lpg, REG_LPG_PWM_VALUE_LSB, val);
	if (rc < 0) {
		dev_err(lpg->chip->dev, "Write LPG_PWM_VALUE_MSB failed, rc=%d\n",
		dev_err(lpg->chip->dev, "Write LPG_PWM_VALUE_LSB failed, rc=%d\n",
							rc);
		return rc;
	}