Lines Matching defs:pwm
12 #include <linux/pwm.h>
71 static int iproc_pwmc_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
80 if (value & BIT(IPROC_PWM_CTRL_EN_SHIFT(pwm->hwpwm)))
85 if (value & BIT(IPROC_PWM_CTRL_POLARITY_SHIFT(pwm->hwpwm)))
98 prescale = value >> IPROC_PWM_PRESCALE_SHIFT(pwm->hwpwm);
103 value = readl(ip->base + IPROC_PWM_PERIOD_OFFSET(pwm->hwpwm));
107 value = readl(ip->base + IPROC_PWM_DUTY_CYCLE_OFFSET(pwm->hwpwm));
114 static int iproc_pwmc_apply(struct pwm_chip *chip, struct pwm_device *pwm,
155 iproc_pwmc_disable(ip, pwm->hwpwm);
159 value &= ~IPROC_PWM_PRESCALE_MASK(pwm->hwpwm);
160 value |= prescale << IPROC_PWM_PRESCALE_SHIFT(pwm->hwpwm);
164 writel(period, ip->base + IPROC_PWM_PERIOD_OFFSET(pwm->hwpwm));
165 writel(duty, ip->base + IPROC_PWM_DUTY_CYCLE_OFFSET(pwm->hwpwm));
171 value |= 1 << IPROC_PWM_CTRL_POLARITY_SHIFT(pwm->hwpwm);
173 value &= ~(1 << IPROC_PWM_CTRL_POLARITY_SHIFT(pwm->hwpwm));
178 iproc_pwmc_enable(ip, pwm->hwpwm);
252 { .compatible = "brcm,iproc-pwm" },
259 .name = "bcm-iproc-pwm",