Line data Source code
1 0 : /* 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 <zephyr/arch/arm64/arm-smccc.h> 12 : #include <stddef.h> 13 : #include <zephyr/device.h> 14 : 15 : #ifdef __cplusplus 16 : extern "C" { 17 : #endif 18 : 19 : /* PSCI version decoding (independent of PSCI version) */ 20 0 : #define PSCI_VERSION_MAJOR_SHIFT 16 21 0 : #define PSCI_VERSION_MINOR_MASK \ 22 : ((1U << PSCI_VERSION_MAJOR_SHIFT) - 1) 23 0 : #define PSCI_VERSION_MAJOR_MASK ~PSCI_VERSION_MINOR_MASK 24 : 25 0 : #define PSCI_VERSION_MAJOR(ver) \ 26 : (((ver) & PSCI_VERSION_MAJOR_MASK) >> PSCI_VERSION_MAJOR_SHIFT) 27 0 : #define PSCI_VERSION_MINOR(ver) \ 28 : ((ver) & PSCI_VERSION_MINOR_MASK) 29 : 30 0 : uint32_t psci_version(void); 31 : 32 : #ifdef __cplusplus 33 : } 34 : #endif 35 : 36 : #endif /* ZEPHYR_INCLUDE_DRIVERS_PM_CPU_OPS_PSCI_H_ */