]> git.baikalelectronics.ru Git - arm-tf.git/commitdiff
imx: add i.MX8 SoCs thermal alarm SIP(silicon provider) service support
authorAnson Huang <Anson.Huang@nxp.com>
Fri, 18 Jan 2019 02:35:54 +0000 (10:35 +0800)
committerAnson Huang <Anson.Huang@nxp.com>
Fri, 18 Jan 2019 03:23:04 +0000 (11:23 +0800)
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: Anson Huang <Anson.Huang@nxp.com>
plat/imx/common/imx_sip_handler.c
plat/imx/common/imx_sip_svc.c
plat/imx/common/include/imx_sip_svc.h

index a096a0606f06cd3793716b7cd7df55397d7b2a74..469e2953255662f9cab7b79d8c55cad3e918f2b7 100644 (file)
@@ -128,3 +128,12 @@ int imx_otp_handler(uint32_t smc_fid,
 
        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);
+}
index e7afb3c6bba60b7d09da5327b71bf45df1612753..d66c24e09590b17fffec572d542b4560c754763f 100644 (file)
@@ -37,6 +37,8 @@ static uintptr_t imx_sip_handler(unsigned int smc_fid,
        case IMX_SIP_OTP_READ:
        case IMX_SIP_OTP_WRITE:
                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
        default:
                WARN("Unimplemented i.MX SiP Service Call: 0x%x\n", smc_fid);
index 3fa6b82c3c5ac39c8ab268e670b9556cf5db3dc2..c259d23ca6585672c83f639f05b0e57f31362041 100644 (file)
@@ -21,6 +21,8 @@
 #define IMX_SIP_OTP_READ               0xC200000A
 #define IMX_SIP_OTP_WRITE              0xC200000B
 
+#define IMX_SIP_MISC_SET_TEMP          0xC200000C
+
 #if (defined(PLAT_IMX8QM) || defined(PLAT_IMX8QX))
 int imx_cpufreq_handler(uint32_t smc_fid, u_register_t x1,
                        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,
                           u_register_t x2, u_register_t x3);
 int imx_otp_handler(uint32_t smc_fid, void *handle,
                    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 /* __IMX_SIP_SVC_H__ */