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_ */
|