Lines Matching defs:pwm
21 #include <linux/pwm.h>
111 struct pwm_device *pwm,
130 if ((val & BIT_CH(PWM_BYPASS, pwm->hwpwm)) &&
139 if ((PWM_REG_PRESCAL(val, pwm->hwpwm) == PWM_PRESCAL_MASK) &&
143 prescaler = prescaler_table[PWM_REG_PRESCAL(val, pwm->hwpwm)];
148 if (val & BIT_CH(PWM_ACT_STATE, pwm->hwpwm))
153 if ((val & BIT_CH(PWM_CLK_GATING | PWM_EN, pwm->hwpwm)) ==
154 BIT_CH(PWM_CLK_GATING | PWM_EN, pwm->hwpwm))
159 val = sun4i_pwm_readl(sun4i_pwm, PWM_CH_PRD(pwm->hwpwm));
233 static int sun4i_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
243 pwm_get_state(pwm, &cstate);
267 ctrl |= BIT_CH(PWM_BYPASS, pwm->hwpwm);
274 ctrl &= ~BIT_CH(PWM_BYPASS, pwm->hwpwm);
277 if (PWM_REG_PRESCAL(ctrl, pwm->hwpwm) != prescaler) {
279 ctrl &= ~BIT_CH(PWM_CLK_GATING, pwm->hwpwm);
282 ctrl &= ~BIT_CH(PWM_PRESCAL_MASK, pwm->hwpwm);
283 ctrl |= BIT_CH(prescaler, pwm->hwpwm);
287 sun4i_pwm_writel(sun4i_pwm, val, PWM_CH_PRD(pwm->hwpwm));
290 ctrl &= ~BIT_CH(PWM_ACT_STATE, pwm->hwpwm);
292 ctrl |= BIT_CH(PWM_ACT_STATE, pwm->hwpwm);
294 ctrl |= BIT_CH(PWM_CLK_GATING, pwm->hwpwm);
297 ctrl |= BIT_CH(PWM_EN, pwm->hwpwm);
315 ctrl &= ~BIT_CH(PWM_CLK_GATING, pwm->hwpwm);
316 ctrl &= ~BIT_CH(PWM_EN, pwm->hwpwm);
360 .compatible = "allwinner,sun4i-a10-pwm",
363 .compatible = "allwinner,sun5i-a10s-pwm",
366 .compatible = "allwinner,sun5i-a13-pwm",
369 .compatible = "allwinner,sun7i-a20-pwm",
372 .compatible = "allwinner,sun8i-h3-pwm",
375 .compatible = "allwinner,sun50i-a64-pwm",
378 .compatible = "allwinner,sun50i-h6-pwm",
491 .name = "sun4i-pwm",
499 MODULE_ALIAS("platform:sun4i-pwm");