From 5ef881bbecc72862fa379cb286a50f2781db4cec Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Fri, 19 Jun 2009 11:35:08 +0200 Subject: [PATCH] MXC: pwm driver fixes - fix off-by-one error in divider calculation - disable pwm in pwm_disable Signed-off-by: Sascha Hauer --- arch/arm/plat-mxc/pwm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/arm/plat-mxc/pwm.c b/arch/arm/plat-mxc/pwm.c index ae34198a79dd..42dd17b89ff3 100644 --- a/arch/arm/plat-mxc/pwm.c +++ b/arch/arm/plat-mxc/pwm.c @@ -72,7 +72,7 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) writel(duty_cycles, pwm->mmio_base + MX3_PWMSAR); writel(period_cycles, pwm->mmio_base + MX3_PWMPR); - writel(MX3_PWMCR_PRESCALER(prescale - 1) | + writel(MX3_PWMCR_PRESCALER(prescale) | MX3_PWMCR_CLKSRC_IPG_HIGH | MX3_PWMCR_EN, pwm->mmio_base + MX3_PWMCR); } else if (cpu_is_mx1() || cpu_is_mx21()) { @@ -118,6 +118,8 @@ EXPORT_SYMBOL(pwm_enable); void pwm_disable(struct pwm_device *pwm) { + writel(0, pwm->mmio_base + MX3_PWMCR); + if (pwm->clk_enabled) { clk_disable(pwm->clk); pwm->clk_enabled = 0; -- 2.39.5