Lines Matching defs:pwm

29 #include <linux/pwm.h>
238 static void atmel_pwm_update_cdty(struct pwm_chip *chip, struct pwm_device *pwm,
246 val = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR);
248 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, PWM_CMR, val);
251 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm,
253 atmel_pwm_set_pending(atmel_pwm, pwm->hwpwm);
257 struct pwm_device *pwm,
262 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm,
264 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm,
268 static void atmel_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm,
274 atmel_pwm_wait_nonpending(atmel_pwm, pwm->hwpwm);
276 atmel_pwm_writel(atmel_pwm, PWM_DIS, 1 << pwm->hwpwm);
284 while ((atmel_pwm_readl(atmel_pwm, PWM_SR) & (1 << pwm->hwpwm)) &&
292 static int atmel_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
303 if (pwm->state.enabled &&
304 pwm->state.polarity == state->polarity &&
305 pwm->state.period == state->period) {
306 u32 cmr = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR);
308 cprd = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm,
313 atmel_pwm_update_cdty(chip, pwm, cdty);
327 if (pwm->state.enabled) {
328 atmel_pwm_disable(chip, pwm, false);
338 val = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR);
344 atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, PWM_CMR, val);
345 atmel_pwm_set_cprd_cdty(chip, pwm, cprd, cdty);
346 atmel_pwm_writel(atmel_pwm, PWM_ENA, 1 << pwm->hwpwm);
347 } else if (pwm->state.enabled) {
348 atmel_pwm_disable(chip, pwm, true);
354 static int atmel_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
361 cmr = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR);
363 if (sr & (1 << pwm->hwpwm)) {
370 cprd = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm,
377 atmel_pwm_wait_nonpending(atmel_pwm, pwm->hwpwm);
379 cdty = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm,
444 .compatible = "atmel,at91sam9rl-pwm",
447 .compatible = "atmel,sama5d3-pwm",
450 .compatible = "atmel,sama5d2-pwm",
453 .compatible = "microchip,sam9x60-pwm",
481 "failed to enable clock for pwm %pe\n",
545 .name = "atmel-pwm",
552 MODULE_ALIAS("platform:atmel-pwm");