1 /* 2 * Copyright 2020 Carlo Caione <ccaione@baylibre.com> 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_INCLUDE_DRIVERS_PM_CPU_OPS_PSCI_H_ 8 #define ZEPHYR_INCLUDE_DRIVERS_PM_CPU_OPS_PSCI_H_ 9 10 #include <zephyr/types.h> 11 #include <arch/arm64/arm-smccc.h> 12 #include <stddef.h> 13 #include <device.h> 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 /* PSCI version decoding (independent of PSCI version) */ 20 #define PSCI_VERSION_MAJOR_SHIFT 16 21 #define PSCI_VERSION_MINOR_MASK \ 22 ((1U << PSCI_VERSION_MAJOR_SHIFT) - 1) 23 #define PSCI_VERSION_MAJOR_MASK ~PSCI_VERSION_MINOR_MASK 24 25 #define PSCI_VERSION_MAJOR(ver) \ 26 (((ver) & PSCI_VERSION_MAJOR_MASK) >> PSCI_VERSION_MAJOR_SHIFT) 27 #define PSCI_VERSION_MINOR(ver) \ 28 ((ver) & PSCI_VERSION_MINOR_MASK) 29 30 uint32_t psci_version(void); 31 32 #ifdef __cplusplus 33 } 34 #endif 35 36 #endif /* ZEPHYR_INCLUDE_DRIVERS_PM_CPU_OPS_PSCI_H_ */ 37