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 } 36