Lines Matching full:period
48 struct fsl_pwm_periodcfg period; member
121 rate = clk_get_rate(fpc->clk[fpc->period.clk_select]); in fsl_pwm_ticks_to_ns()
124 do_div(exval, rate >> fpc->period.clk_ps); in fsl_pwm_ticks_to_ns()
191 unsigned int period = fpc->period.mod_period + 1; in fsl_pwm_calculate_duty() local
192 unsigned int period_ns = fsl_pwm_ticks_to_ns(fpc, period); in fsl_pwm_calculate_duty()
194 duty = (unsigned long long)duty_ns * period; in fsl_pwm_calculate_duty()
234 if (!fsl_pwm_calculate_period(fpc, newstate->period, &periodcfg)) { in fsl_pwm_apply_config()
235 dev_err(fpc->chip.dev, "failed to calculate new period\n"); in fsl_pwm_apply_config()
242 * The Freescale FTM controller supports only a single period for in fsl_pwm_apply_config()
243 * all PWM channels, therefore verify if the newly computed period in fsl_pwm_apply_config()
244 * is different than the current period being used. In such case in fsl_pwm_apply_config()
245 * we allow to change the period only if no other pwm is running. in fsl_pwm_apply_config()
247 else if (!fsl_pwm_periodcfg_are_equal(&fpc->period, &periodcfg)) { in fsl_pwm_apply_config()
250 "Cannot change period for PWM %u, disable other PWMs first\n", in fsl_pwm_apply_config()
254 if (fpc->period.clk_select != periodcfg.clk_select) { in fsl_pwm_apply_config()
256 enum fsl_pwm_clk oldclk = fpc->period.clk_select; in fsl_pwm_apply_config()
276 fpc->period = periodcfg; in fsl_pwm_apply_config()
319 clk_disable_unprepare(fpc->clk[fpc->period.clk_select]); in fsl_pwm_apply()
331 ret = clk_prepare_enable(fpc->clk[fpc->period.clk_select]); in fsl_pwm_apply()
337 clk_disable_unprepare(fpc->clk[fpc->period.clk_select]); in fsl_pwm_apply()
482 clk_disable_unprepare(fpc->clk[fpc->period.clk_select]); in fsl_pwm_suspend()
504 clk_prepare_enable(fpc->clk[fpc->period.clk_select]); in fsl_pwm_resume()