Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-pxa
smemc.c
Go to the documentation of this file.
1
/*
2
* Static Memory Controller
3
*/
4
5
#include <linux/module.h>
6
#include <linux/kernel.h>
7
#include <
linux/init.h
>
8
#include <
linux/io.h
>
9
#include <
linux/syscore_ops.h
>
10
11
#include <mach/hardware.h>
12
#include <
mach/smemc.h
>
13
14
#ifdef CONFIG_PM
15
static
unsigned
long
msc[2];
16
static
unsigned
long
sxcnfg, memclkcfg;
17
static
unsigned
long
csadrcfg[4];
18
19
static
int
pxa3xx_smemc_suspend(
void
)
20
{
21
msc[0] =
__raw_readl
(
MSC0
);
22
msc[1] =
__raw_readl
(
MSC1
);
23
sxcnfg =
__raw_readl
(
SXCNFG
);
24
memclkcfg =
__raw_readl
(
MEMCLKCFG
);
25
csadrcfg[0] =
__raw_readl
(
CSADRCFG0
);
26
csadrcfg[1] =
__raw_readl
(
CSADRCFG1
);
27
csadrcfg[2] =
__raw_readl
(
CSADRCFG2
);
28
csadrcfg[3] =
__raw_readl
(
CSADRCFG3
);
29
30
return
0;
31
}
32
33
static
void
pxa3xx_smemc_resume(
void
)
34
{
35
__raw_writel
(msc[0],
MSC0
);
36
__raw_writel
(msc[1],
MSC1
);
37
__raw_writel
(sxcnfg,
SXCNFG
);
38
__raw_writel
(memclkcfg,
MEMCLKCFG
);
39
__raw_writel
(csadrcfg[0],
CSADRCFG0
);
40
__raw_writel
(csadrcfg[1],
CSADRCFG1
);
41
__raw_writel
(csadrcfg[2],
CSADRCFG2
);
42
__raw_writel
(csadrcfg[3],
CSADRCFG3
);
43
}
44
45
static
struct
syscore_ops
smemc_syscore_ops = {
46
.
suspend
= pxa3xx_smemc_suspend,
47
.resume = pxa3xx_smemc_resume,
48
};
49
50
static
int
__init
smemc_init(
void
)
51
{
52
if
(
cpu_is_pxa3xx
())
53
register_syscore_ops
(&smemc_syscore_ops);
54
55
return
0;
56
}
57
subsys_initcall
(smemc_init);
58
#endif
Generated on Thu Jan 10 2013 13:01:21 for Linux Kernel by
1.8.2