From 6864312149a269a80c1c24a3c5dc89a04e7ad0b1 Mon Sep 17 00:00:00 2001 From: avg Date: Fri, 25 Sep 2020 07:40:26 +0000 Subject: [PATCH] aw_pwm: fix programming of the period The programmed value is biased by one: 0 means 1 cycle, 1 means 2 cycles, etc. MFC after: 3 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 a5661c3093e..eff5235d817 100644 --- a/sys/arm/allwinner/aw_pwm.c +++ b/sys/arm/allwinner/aw_pwm.c @@ -293,7 +293,7 @@ aw_pwm_channel_config(device_t dev, u_int channel, u_int period, u_int duty) AW_PWM_WRITE(sc, AW_PWM_CTRL, reg); /* Write the total/active cycles */ - reg = ((clk_rate / period_freq) << AW_PWM_PERIOD_TOTAL_SHIFT) | + reg = ((clk_rate / period_freq - 1) << AW_PWM_PERIOD_TOTAL_SHIFT) | ((clk_rate / duty_freq) << AW_PWM_PERIOD_ACTIVE_SHIFT); AW_PWM_WRITE(sc, AW_PWM_PERIOD, reg); -- 2.45.0