Lines Matching defs:pwm
22 #include <linux/pwm.h>
81 static void iproc_pwmc_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
90 if (value & BIT(IPROC_PWM_CTRL_EN_SHIFT(pwm->hwpwm)))
95 if (value & BIT(IPROC_PWM_CTRL_POLARITY_SHIFT(pwm->hwpwm)))
108 prescale = value >> IPROC_PWM_PRESCALE_SHIFT(pwm->hwpwm);
113 value = readl(ip->base + IPROC_PWM_PERIOD_OFFSET(pwm->hwpwm));
117 value = readl(ip->base + IPROC_PWM_DUTY_CYCLE_OFFSET(pwm->hwpwm));
122 static int iproc_pwmc_apply(struct pwm_chip *chip, struct pwm_device *pwm,
163 iproc_pwmc_disable(ip, pwm->hwpwm);
167 value &= ~IPROC_PWM_PRESCALE_MASK(pwm->hwpwm);
168 value |= prescale << IPROC_PWM_PRESCALE_SHIFT(pwm->hwpwm);
172 writel(period, ip->base + IPROC_PWM_PERIOD_OFFSET(pwm->hwpwm));
173 writel(duty, ip->base + IPROC_PWM_DUTY_CYCLE_OFFSET(pwm->hwpwm));
179 value |= 1 << IPROC_PWM_CTRL_POLARITY_SHIFT(pwm->hwpwm);
181 value &= ~(1 << IPROC_PWM_CTRL_POLARITY_SHIFT(pwm->hwpwm));
186 iproc_pwmc_enable(ip, pwm->hwpwm);
265 { .compatible = "brcm,iproc-pwm" },
272 .name = "bcm-iproc-pwm",