Beispiel #1
0
static int pm8058_pwm_start(struct pwm_device *pwm, int start, int ramp_start)
{
    int	rc;
    u8	reg;

    if (start) {
        reg = pwm->pwm_ctl[0] | PM8058_PWM_PWM_START;
        if (ramp_start)
            reg |= PM8058_PWM_RAMP_GEN_START;
        else
            reg &= ~PM8058_PWM_RAMP_GEN_START;
    } else {
        reg = pwm->pwm_ctl[0] & ~PM8058_PWM_PWM_START;
        reg &= ~PM8058_PWM_RAMP_GEN_START;
    }
#ifdef CONFIG_MSM_SSBI
    rc = pm8058_writeb(pwm_chip->dev->parent,  SSBI_REG_ADDR_LPG_CTL(0), reg);
#else
    rc = pm8058_write(pwm->chip->pm_chip, SSBI_REG_ADDR_LPG_CTL(0),
                      &reg, 1);
#endif
    if (rc)
        pr_err("%s: pm8058_write(): rc=%d (Enable PWM Ctl 0)\n",
               __func__, rc);
    else
        pwm->pwm_ctl[0] = reg;

    return rc;
}
static int pm8xxx_pwm_start(struct pwm_device *pwm, int start, int ramp_start)
{
	int	rc;
	u8	reg;

	if (start) {
		reg = pwm->pwm_lpg_ctl[0] | PM8XXX_PWM_PWM_START;
		if (ramp_start)
			reg |= PM8XXX_PWM_RAMP_GEN_START;
		else
			reg &= ~PM8XXX_PWM_RAMP_GEN_START;
	} else {
		reg = pwm->pwm_lpg_ctl[0] & ~PM8XXX_PWM_PWM_START;
		reg &= ~PM8XXX_PWM_RAMP_GEN_START;
	}

	rc = pm8xxx_writeb(pwm->chip->dev->parent, SSBI_REG_ADDR_LPG_CTL(0),
			   reg);
	if (rc)
		pr_err("pm8xxx_writeb(): rc=%d (Enable PWM Ctl 0)\n", rc);
	else
		pwm->pwm_lpg_ctl[0] = reg;
	return rc;
}
static int pm8058_pwm_start(struct pwm_device *pwm, int start, int ramp_start)
{
	int	rc;
	u8	reg;

	if (start) {
		reg = pwm->pwm_ctl[0] | PM8058_PWM_PWM_START;
		if (ramp_start)
			reg |= PM8058_PWM_RAMP_GEN_START;
		else
			reg &= ~PM8058_PWM_RAMP_GEN_START;
	} else {
		reg = pwm->pwm_ctl[0] & ~PM8058_PWM_PWM_START;
		reg &= ~PM8058_PWM_RAMP_GEN_START;
	}

	rc = pm8058_write(pwm->chip->pm_chip, SSBI_REG_ADDR_LPG_CTL(0),
			  &reg, 1);
	if (rc)
		pr_err("pm8058_write(): rc=%d (Enable PWM Ctl 0)\n", rc);
	else
		pwm->pwm_ctl[0] = reg;
	return rc;
}