pwm: i.MX: use per clock unconditionally
authorSascha Hauer <s.hauer@pengutronix.de>
Tue, 28 Aug 2012 10:03:29 +0000 (12:03 +0200)
committerThierry Reding <thierry.reding@avionic-design.de>
Wed, 12 Sep 2012 12:25:06 +0000 (14:25 +0200)
The i.MX PWM module has two clocks: The ipg clock and the ipg highfreq
(peripheral) clock. The ipg clock has to be enabled for this hardware
to work. The actual PWM output can either be driven by the ipg clock
or the ipg highfreq. The ipg highfreq has the advantage that it runs
even when the SoC is in low power modes.
Use the always running clock also on i.MX25.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Shawn Guo <shawn.guo@linaro.org>
Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
drivers/pwm/pwm-imx.c

index 0f6c436c0632e34eef000e70d10f9d560f0c71ac..852de6ce6e11e67102ed33455da0a59efd709cde 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/io.h>
 #include <linux/pwm.h>
 #include <linux/of_device.h>
-#include <mach/hardware.h>
 
 /* i.MX1 and i.MX21 share the same PWM function block: */
 
@@ -133,16 +132,11 @@ static int imx_pwm_config_v2(struct pwm_chip *chip,
 
        cr = MX3_PWMCR_PRESCALER(prescale) |
                MX3_PWMCR_DOZEEN | MX3_PWMCR_WAITEN |
-               MX3_PWMCR_DBGEN;
+               MX3_PWMCR_DBGEN | MX3_PWMCR_CLKSRC_IPG_HIGH;
 
        if (imx->enabled)
                cr |= MX3_PWMCR_EN;
 
-       if (cpu_is_mx25())
-               cr |= MX3_PWMCR_CLKSRC_IPG;
-       else
-               cr |= MX3_PWMCR_CLKSRC_IPG_HIGH;
-
        writel(cr, imx->mmio_base + MX3_PWMCR);
 
        return 0;