GNU Linux-libre 6.7.9-gnu
[releases.git] / arch / arm / mach-imx / pm-imx25.c
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright 2016 NXP Semiconductors
4  */
5
6 #include <linux/kernel.h>
7 #include <linux/suspend.h>
8 #include <linux/io.h>
9 #include "common.h"
10
11 static int imx25_suspend_enter(suspend_state_t state)
12 {
13         if (!IS_ENABLED(CONFIG_PM))
14                 return 0;
15
16         switch (state) {
17         case PM_SUSPEND_MEM:
18                 cpu_do_idle();
19                 break;
20         default:
21                 return -EINVAL;
22         }
23
24         return 0;
25 }
26
27 static const struct platform_suspend_ops imx25_suspend_ops = {
28         .enter = imx25_suspend_enter,
29         .valid = suspend_valid_only_mem,
30 };
31
32 void __init imx25_pm_init(void)
33 {
34         suspend_set_ops(&imx25_suspend_ops);
35 }