aw_pwm: fix selection of the prescaler
Prescaling divides the frequency, not multiplies it. MFC after: 2 weeks
This commit is contained in:
parent
108d235ae6
commit
1c2c602a17
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=366139
@ -274,7 +274,7 @@ aw_pwm_channel_config(device_t dev, u_int channel, u_int period, u_int duty)
|
||||
for (i = 0; i < nitems(aw_pwm_clk_prescaler); i++) {
|
||||
if (aw_pwm_clk_prescaler[i] == 0)
|
||||
continue;
|
||||
div = (AW_PWM_MAX_FREQ * aw_pwm_clk_prescaler[i]) / period_freq;
|
||||
div = AW_PWM_MAX_FREQ / aw_pwm_clk_prescaler[i] / period_freq;
|
||||
if ((div - 1) < AW_PWM_PERIOD_TOTAL_MASK ) {
|
||||
prescaler = i;
|
||||
clk_rate = AW_PWM_MAX_FREQ / aw_pwm_clk_prescaler[i];
|
||||
|
Loading…
Reference in New Issue
Block a user