Lines Matching refs:pwm
19 #include <linux/pwm.h>
75 static int berlin_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
100 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_CONTROL);
105 berlin_pwm_writel(bpc, pwm->hwpwm, value, BERLIN_PWM_CONTROL);
107 berlin_pwm_writel(bpc, pwm->hwpwm, duty, BERLIN_PWM_DUTY);
108 berlin_pwm_writel(bpc, pwm->hwpwm, period, BERLIN_PWM_TCNT);
114 struct pwm_device *pwm,
120 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_CONTROL);
127 berlin_pwm_writel(bpc, pwm->hwpwm, value, BERLIN_PWM_CONTROL);
132 static int berlin_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
137 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_EN);
139 berlin_pwm_writel(bpc, pwm->hwpwm, value, BERLIN_PWM_EN);
145 struct pwm_device *pwm)
150 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_EN);
152 berlin_pwm_writel(bpc, pwm->hwpwm, value, BERLIN_PWM_EN);
155 static int berlin_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
159 bool enabled = pwm->state.enabled;
161 if (state->polarity != pwm->state.polarity) {
163 berlin_pwm_disable(chip, pwm);
167 err = berlin_pwm_set_polarity(chip, pwm, state->polarity);
174 berlin_pwm_disable(chip, pwm);
178 err = berlin_pwm_config(chip, pwm, state->duty_cycle, state->period);
183 return berlin_pwm_enable(chip, pwm);
193 { .compatible = "marvell,berlin-pwm" },
277 .name = "berlin-pwm",