Lines Matching refs:pwm

18 #include <linux/pwm.h>
80 struct pwm_device *pwm)
93 ret = clk_prepare_enable(pc->clk_pwms[pwm->hwpwm]);
108 struct pwm_device *pwm)
112 clk_disable_unprepare(pc->clk_pwms[pwm->hwpwm]);
124 static void pwm_mediatek_enable(struct pwm_chip *chip, struct pwm_device *pwm)
130 value |= BIT(pwm->hwpwm);
134 static void pwm_mediatek_disable(struct pwm_chip *chip, struct pwm_device *pwm)
140 value &= ~BIT(pwm->hwpwm);
144 static int pwm_mediatek_config(struct pwm_chip *chip, struct pwm_device *pwm,
154 ret = pwm_mediatek_clk_enable(chip, pwm);
158 clk_rate = clk_get_rate(pc->clk_pwms[pwm->hwpwm]);
189 if (pc->soc->pwm45_fixup && pwm->hwpwm > 2) {
200 pwm_mediatek_writel(pc, pwm->hwpwm, PWMCON, BIT(15) | clkdiv);
201 pwm_mediatek_writel(pc, pwm->hwpwm, reg_width, cnt_period - 1);
204 pwm_mediatek_writel(pc, pwm->hwpwm, reg_thres, cnt_duty - 1);
205 pwm_mediatek_enable(chip, pwm);
207 pwm_mediatek_disable(chip, pwm);
211 pwm_mediatek_clk_disable(chip, pwm);
216 static int pwm_mediatek_apply(struct pwm_chip *chip, struct pwm_device *pwm,
225 if (pwm->state.enabled) {
226 pwm_mediatek_disable(chip, pwm);
227 pwm_mediatek_clk_disable(chip, pwm);
233 err = pwm_mediatek_config(chip, pwm, state->duty_cycle, state->period);
237 if (!pwm->state.enabled)
238 err = pwm_mediatek_clk_enable(chip, pwm);
286 snprintf(name, sizeof(name), "pwm%d", i + 1);
389 { .compatible = "mediatek,mt2712-pwm", .data = &mt2712_pwm_data },
390 { .compatible = "mediatek,mt6795-pwm", .data = &mt6795_pwm_data },
391 { .compatible = "mediatek,mt6991-pwm", .data = &mt6991_pwm_data },
392 { .compatible = "mediatek,mt7622-pwm", .data = &mt7622_pwm_data },
393 { .compatible = "mediatek,mt7623-pwm", .data = &mt7623_pwm_data },
394 { .compatible = "mediatek,mt7628-pwm", .data = &mt7628_pwm_data },
395 { .compatible = "mediatek,mt7629-pwm", .data = &mt7629_pwm_data },
396 { .compatible = "mediatek,mt7981-pwm", .data = &mt7981_pwm_data },
397 { .compatible = "mediatek,mt7986-pwm", .data = &mt7986_pwm_data },
398 { .compatible = "mediatek,mt7988-pwm", .data = &mt7988_pwm_data },
399 { .compatible = "mediatek,mt8183-pwm", .data = &mt8183_pwm_data },
400 { .compatible = "mediatek,mt8365-pwm", .data = &mt8365_pwm_data },
401 { .compatible = "mediatek,mt8516-pwm", .data = &mt8516_pwm_data },
408 .name = "pwm-mediatek",