1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * Copyright (C) 2012 Freescale Semiconductor, Inc. |
4 | */ |
5 | |
6 | #include <linux/cpuidle.h> |
7 | #include <linux/module.h> |
8 | #include <asm/system_misc.h> |
9 | #include "cpuidle.h" |
10 | |
11 | static __cpuidle int imx5_cpuidle_enter(struct cpuidle_device *dev, |
12 | struct cpuidle_driver *drv, int index) |
13 | { |
14 | arm_pm_idle(); |
15 | return index; |
16 | } |
17 | |
18 | static struct cpuidle_driver imx5_cpuidle_driver = { |
19 | .name = "imx5_cpuidle" , |
20 | .owner = THIS_MODULE, |
21 | .states[0] = { |
22 | .enter = imx5_cpuidle_enter, |
23 | .exit_latency = 2, |
24 | .target_residency = 1, |
25 | .name = "IMX5 SRPG" , |
26 | .desc = "CPU state retained,powered off" , |
27 | }, |
28 | .state_count = 1, |
29 | }; |
30 | |
31 | int __init imx5_cpuidle_init(void) |
32 | { |
33 | return cpuidle_register(drv: &imx5_cpuidle_driver, NULL); |
34 | } |
35 | |