1 /* Public Domain */ 2 3 #ifndef _SYS_DEV_FDT_PSCIVAR_H_ 4 #define _SYS_DEV_FDT_PSCIVAR_H_ 5 6 #define PSCI_SUCCESS 0 7 #define PSCI_NOT_SUPPORTED -1 8 9 #define PSCI_METHOD_NONE 0 10 #define PSCI_METHOD_HVC 1 11 #define PSCI_METHOD_SMC 2 12 13 #define PSCI_VERSION 0x84000000 14 #ifdef __LP64__ 15 #define CPU_SUSPEND 0xc4000001 16 #else 17 #define CPU_SUSPEND 0x84000001 18 #endif 19 #define CPU_OFF 0x84000002 20 #ifdef __LP64__ 21 #define CPU_ON 0xc4000003 22 #else 23 #define CPU_ON 0x84000003 24 #endif 25 #define SYSTEM_OFF 0x84000008 26 #define SYSTEM_RESET 0x84000009 27 #define PSCI_FEATURES 0x8400000a 28 #ifdef __LP64__ 29 #define SYSTEM_SUSPEND 0xc400000e 30 #else 31 #define SYSTEM_SUSPEND 0x8400000e 32 #endif 33 34 #define PSCI_FEATURE_POWER_STATE_EXT (1 << 1) 35 #define PSCI_POWER_STATE_POWERDOWN (1 << 16) 36 #define PSCI_POWER_STATE_EXT_POWERDOWN (1 << 30) 37 38 int psci_can_suspend(void); 39 40 int32_t psci_system_suspend(register_t, register_t); 41 int32_t psci_cpu_on(register_t, register_t, register_t); 42 int32_t psci_cpu_off(void); 43 int32_t psci_cpu_suspend(register_t, register_t, register_t); 44 int32_t psci_features(uint32_t); 45 void psci_flush_bp(void); 46 int psci_method(void); 47 48 int32_t smccc(uint32_t, register_t, register_t, register_t); 49 50 void smccc_enable_arch_workaround_2(void); 51 int smccc_needs_arch_workaround_3(void); 52 53 #endif /* _SYS_DEV_FDT_PSCIVAR_H_ */ 54