Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 35 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Armijn Hemel <armijn@tjaldur.nl> Reviewed-by: Richard Fontana <rfontana@redhat.com> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.655028468@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
43 lines
817 B
C
43 lines
817 B
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de>
|
|
* JZ4740 SoC power management support
|
|
*/
|
|
|
|
#include <linux/init.h>
|
|
#include <linux/pm.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/suspend.h>
|
|
|
|
#include <asm/mach-jz4740/clock.h>
|
|
|
|
static int jz4740_pm_enter(suspend_state_t state)
|
|
{
|
|
jz4740_clock_suspend();
|
|
|
|
jz4740_clock_set_wait_mode(JZ4740_WAIT_MODE_SLEEP);
|
|
|
|
__asm__(".set\tmips3\n\t"
|
|
"wait\n\t"
|
|
".set\tmips0");
|
|
|
|
jz4740_clock_set_wait_mode(JZ4740_WAIT_MODE_IDLE);
|
|
|
|
jz4740_clock_resume();
|
|
|
|
return 0;
|
|
}
|
|
|
|
static const struct platform_suspend_ops jz4740_pm_ops = {
|
|
.valid = suspend_valid_only_mem,
|
|
.enter = jz4740_pm_enter,
|
|
};
|
|
|
|
static int __init jz4740_pm_init(void)
|
|
{
|
|
suspend_set_ops(&jz4740_pm_ops);
|
|
return 0;
|
|
|
|
}
|
|
late_initcall(jz4740_pm_init);
|