1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de>
4 * JZ4740 SoC power management support
7 #include <linux/init.h>
9 #include <linux/delay.h>
10 #include <linux/suspend.h>
12 #include <asm/mach-jz4740/clock.h>
14 static int jz4740_pm_enter(suspend_state_t state)
16 jz4740_clock_suspend();
18 jz4740_clock_set_wait_mode(JZ4740_WAIT_MODE_SLEEP);
20 __asm__(".set\tmips3\n\t"
24 jz4740_clock_set_wait_mode(JZ4740_WAIT_MODE_IDLE);
26 jz4740_clock_resume();
31 static const struct platform_suspend_ops jz4740_pm_ops = {
32 .valid = suspend_valid_only_mem,
33 .enter = jz4740_pm_enter,
36 static int __init jz4740_pm_init(void)
38 suspend_set_ops(&jz4740_pm_ops);
42 late_initcall(jz4740_pm_init);