diff options
author | Daniel Lezcano <daniel.lezcano@linaro.org> | 2013-09-26 11:34:24 -0400 |
---|---|---|
committer | Daniel Lezcano <daniel.lezcano@linaro.org> | 2013-10-16 17:49:35 -0400 |
commit | 1ce3c48e6c76920fa46bfdde84a69e155f880c32 (patch) | |
tree | 5ead3d0c9bf4b91812460748b0b48ef4d001b300 /arch/arm | |
parent | 5ad945ea58f6cab7490dc149974ccb6514cc569a (diff) |
ARM: at91: cpuidle: Move driver to drivers/cpuidle
As the cpuidle driver code has no more the dependency with the pm code, the
'standby' callback being passed as a parameter to the device's platform data,
we can move the cpuidle driver in the drivers/cpuidle directory.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Conflicts:
drivers/cpuidle/Kconfig.arm
drivers/cpuidle/Makefile
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-at91/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-at91/cpuidle.c | 69 |
2 files changed, 0 insertions, 70 deletions
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile index 3b0a9538093c..c1b737097c95 100644 --- a/arch/arm/mach-at91/Makefile +++ b/arch/arm/mach-at91/Makefile | |||
@@ -98,7 +98,6 @@ obj-y += leds.o | |||
98 | # Power Management | 98 | # Power Management |
99 | obj-$(CONFIG_PM) += pm.o | 99 | obj-$(CONFIG_PM) += pm.o |
100 | obj-$(CONFIG_AT91_SLOW_CLOCK) += pm_slowclock.o | 100 | obj-$(CONFIG_AT91_SLOW_CLOCK) += pm_slowclock.o |
101 | obj-$(CONFIG_CPU_IDLE) += cpuidle.o | ||
102 | 101 | ||
103 | ifeq ($(CONFIG_PM_DEBUG),y) | 102 | ifeq ($(CONFIG_PM_DEBUG),y) |
104 | CFLAGS_pm.o += -DDEBUG | 103 | CFLAGS_pm.o += -DDEBUG |
diff --git a/arch/arm/mach-at91/cpuidle.c b/arch/arm/mach-at91/cpuidle.c deleted file mode 100644 index a0774370c6bc..000000000000 --- a/arch/arm/mach-at91/cpuidle.c +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | /* | ||
2 | * based on arch/arm/mach-kirkwood/cpuidle.c | ||
3 | * | ||
4 | * CPU idle support for AT91 SoC | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | * | ||
10 | * The cpu idle uses wait-for-interrupt and RAM self refresh in order | ||
11 | * to implement two idle states - | ||
12 | * #1 wait-for-interrupt | ||
13 | * #2 wait-for-interrupt and RAM self refresh | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | #include <linux/cpuidle.h> | ||
20 | #include <linux/io.h> | ||
21 | #include <linux/export.h> | ||
22 | #include <asm/proc-fns.h> | ||
23 | #include <asm/cpuidle.h> | ||
24 | |||
25 | #define AT91_MAX_STATES 2 | ||
26 | |||
27 | static void (*at91_standby)(void); | ||
28 | |||
29 | /* Actual code that puts the SoC in different idle states */ | ||
30 | static int at91_enter_idle(struct cpuidle_device *dev, | ||
31 | struct cpuidle_driver *drv, | ||
32 | int index) | ||
33 | { | ||
34 | at91_standby(); | ||
35 | return index; | ||
36 | } | ||
37 | |||
38 | static struct cpuidle_driver at91_idle_driver = { | ||
39 | .name = "at91_idle", | ||
40 | .owner = THIS_MODULE, | ||
41 | .states[0] = ARM_CPUIDLE_WFI_STATE, | ||
42 | .states[1] = { | ||
43 | .enter = at91_enter_idle, | ||
44 | .exit_latency = 10, | ||
45 | .target_residency = 10000, | ||
46 | .flags = CPUIDLE_FLAG_TIME_VALID, | ||
47 | .name = "RAM_SR", | ||
48 | .desc = "WFI and DDR Self Refresh", | ||
49 | }, | ||
50 | .state_count = AT91_MAX_STATES, | ||
51 | }; | ||
52 | |||
53 | /* Initialize CPU idle by registering the idle states */ | ||
54 | static int at91_cpuidle_probe(struct platform_device *dev) | ||
55 | { | ||
56 | at91_standby = (void *)(dev->dev.platform_data); | ||
57 | |||
58 | return cpuidle_register(&at91_idle_driver, NULL); | ||
59 | } | ||
60 | |||
61 | static struct platform_driver at91_cpuidle_driver = { | ||
62 | .driver = { | ||
63 | .name = "cpuidle-at91", | ||
64 | .owner = THIS_MODULE, | ||
65 | }, | ||
66 | .probe = at91_cpuidle_probe, | ||
67 | }; | ||
68 | |||
69 | module_platform_driver(at91_cpuidle_driver); | ||