Lines Matching defs:pwm
19 #include <linux/pwm.h>
71 struct pwm_device *pwm)
84 ret = clk_prepare_enable(pc->clk_pwms[pwm->hwpwm]);
99 struct pwm_device *pwm)
103 clk_disable_unprepare(pc->clk_pwms[pwm->hwpwm]);
121 static int pwm_mediatek_config(struct pwm_chip *chip, struct pwm_device *pwm,
130 ret = pwm_mediatek_clk_enable(chip, pwm);
137 do_div(resolution, clk_get_rate(pc->clk_pwms[pwm->hwpwm]));
148 pwm_mediatek_clk_disable(chip, pwm);
153 if (pc->soc->pwm45_fixup && pwm->hwpwm > 2) {
163 pwm_mediatek_writel(pc, pwm->hwpwm, PWMCON, BIT(15) | clkdiv);
164 pwm_mediatek_writel(pc, pwm->hwpwm, reg_width, cnt_period);
165 pwm_mediatek_writel(pc, pwm->hwpwm, reg_thres, cnt_duty);
167 pwm_mediatek_clk_disable(chip, pwm);
172 static int pwm_mediatek_enable(struct pwm_chip *chip, struct pwm_device *pwm)
178 ret = pwm_mediatek_clk_enable(chip, pwm);
183 value |= BIT(pwm->hwpwm);
189 static void pwm_mediatek_disable(struct pwm_chip *chip, struct pwm_device *pwm)
195 value &= ~BIT(pwm->hwpwm);
198 pwm_mediatek_clk_disable(chip, pwm);
248 snprintf(name, sizeof(name), "pwm%d", i + 1);
312 { .compatible = "mediatek,mt2712-pwm", .data = &mt2712_pwm_data },
313 { .compatible = "mediatek,mt7622-pwm", .data = &mt7622_pwm_data },
314 { .compatible = "mediatek,mt7623-pwm", .data = &mt7623_pwm_data },
315 { .compatible = "mediatek,mt7628-pwm", .data = &mt7628_pwm_data },
316 { .compatible = "mediatek,mt7629-pwm", .data = &mt7629_pwm_data },
317 { .compatible = "mediatek,mt8516-pwm", .data = &mt8516_pwm_data },
324 .name = "pwm-mediatek",