Lines Matching defs:pwm
29 #include <linux/pwm.h>
55 static int sunplus_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
62 if (state->polarity != pwm->state.polarity)
66 /* disable pwm channel output */
68 mode0 &= ~SP7021_PWM_MODE0_PWMEN(pwm->hwpwm);
70 /* disable pwm channel clk source */
72 mode1 &= ~SP7021_PWM_MODE1_CNT_EN(pwm->hwpwm);
100 writel(dd_freq, priv->base + SP7021_PWM_FREQ(pwm->hwpwm));
102 /* cal and set pwm duty */
104 mode0 |= SP7021_PWM_MODE0_PWMEN(pwm->hwpwm);
106 mode1 |= SP7021_PWM_MODE1_CNT_EN(pwm->hwpwm);
109 mode0 |= SP7021_PWM_MODE0_BYPASS(pwm->hwpwm);
110 duty = SP7021_PWM_DUTY_DD_SEL(pwm->hwpwm) | SP7021_PWM_DUTY_MAX;
112 mode0 &= ~SP7021_PWM_MODE0_BYPASS(pwm->hwpwm);
118 duty = SP7021_PWM_DUTY_DD_SEL(pwm->hwpwm) | duty;
120 writel(duty, priv->base + SP7021_PWM_DUTY(pwm->hwpwm));
127 static int sunplus_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
136 if (mode0 & BIT(pwm->hwpwm)) {
138 dd_freq = readl(priv->base + SP7021_PWM_FREQ(pwm->hwpwm));
139 duty = readl(priv->base + SP7021_PWM_DUTY(pwm->hwpwm));
193 "get pwm clock failed\n");
217 { .compatible = "sunplus,sp7021-pwm", },
225 .name = "sunplus-pwm",