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