Lines Matching defs:pwm
42 #include <linux/pwm.h>
71 static void mchp_core_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm,
79 * 0-7 and the upper reg 8-15. Check if the pwm is in the upper reg
82 reg_offset = MCHPCOREPWM_EN(pwm->hwpwm >> 3);
83 shift = pwm->hwpwm & 7;
90 mchp_core_pwm->channel_enabled &= ~BIT(pwm->hwpwm);
91 mchp_core_pwm->channel_enabled |= enable << pwm->hwpwm;
98 if (mchp_core_pwm->sync_update_mask & (1 << pwm->hwpwm))
151 static void mchp_core_pwm_apply_duty(struct pwm_chip *chip, struct pwm_device *pwm,
181 writel_relaxed(posedge, mchp_core_pwm->base + MCHPCOREPWM_POSEDGE(pwm->hwpwm));
182 writel_relaxed(negedge, mchp_core_pwm->base + MCHPCOREPWM_NEGEDGE(pwm->hwpwm));
274 static int mchp_core_pwm_apply_locked(struct pwm_chip *chip, struct pwm_device *pwm,
285 mchp_core_pwm_enable(chip, pwm, false, pwm->state.period);
311 period_locked = mchp_core_pwm->channel_enabled & ~(1 << pwm->hwpwm);
353 mchp_core_pwm_apply_duty(chip, pwm, state, duty_steps, period_steps);
355 mchp_core_pwm_enable(chip, pwm, true, pwm->state.period);
360 static int mchp_core_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
368 mchp_core_pwm_wait_for_sync_update(mchp_core_pwm, pwm->hwpwm);
370 ret = mchp_core_pwm_apply_locked(chip, pwm, state);
377 static int mchp_core_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
387 mchp_core_pwm_wait_for_sync_update(mchp_core_pwm, pwm->hwpwm);
389 if (mchp_core_pwm->channel_enabled & (1 << pwm->hwpwm))
416 posedge = readb_relaxed(mchp_core_pwm->base + MCHPCOREPWM_POSEDGE(pwm->hwpwm));
417 negedge = readb_relaxed(mchp_core_pwm->base + MCHPCOREPWM_NEGEDGE(pwm->hwpwm));
498 .name = "mchp-core-pwm",