Skip to content

Commit

Permalink
pwm: i.MX: use per clock unconditionally
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Sascha Hauer authored and Thierry Reding committed Sep 12, 2012
1 parent 479e2e3 commit 8d1c24b
Showing 1 changed file with 1 addition and 7 deletions.
8 changes: 1 addition & 7 deletions drivers/pwm/pwm-imx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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: */

Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 8d1c24b

Please sign in to comment.