Lines Matching full:prescale
134 u8 prescale, u8 period_steps)
141 * step_in_ns = (prescale * NSEC_PER_SEC) / clk_rate
144 tmp = (((u64)prescale) + 1) * NSEC_PER_SEC;
185 u16 *prescale, u16 *period_steps)
190 * Calculate the period cycles and prescale values.
193 * (prescale + 1) * (period_steps + 1)
203 * The prescale and period_steps registers operate similarly to
213 *prescale = MCHPCOREPWM_PRESCALE_MAX;
221 * prescale & period_steps values.
229 * to calculate prescale actually calculates its upper bound.
245 * This "optimal" value for prescale is be calculated using the maximum
249 * prescale = ------------------------- - 1
257 *prescale = ((u16)tmp) / (MCHPCOREPWM_PERIOD_STEPS_MAX + 1) - 1;
260 * period_steps can be computed from prescale:
263 * NSEC_PER_SEC * (prescale + 1)
266 * was used to compute prescale.
280 u16 prescale, period_steps;
297 ret = mchp_core_pwm_calc_period(state, clk_rate, &prescale, &period_steps);
319 if ((period_steps + 1) * (prescale + 1) <
333 prescale = hw_prescale;
337 duty_steps = mchp_core_pwm_calc_duty(state, clk_rate, prescale, period_steps);
348 writel_relaxed(prescale, mchp_core_pwm->base + MCHPCOREPWM_PRESCALE);
381 u16 prescale, period_steps;
399 * (prescale + 1) * (period_steps + 1)
404 * The prescale and period_steps registers operate similarly to
408 prescale = readb_relaxed(mchp_core_pwm->base + MCHPCOREPWM_PRESCALE);
411 state->period = (period_steps + 1) * (prescale + 1);
425 state->duty_cycle = duty_steps * (prescale + 1) * NSEC_PER_SEC;