162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Suspend-to-RAM support code for SH-Mobile ARM 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2011 Magnus Damm 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <linux/pm.h> 962306a36Sopenharmony_ci#include <linux/suspend.h> 1062306a36Sopenharmony_ci#include <linux/module.h> 1162306a36Sopenharmony_ci#include <linux/err.h> 1262306a36Sopenharmony_ci#include <linux/cpu.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <asm/io.h> 1562306a36Sopenharmony_ci#include <asm/system_misc.h> 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#include "common.h" 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cistatic int shmobile_suspend_default_enter(suspend_state_t suspend_state) 2062306a36Sopenharmony_ci{ 2162306a36Sopenharmony_ci cpu_do_idle(); 2262306a36Sopenharmony_ci return 0; 2362306a36Sopenharmony_ci} 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_cistatic int shmobile_suspend_begin(suspend_state_t state) 2662306a36Sopenharmony_ci{ 2762306a36Sopenharmony_ci cpu_idle_poll_ctrl(true); 2862306a36Sopenharmony_ci return 0; 2962306a36Sopenharmony_ci} 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_cistatic void shmobile_suspend_end(void) 3262306a36Sopenharmony_ci{ 3362306a36Sopenharmony_ci cpu_idle_poll_ctrl(false); 3462306a36Sopenharmony_ci} 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_cistruct platform_suspend_ops shmobile_suspend_ops = { 3762306a36Sopenharmony_ci .begin = shmobile_suspend_begin, 3862306a36Sopenharmony_ci .end = shmobile_suspend_end, 3962306a36Sopenharmony_ci .enter = shmobile_suspend_default_enter, 4062306a36Sopenharmony_ci .valid = suspend_valid_only_mem, 4162306a36Sopenharmony_ci}; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciint __init shmobile_suspend_init(void) 4462306a36Sopenharmony_ci{ 4562306a36Sopenharmony_ci suspend_set_ops(&shmobile_suspend_ops); 4662306a36Sopenharmony_ci return 0; 4762306a36Sopenharmony_ci} 48