Lines Matching defs:pwm
12 #include <linux/pwm.h>
44 * enable clock and pwm clock.
68 static void sprd_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
73 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm];
84 dev_err(spc->dev, "failed to enable pwm%u clocks\n",
85 pwm->hwpwm);
89 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_ENABLE);
103 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_PRESCALE);
108 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_DUTY);
119 static int sprd_pwm_config(struct sprd_pwm_chip *spc, struct pwm_device *pwm,
122 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm];
152 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_PRESCALE, prescale);
153 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_MOD, SPRD_PWM_MOD_MAX);
154 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_DUTY, duty);
159 static int sprd_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
164 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm];
165 struct pwm_state *cstate = &pwm->state;
178 "failed to enable pwm%u clocks\n",
179 pwm->hwpwm);
184 ret = sprd_pwm_config(spc, pwm, state->duty_cycle,
189 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_ENABLE, 1);
196 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_ENABLE, 0);
287 { .compatible = "sprd,ums512-pwm", },
294 .name = "sprd-pwm",