Lines Matching defs:pwm

21 #include <linux/pwm.h>
110 struct pwm_device *pwm,
129 if ((val & BIT_CH(PWM_BYPASS, pwm->hwpwm)) &&
138 if ((PWM_REG_PRESCAL(val, pwm->hwpwm) == PWM_PRESCAL_MASK) &&
142 prescaler = prescaler_table[PWM_REG_PRESCAL(val, pwm->hwpwm)];
147 if (val & BIT_CH(PWM_ACT_STATE, pwm->hwpwm))
152 if ((val & BIT_CH(PWM_CLK_GATING | PWM_EN, pwm->hwpwm)) ==
153 BIT_CH(PWM_CLK_GATING | PWM_EN, pwm->hwpwm))
158 val = sun4i_pwm_readl(sun4ichip, PWM_CH_PRD(pwm->hwpwm));
232 static int sun4i_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
242 pwm_get_state(pwm, &cstate);
266 ctrl |= BIT_CH(PWM_BYPASS, pwm->hwpwm);
273 ctrl &= ~BIT_CH(PWM_BYPASS, pwm->hwpwm);
276 if (PWM_REG_PRESCAL(ctrl, pwm->hwpwm) != prescaler) {
278 ctrl &= ~BIT_CH(PWM_CLK_GATING, pwm->hwpwm);
281 ctrl &= ~BIT_CH(PWM_PRESCAL_MASK, pwm->hwpwm);
282 ctrl |= BIT_CH(prescaler, pwm->hwpwm);
286 sun4i_pwm_writel(sun4ichip, val, PWM_CH_PRD(pwm->hwpwm));
289 ctrl &= ~BIT_CH(PWM_ACT_STATE, pwm->hwpwm);
291 ctrl |= BIT_CH(PWM_ACT_STATE, pwm->hwpwm);
293 ctrl |= BIT_CH(PWM_CLK_GATING, pwm->hwpwm);
296 ctrl |= BIT_CH(PWM_EN, pwm->hwpwm);
314 ctrl &= ~BIT_CH(PWM_CLK_GATING, pwm->hwpwm);
315 ctrl &= ~BIT_CH(PWM_EN, pwm->hwpwm);
358 .compatible = "allwinner,sun4i-a10-pwm",
361 .compatible = "allwinner,sun5i-a10s-pwm",
364 .compatible = "allwinner,sun5i-a13-pwm",
367 .compatible = "allwinner,sun7i-a20-pwm",
370 .compatible = "allwinner,sun8i-h3-pwm",
373 .compatible = "allwinner,sun50i-a64-pwm",
376 .compatible = "allwinner,sun50i-h6-pwm",
492 .name = "sun4i-pwm",
500 MODULE_ALIAS("platform:sun4i-pwm");