Lines Matching defs:pwm
21 #include <linux/pwm.h>
47 * struct spear_pwm_chip - struct representing pwm chip
49 * @mmio_base: base address of pwm chip
50 * @clk: pointer to clk structure of pwm chip
51 * @chip: linux pwm chip representation
77 static int spear_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
128 spear_pwm_writel(pc, pwm->hwpwm, PWMCR,
130 spear_pwm_writel(pc, pwm->hwpwm, PWMDCR, dc);
131 spear_pwm_writel(pc, pwm->hwpwm, PWMPCR, pv);
137 static int spear_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
147 val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR);
149 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, val);
154 static void spear_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
159 val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR);
161 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, val);
166 static int spear_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
175 if (pwm->state.enabled)
176 spear_pwm_disable(chip, pwm);
180 err = spear_pwm_config(chip, pwm, state->duty_cycle, state->period);
184 if (!pwm->state.enabled)
185 return spear_pwm_enable(chip, pwm);
224 if (of_device_is_compatible(np, "st,spear1340-pwm")) {
261 { .compatible = "st,spear320-pwm" },
262 { .compatible = "st,spear1340-pwm" },
270 .name = "spear-pwm",
282 MODULE_ALIAS("platform:spear-pwm");