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 10 static int imx25_suspend_enter(suspend_state_t state) 11 { 12 if (!IS_ENABLED(CONFIG_PM)) 13 return 0; 14 15 switch (state) { 16 case PM_SUSPEND_MEM: 17 cpu_do_idle(); 18 break; 19 default: 20 return -EINVAL; 21 } 22 23 return 0; 24 } 25 26 static const struct platform_suspend_ops imx25_suspend_ops = { 27 .enter = imx25_suspend_enter, 28 .valid = suspend_valid_only_mem, 29 }; 30 31 void __init imx25_pm_init(void) 32 { 33 suspend_set_ops(&imx25_suspend_ops); 34 }