Lines Matching defs:prescale
69 * @prescale: MTU3 prescale
79 u8 prescale[RZ_MTU3_MAX_HW_CHANNELS];
116 u8 prescale;
119 * Supported prescale values are 1, 4, 16 and 64.
120 * TODO: Support prescale values 2, 8, 32, 256 and 1024.
124 prescale = 3;
126 prescale = (fls(prescaled_period_cycles) + 1) / 2;
128 return prescale;
282 u8 prescale, val;
295 prescale = FIELD_GET(RZ_MTU3_TCR_TPCS, val);
297 /* With prescale <= 7 and pv <= 0xffff this doesn't overflow. */
298 tmp = NSEC_PER_SEC * (u64)pv << (2 * prescale);
300 tmp = NSEC_PER_SEC * (u64)dc << (2 * prescale);
313 static u16 rz_mtu3_pwm_calculate_pv_or_dc(u64 period_or_duty_cycle, u8 prescale)
315 return min(period_or_duty_cycle >> (2 * prescale), (u64)U16_MAX);
325 u8 prescale;
335 prescale = rz_mtu3_pwm_calculate_prescale(rz_mtu3_pwm, period_cycles);
338 * Prescalar is shared by multiple channels, so prescale can
341 * it, if current prescale value is less than the one we want to set.
344 if (rz_mtu3_pwm->prescale[ch] > prescale)
347 prescale = rz_mtu3_pwm->prescale[ch];
350 pv = rz_mtu3_pwm_calculate_pv_or_dc(period_cycles, prescale);
354 dc = rz_mtu3_pwm_calculate_pv_or_dc(duty_cycles, prescale);
368 val = RZ_MTU3_TCR_CKEG_RISING | prescale;
371 if (rz_mtu3_pwm->prescale[ch] != prescale && rz_mtu3_pwm->enable_count[ch])
386 if (rz_mtu3_pwm->prescale[ch] != prescale) {
392 rz_mtu3_pwm->prescale[ch] = prescale;