mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
arm: psci: Add API to check for support of specific PSCI function
Add an API to check if a specific PSCI function is supported or not. This is based on the psci_features() function present in Linux kernel (drivers/firmware/psci/psci.c). Reviewed-by: Casey Connolly <casey.connolly@linaro.org> Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com> Link: https://patch.msgid.link/20260121063920.1500293-2-varadarajan.narayanan@oss.qualcomm.com Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
This commit is contained in:
committed by
Casey Connolly
parent
c3d00f1827
commit
f9e3f5f75c
@@ -129,3 +129,18 @@ void __noreturn psci_system_off(void)
|
||||
while (1)
|
||||
;
|
||||
}
|
||||
|
||||
int psci_features(u32 psci_func_id)
|
||||
{
|
||||
struct pt_regs regs;
|
||||
|
||||
regs.regs[0] = ARM_PSCI_1_0_FN_PSCI_FEATURES;
|
||||
regs.regs[1] = psci_func_id;
|
||||
|
||||
if (use_smc_for_psci)
|
||||
smc_call(®s);
|
||||
else
|
||||
hvc_call(®s);
|
||||
|
||||
return regs.regs[0];
|
||||
}
|
||||
|
||||
@@ -342,6 +342,7 @@ void smc_call(struct pt_regs *args);
|
||||
void __noreturn psci_system_reset(void);
|
||||
void __noreturn psci_system_reset2(u32 reset_level, u32 cookie);
|
||||
void __noreturn psci_system_off(void);
|
||||
int psci_features(u32 psci_func_id);
|
||||
|
||||
#ifdef CONFIG_ARMV8_PSCI
|
||||
extern char __secure_start[];
|
||||
|
||||
Reference in New Issue
Block a user