Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5776ac2e authored by Jason Chen's avatar Jason Chen Committed by Sascha Hauer
Browse files

ARM:imx:fix pwm period value



According to imx pwm RM, the real period value should be
PERIOD value in PWMPR plus 2.

PWMO (Hz) = PCLK(Hz) / (period +2)

Signed-off-by: default avatarJason Chen <jason.chen@linaro.org>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Cc: stable@kernel.org
parent 384703b8
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -77,6 +77,15 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns)
		do_div(c, period_ns);
		do_div(c, period_ns);
		duty_cycles = c;
		duty_cycles = c;


		/*
		 * according to imx pwm RM, the real period value should be
		 * PERIOD value in PWMPR plus 2.
		 */
		if (period_cycles > 2)
			period_cycles -= 2;
		else
			period_cycles = 0;

		writel(duty_cycles, pwm->mmio_base + MX3_PWMSAR);
		writel(duty_cycles, pwm->mmio_base + MX3_PWMSAR);
		writel(period_cycles, pwm->mmio_base + MX3_PWMPR);
		writel(period_cycles, pwm->mmio_base + MX3_PWMPR);