1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Copyright (C) 2010 Freescale Semiconductor, Inc. 4 */ 5 6 #include <linux/kernel.h> 7 #include <linux/suspend.h> 8 #include <linux/io.h> 9 #include "pm.h" 10 11 static int mxs_suspend_enter(suspend_state_t state) 12 { 13 switch (state) { 14 case PM_SUSPEND_MEM: 15 cpu_do_idle(); 16 break; 17 18 default: 19 return -EINVAL; 20 } 21 return 0; 22 } 23 24 static const struct platform_suspend_ops mxs_suspend_ops = { 25 .enter = mxs_suspend_enter, 26 .valid = suspend_valid_only_mem, 27 }; 28 29 void __init mxs_pm_init(void) 30 { 31 suspend_set_ops(&mxs_suspend_ops); 32 } 33