diff options
Diffstat (limited to 'arch/arm/mach-shmobile/cpuidle.c')
| -rw-r--r-- | arch/arm/mach-shmobile/cpuidle.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/cpuidle.c b/arch/arm/mach-shmobile/cpuidle.c new file mode 100644 index 00000000000..0afeb5c7061 --- /dev/null +++ b/arch/arm/mach-shmobile/cpuidle.c @@ -0,0 +1,37 @@ +/* + * CPUIdle support code for SH-Mobile ARM + * + * Copyright (C) 2011 Magnus Damm + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + */ + +#include <linux/pm.h> +#include <linux/cpuidle.h> +#include <linux/suspend.h> +#include <linux/module.h> +#include <linux/err.h> +#include <asm/cpuidle.h> +#include <asm/io.h> + +static struct cpuidle_driver shmobile_cpuidle_default_driver = { + .name = "shmobile_cpuidle", + .owner = THIS_MODULE, + .states[0] = ARM_CPUIDLE_WFI_STATE, + .safe_state_index = 0, /* C1 */ + .state_count = 1, +}; + +static struct cpuidle_driver *cpuidle_drv = &shmobile_cpuidle_default_driver; + +void __init shmobile_cpuidle_set_driver(struct cpuidle_driver *drv) +{ + cpuidle_drv = drv; +} + +int __init shmobile_cpuidle_init(void) +{ + return cpuidle_register(cpuidle_drv, NULL); +} |
