Lines Matching defs:pwm

3  * drivers/pwm/pwm-vt8500.c
15 #include <linux/pwm.h>
31 #define REG_CTRL(pwm) (((pwm) << 4) + 0x00)
32 #define REG_SCALAR(pwm) (((pwm) << 4) + 0x04)
33 #define REG_PERIOD(pwm) (((pwm) << 4) + 0x08)
34 #define REG_DUTY(pwm) (((pwm) << 4) + 0x0C)
72 static int vt8500_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
108 writel(prescale, vt8500->base + REG_SCALAR(pwm->hwpwm));
109 pwm_busy_wait(vt8500, pwm->hwpwm, STATUS_SCALAR_UPDATE);
111 writel(pv, vt8500->base + REG_PERIOD(pwm->hwpwm));
112 pwm_busy_wait(vt8500, pwm->hwpwm, STATUS_PERIOD_UPDATE);
114 writel(dc, vt8500->base + REG_DUTY(pwm->hwpwm));
115 pwm_busy_wait(vt8500, pwm->hwpwm, STATUS_DUTY_UPDATE);
117 val = readl(vt8500->base + REG_CTRL(pwm->hwpwm));
119 writel(val, vt8500->base + REG_CTRL(pwm->hwpwm));
120 pwm_busy_wait(vt8500, pwm->hwpwm, STATUS_CTRL_UPDATE);
126 static int vt8500_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
138 val = readl(vt8500->base + REG_CTRL(pwm->hwpwm));
140 writel(val, vt8500->base + REG_CTRL(pwm->hwpwm));
141 pwm_busy_wait(vt8500, pwm->hwpwm, STATUS_CTRL_UPDATE);
146 static void vt8500_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
151 val = readl(vt8500->base + REG_CTRL(pwm->hwpwm));
153 writel(val, vt8500->base + REG_CTRL(pwm->hwpwm));
154 pwm_busy_wait(vt8500, pwm->hwpwm, STATUS_CTRL_UPDATE);
160 struct pwm_device *pwm,
166 val = readl(vt8500->base + REG_CTRL(pwm->hwpwm));
173 writel(val, vt8500->base + REG_CTRL(pwm->hwpwm));
174 pwm_busy_wait(vt8500, pwm->hwpwm, STATUS_CTRL_UPDATE);
188 { .compatible = "via,vt8500-pwm", },
261 .name = "vt8500-pwm",