ARM: sa1111: fix PWM state on suspend
We should not write to the SA1111 registers after setting the SLEEP bit. Moreover, the manual says that the PWM registers should be disabled before we enter sleep. So, move the clearing of these registers earlier in the suspend sequence. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
29c140b623
commit
a22db0f382
1 changed files with 3 additions and 2 deletions
|
@ -905,6 +905,9 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state)
|
|||
save->skpwm0 = sa1111_readl(base + SA1111_SKPWM0);
|
||||
save->skpwm1 = sa1111_readl(base + SA1111_SKPWM1);
|
||||
|
||||
sa1111_writel(0, sachip->base + SA1111_SKPWM0);
|
||||
sa1111_writel(0, sachip->base + SA1111_SKPWM1);
|
||||
|
||||
base = sachip->base + SA1111_INTC;
|
||||
save->intpol0 = sa1111_readl(base + SA1111_INTPOL0);
|
||||
save->intpol1 = sa1111_readl(base + SA1111_INTPOL1);
|
||||
|
@ -920,8 +923,6 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state)
|
|||
*/
|
||||
val = sa1111_readl(sachip->base + SA1111_SKCR);
|
||||
sa1111_writel(val | SKCR_SLEEP, sachip->base + SA1111_SKCR);
|
||||
sa1111_writel(0, sachip->base + SA1111_SKPWM0);
|
||||
sa1111_writel(0, sachip->base + SA1111_SKPWM1);
|
||||
|
||||
clk_disable(sachip->clk);
|
||||
|
||||
|
|
Loading…
Reference in a new issue