Lines Matching defs:pwm

31 #include <linux/pwm.h>
170 static void atmel_pwm_update_cdty(struct pwm_chip *chip, struct pwm_device *pwm,
178 val = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR);
180 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, PWM_CMR, val);
183 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm,
188 struct pwm_device *pwm,
193 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm,
195 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm,
199 static void atmel_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm,
212 while (!(atmel_pwm->updated_pwms & (1 << pwm->hwpwm)) &&
219 atmel_pwm_writel(atmel_pwm, PWM_DIS, 1 << pwm->hwpwm);
227 while ((atmel_pwm_readl(atmel_pwm, PWM_SR) & (1 << pwm->hwpwm)) &&
235 static int atmel_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
244 pwm_get_state(pwm, &cstate);
250 cprd = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm,
253 atmel_pwm_update_cdty(chip, pwm, cdty);
268 atmel_pwm_disable(chip, pwm, false);
278 val = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR);
284 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, PWM_CMR, val);
285 atmel_pwm_set_cprd_cdty(chip, pwm, cprd, cdty);
288 atmel_pwm->updated_pwms &= ~(1 << pwm->hwpwm);
290 atmel_pwm_writel(atmel_pwm, PWM_ENA, 1 << pwm->hwpwm);
292 atmel_pwm_disable(chip, pwm, true);
298 static void atmel_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
305 cmr = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR);
307 if (sr & (1 << pwm->hwpwm)) {
314 cprd = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm,
320 cdty = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm,
384 .compatible = "atmel,at91sam9rl-pwm",
387 .compatible = "atmel,sama5d3-pwm",
390 .compatible = "atmel,sama5d2-pwm",
393 .compatible = "microchip,sam9x60-pwm",
464 .name = "atmel-pwm",
472 MODULE_ALIAS("platform:atmel-pwm");