Commit 869eebc3 authored by Anson Huang's avatar Anson Huang
Browse files

imx: add i.MX8 SoCs thermal alarm SIP(silicon provider) service support



For NXP's i.MX8 SoCs with system controller inside, thermal sensors
are maintained by SCFW, Linux needs to call SMC to trap to TF-A for
thermal alarm operation etc. by calling SCFW API.

This patch adds temperature alarm SIP service support.
Signed-off-by: default avatarAnson Huang <Anson.Huang@nxp.com>
parent dbfa45e8
...@@ -128,3 +128,12 @@ int imx_otp_handler(uint32_t smc_fid, ...@@ -128,3 +128,12 @@ int imx_otp_handler(uint32_t smc_fid,
return ret; return ret;
} }
int imx_misc_set_temp_handler(uint32_t smc_fid,
u_register_t x1,
u_register_t x2,
u_register_t x3,
u_register_t x4)
{
return sc_misc_set_temp(ipc_handle, x1, x2, x3, x4);
}
...@@ -37,6 +37,8 @@ static uintptr_t imx_sip_handler(unsigned int smc_fid, ...@@ -37,6 +37,8 @@ static uintptr_t imx_sip_handler(unsigned int smc_fid,
case IMX_SIP_OTP_READ: case IMX_SIP_OTP_READ:
case IMX_SIP_OTP_WRITE: case IMX_SIP_OTP_WRITE:
return imx_otp_handler(smc_fid, handle, x1, x2); return imx_otp_handler(smc_fid, handle, x1, x2);
case IMX_SIP_MISC_SET_TEMP:
SMC_RET1(handle, imx_misc_set_temp_handler(smc_fid, x1, x2, x3, x4));
#endif #endif
default: default:
WARN("Unimplemented i.MX SiP Service Call: 0x%x\n", smc_fid); WARN("Unimplemented i.MX SiP Service Call: 0x%x\n", smc_fid);
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
#define IMX_SIP_OTP_READ 0xC200000A #define IMX_SIP_OTP_READ 0xC200000A
#define IMX_SIP_OTP_WRITE 0xC200000B #define IMX_SIP_OTP_WRITE 0xC200000B
#define IMX_SIP_MISC_SET_TEMP 0xC200000C
#if (defined(PLAT_IMX8QM) || defined(PLAT_IMX8QX)) #if (defined(PLAT_IMX8QM) || defined(PLAT_IMX8QX))
int imx_cpufreq_handler(uint32_t smc_fid, u_register_t x1, int imx_cpufreq_handler(uint32_t smc_fid, u_register_t x1,
u_register_t x2, u_register_t x3); u_register_t x2, u_register_t x3);
...@@ -30,6 +32,9 @@ int imx_wakeup_src_handler(uint32_t smc_fid, u_register_t x1, ...@@ -30,6 +32,9 @@ int imx_wakeup_src_handler(uint32_t smc_fid, u_register_t x1,
u_register_t x2, u_register_t x3); u_register_t x2, u_register_t x3);
int imx_otp_handler(uint32_t smc_fid, void *handle, int imx_otp_handler(uint32_t smc_fid, void *handle,
u_register_t x1, u_register_t x2); u_register_t x1, u_register_t x2);
int imx_misc_set_temp_handler(uint32_t smc_fid, u_register_t x1,
u_register_t x2, u_register_t x3,
u_register_t x4);
#endif #endif
#endif /* __IMX_SIP_SVC_H__ */ #endif /* __IMX_SIP_SVC_H__ */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment