1179f82a2SJacky Bai /* 2179f82a2SJacky Bai * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved. 3179f82a2SJacky Bai * 4179f82a2SJacky Bai * SPDX-License-Identifier: BSD-3-Clause 5179f82a2SJacky Bai */ 6179f82a2SJacky Bai 7179f82a2SJacky Bai #include <stdbool.h> 8179f82a2SJacky Bai 9179f82a2SJacky Bai #include <arch.h> 10179f82a2SJacky Bai #include <arch_helpers.h> 11179f82a2SJacky Bai #include <common/debug.h> 12179f82a2SJacky Bai #include <lib/mmio.h> 13179f82a2SJacky Bai #include <lib/psci/psci.h> 14179f82a2SJacky Bai 15179f82a2SJacky Bai #include <gpc.h> 16179f82a2SJacky Bai #include <imx8m_psci.h> 17179f82a2SJacky Bai #include <plat_imx8.h> 18179f82a2SJacky Bai 19179f82a2SJacky Bai static const plat_psci_ops_t imx_plat_psci_ops = { 20179f82a2SJacky Bai .pwr_domain_on = imx_pwr_domain_on, 21179f82a2SJacky Bai .pwr_domain_on_finish = imx_pwr_domain_on_finish, 22179f82a2SJacky Bai .pwr_domain_off = imx_pwr_domain_off, 23179f82a2SJacky Bai .validate_ns_entrypoint = imx_validate_ns_entrypoint, 24179f82a2SJacky Bai .validate_power_state = imx_validate_power_state, 25179f82a2SJacky Bai .cpu_standby = imx_cpu_standby, 26179f82a2SJacky Bai .pwr_domain_suspend = imx_domain_suspend, 27179f82a2SJacky Bai .pwr_domain_suspend_finish = imx_domain_suspend_finish, 28*db5fe4f4SBoyan Karatotev .pwr_domain_pwr_down = imx_pwr_domain_pwr_down_wfi, 29179f82a2SJacky Bai .get_sys_suspend_power_state = imx_get_sys_suspend_power_state, 30179f82a2SJacky Bai .system_reset = imx_system_reset, 3160a0dde9SIgor Opaniuk .system_reset2 = imx_system_reset2, 32179f82a2SJacky Bai .system_off = imx_system_off, 33179f82a2SJacky Bai }; 34179f82a2SJacky Bai 35179f82a2SJacky Bai /* export the platform specific psci ops */ 36179f82a2SJacky Bai int plat_setup_psci_ops(uintptr_t sec_entrypoint, 37179f82a2SJacky Bai const plat_psci_ops_t **psci_ops) 38179f82a2SJacky Bai { 39179f82a2SJacky Bai /* sec_entrypoint is used for warm reset */ 40179f82a2SJacky Bai imx_mailbox_init(sec_entrypoint); 41179f82a2SJacky Bai 42179f82a2SJacky Bai *psci_ops = &imx_plat_psci_ops; 43179f82a2SJacky Bai 44179f82a2SJacky Bai return 0; 45179f82a2SJacky Bai } 46