Lines Matching defs:pwm
13 #include <linux/pwm.h>
45 * enable clock and pwm clock.
69 static int sprd_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
74 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm];
85 dev_err(spc->dev, "failed to enable pwm%u clocks\n",
86 pwm->hwpwm);
90 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_ENABLE);
104 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_PRESCALE);
109 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_DUTY);
122 static int sprd_pwm_config(struct sprd_pwm_chip *spc, struct pwm_device *pwm,
125 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm];
155 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_PRESCALE, prescale);
156 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_MOD, SPRD_PWM_MOD_MAX);
157 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_DUTY, duty);
162 static int sprd_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
167 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm];
168 struct pwm_state *cstate = &pwm->state;
184 "failed to enable pwm%u clocks\n",
185 pwm->hwpwm);
190 ret = sprd_pwm_config(spc, pwm, state->duty_cycle,
195 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_ENABLE, 1);
202 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_ENABLE, 0);
292 { .compatible = "sprd,ums512-pwm", },
299 .name = "sprd-pwm",