1 /* 2 * Copyright (C) 2013 - ARM Ltd 3 * Author: Marc Zyngier <marc.zyngier@arm.com> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * published by the Free Software Foundation. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef __ARM_PSCI_H__ 19 #define __ARM_PSCI_H__ 20 21 /* PSCI interface */ 22 #define ARM_PSCI_FN_BASE 0x95c1ba5e 23 #define ARM_PSCI_FN(n) (ARM_PSCI_FN_BASE + (n)) 24 25 #define ARM_PSCI_FN_CPU_SUSPEND ARM_PSCI_FN(0) 26 #define ARM_PSCI_FN_CPU_OFF ARM_PSCI_FN(1) 27 #define ARM_PSCI_FN_CPU_ON ARM_PSCI_FN(2) 28 #define ARM_PSCI_FN_MIGRATE ARM_PSCI_FN(3) 29 30 #define ARM_PSCI_RET_SUCCESS 0 31 #define ARM_PSCI_RET_NI (-1) 32 #define ARM_PSCI_RET_INVAL (-2) 33 #define ARM_PSCI_RET_DENIED (-3) 34 35 #ifndef __ASSEMBLY__ 36 int psci_update_dt(void *fdt); 37 #endif /* ! __ASSEMBLY__ */ 38 39 #endif /* __ARM_PSCI_H__ */ 40