From 1c2c602a17f5bc781d5bd56258cd4cdb121d16fa Mon Sep 17 00:00:00 2001 From: Andriy Gapon Date: Fri, 25 Sep 2020 07:40:02 +0000 Subject: [PATCH] aw_pwm: fix selection of the prescaler Prescaling divides the frequency, not multiplies it. MFC after: 2 weeks --- sys/arm/allwinner/aw_pwm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm/allwinner/aw_pwm.c b/sys/arm/allwinner/aw_pwm.c index 66afe1563e44..a5661c3093e7 100644 --- a/sys/arm/allwinner/aw_pwm.c +++ b/sys/arm/allwinner/aw_pwm.c @@ -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];