xref: /rk3399_ARM-atf/drivers/renesas/rcar_gen5/pwrc/pwrc.c (revision 7cab2c233b38cf2a63d37d31da73f1d82f5efc3c)
1*f180a3b7SHieu Nguyen /*
2*f180a3b7SHieu Nguyen  * Copyright (c) 2025, Renesas Electronics Corporation. All rights reserved.
3*f180a3b7SHieu Nguyen  *
4*f180a3b7SHieu Nguyen  * SPDX-License-Identifier: BSD-3-Clause
5*f180a3b7SHieu Nguyen  */
6*f180a3b7SHieu Nguyen 
7*f180a3b7SHieu Nguyen #include <assert.h>
8*f180a3b7SHieu Nguyen #include <string.h>
9*f180a3b7SHieu Nguyen 
10*f180a3b7SHieu Nguyen #include <arch.h>
11*f180a3b7SHieu Nguyen #include <arch_helpers.h>
12*f180a3b7SHieu Nguyen #include <lib/mmio.h>
13*f180a3b7SHieu Nguyen #include <plat/common/platform.h>
14*f180a3b7SHieu Nguyen #include "pwrc.h"
15*f180a3b7SHieu Nguyen #include "timer.h"
16*f180a3b7SHieu Nguyen 
17*f180a3b7SHieu Nguyen #include "rcar_def.h"
18*f180a3b7SHieu Nguyen #include "rcar_private.h"
19*f180a3b7SHieu Nguyen 
20*f180a3b7SHieu Nguyen void rcar_pwrc_suspend_to_ram(void)
21*f180a3b7SHieu Nguyen {
22*f180a3b7SHieu Nguyen 	rcar_pwrc_save_timer_state();
23*f180a3b7SHieu Nguyen 
24*f180a3b7SHieu Nguyen 	/* disable MMU */
25*f180a3b7SHieu Nguyen 	disable_mmu_el3();
26*f180a3b7SHieu Nguyen 
27*f180a3b7SHieu Nguyen 	/* cache flush */
28*f180a3b7SHieu Nguyen 	dcsw_op_all(DCCISW);
29*f180a3b7SHieu Nguyen 
30*f180a3b7SHieu Nguyen 	rcar_scmi_sys_suspend();
31*f180a3b7SHieu Nguyen 
32*f180a3b7SHieu Nguyen 	wfi();
33*f180a3b7SHieu Nguyen 
34*f180a3b7SHieu Nguyen 	/* Do not return */
35*f180a3b7SHieu Nguyen 	while (true)
36*f180a3b7SHieu Nguyen 		;
37*f180a3b7SHieu Nguyen }
38*f180a3b7SHieu Nguyen 
39*f180a3b7SHieu Nguyen void rcar_pwrc_code_copy_to_system_ram(void)
40*f180a3b7SHieu Nguyen {
41*f180a3b7SHieu Nguyen }
42*f180a3b7SHieu Nguyen 
43*f180a3b7SHieu Nguyen uint32_t rcar_pwrc_cpu_on_check(u_register_t mpidr)
44*f180a3b7SHieu Nguyen {
45*f180a3b7SHieu Nguyen 	return 0;
46*f180a3b7SHieu Nguyen }
47*f180a3b7SHieu Nguyen 
48*f180a3b7SHieu Nguyen void rcar_pwrc_enable_interrupt_wakeup(u_register_t mpidr)
49*f180a3b7SHieu Nguyen {
50*f180a3b7SHieu Nguyen }
51*f180a3b7SHieu Nguyen 
52*f180a3b7SHieu Nguyen void rcar_pwrc_disable_interrupt_wakeup(u_register_t mpidr)
53*f180a3b7SHieu Nguyen {
54*f180a3b7SHieu Nguyen }
55