xref: /rk3399_ARM-atf/plat/imx/common/include/plat_imx8.h (revision 480e8dd9df291cc0e31695983fa6ff235e1671cd)
1bd08def3SAnson Huang /*
2bd08def3SAnson Huang  * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
3bd08def3SAnson Huang  *
4bd08def3SAnson Huang  * SPDX-License-Identifier: BSD-3-Clause
5bd08def3SAnson Huang  */
6bd08def3SAnson Huang 
7c3cf06f1SAntonio Nino Diaz #ifndef PLAT_IMX8_H
8c3cf06f1SAntonio Nino Diaz #define PLAT_IMX8_H
9bd08def3SAnson Huang 
1009d40e0eSAntonio Nino Diaz #include <drivers/arm/gicv3.h>
1109d40e0eSAntonio Nino Diaz #include <lib/psci/psci.h>
12bd08def3SAnson Huang 
133a2b5199SAnson Huang struct plat_gic_ctx {
143a2b5199SAnson Huang 	gicv3_redist_ctx_t rdist_ctx[PLATFORM_CORE_COUNT];
153a2b5199SAnson Huang 	gicv3_dist_ctx_t dist_ctx;
163a2b5199SAnson Huang };
173a2b5199SAnson Huang 
18bd08def3SAnson Huang unsigned int plat_calc_core_pos(uint64_t mpidr);
19bd08def3SAnson Huang void imx_mailbox_init(uintptr_t base_addr);
20bd08def3SAnson Huang void plat_gic_driver_init(void);
21bd08def3SAnson Huang void plat_gic_init(void);
22bd08def3SAnson Huang void plat_gic_cpuif_enable(void);
23bd08def3SAnson Huang void plat_gic_cpuif_disable(void);
24bd08def3SAnson Huang void plat_gic_pcpu_init(void);
25bd08def3SAnson Huang 
26*7c0f67a1SJacky Bai void imx_system_off(void);
27*7c0f67a1SJacky Bai void imx_system_reset(void);
28762688bfSAnson Huang int imx_validate_power_state(unsigned int power_state,
29762688bfSAnson Huang 			psci_power_state_t *req_state);
30762688bfSAnson Huang void imx_get_sys_suspend_power_state(psci_power_state_t *req_state);
31ebdbc25bSAnson Huang bool imx_is_wakeup_src_irqsteer(void);
323a2b5199SAnson Huang void plat_gic_save(unsigned int proc_num, struct plat_gic_ctx *ctx);
333a2b5199SAnson Huang void plat_gic_restore(unsigned int proc_num, struct plat_gic_ctx *ctx);
34c3cf06f1SAntonio Nino Diaz 
35c3cf06f1SAntonio Nino Diaz #endif /* PLAT_IMX8_H */
36