1/* 2 * Copyright (C) 2010 Freescale Semiconductor, Inc. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 */ 14 15#include <linux/kernel.h> 16#include <linux/suspend.h> 17#include <linux/io.h> 18#include "pm.h" 19 20static int mxs_suspend_enter(suspend_state_t state) 21{ 22 switch (state) { 23 case PM_SUSPEND_MEM: 24 cpu_do_idle(); 25 break; 26 27 default: 28 return -EINVAL; 29 } 30 return 0; 31} 32 33static struct platform_suspend_ops mxs_suspend_ops = { 34 .enter = mxs_suspend_enter, 35 .valid = suspend_valid_only_mem, 36}; 37 38void __init mxs_pm_init(void) 39{ 40 suspend_set_ops(&mxs_suspend_ops); 41} 42