ARM: pxa: convert eseries to clock framework
[deliverable/linux.git] / arch / arm / mach-pxa / clock-pxa2xx.c
CommitLineData
4029813c
EM
1/*
2 * linux/arch/arm/mach-pxa/clock-pxa2xx.c
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include <linux/module.h>
10#include <linux/kernel.h>
11#include <linux/init.h>
23019a73 12#include <linux/io.h>
2eaa03b5 13#include <linux/syscore_ops.h>
4029813c
EM
14
15#include <mach/pxa2xx-regs.h>
16
17#include "clock.h"
18
19void clk_pxa2xx_cken_enable(struct clk *clk)
20{
21 CKEN |= 1 << clk->cken;
22}
23
24void clk_pxa2xx_cken_disable(struct clk *clk)
25{
26 CKEN &= ~(1 << clk->cken);
27}
28
29const struct clkops clk_pxa2xx_cken_ops = {
30 .enable = clk_pxa2xx_cken_enable,
31 .disable = clk_pxa2xx_cken_disable,
32};
f113fe4e
EM
33
34#ifdef CONFIG_PM
35static uint32_t saved_cken;
36
2eaa03b5 37static int pxa2xx_clock_suspend(void)
f113fe4e
EM
38{
39 saved_cken = CKEN;
40 return 0;
41}
42
2eaa03b5 43static void pxa2xx_clock_resume(void)
f113fe4e
EM
44{
45 CKEN = saved_cken;
f113fe4e
EM
46}
47#else
48#define pxa2xx_clock_suspend NULL
49#define pxa2xx_clock_resume NULL
50#endif
51
2eaa03b5 52struct syscore_ops pxa2xx_clock_syscore_ops = {
f113fe4e
EM
53 .suspend = pxa2xx_clock_suspend,
54 .resume = pxa2xx_clock_resume,
55};
This page took 0.240148 seconds and 5 git commands to generate.