xref: /rk3399_ARM-atf/plat/rockchip/rk3588/plat_sip_calls.c (revision 44418fce30938ee483fbfc79cc32fde33753d1aa)
1e3ec6ff4SXiaoDong Huang /*
2e3ec6ff4SXiaoDong Huang  * Copyright (c) 2024, Rockchip, Inc. All rights reserved.
3e3ec6ff4SXiaoDong Huang  *
4e3ec6ff4SXiaoDong Huang  * SPDX-License-Identifier: BSD-3-Clause
5e3ec6ff4SXiaoDong Huang  */
6e3ec6ff4SXiaoDong Huang 
7e3ec6ff4SXiaoDong Huang #include <common/debug.h>
8e3ec6ff4SXiaoDong Huang #include <common/runtime_svc.h>
9*04150feeSXiaoDong Huang #include <drivers/scmi-msg.h>
10e3ec6ff4SXiaoDong Huang 
11e3ec6ff4SXiaoDong Huang #include <plat_sip_calls.h>
12e3ec6ff4SXiaoDong Huang #include <rockchip_sip_svc.h>
13e3ec6ff4SXiaoDong Huang 
rockchip_plat_sip_handler(uint32_t smc_fid,u_register_t x1,u_register_t x2,u_register_t x3,u_register_t x4,void * cookie,void * handle,u_register_t flags)14e3ec6ff4SXiaoDong Huang uintptr_t rockchip_plat_sip_handler(uint32_t smc_fid,
15e3ec6ff4SXiaoDong Huang 				    u_register_t x1,
16e3ec6ff4SXiaoDong Huang 				    u_register_t x2,
17e3ec6ff4SXiaoDong Huang 				    u_register_t x3,
18e3ec6ff4SXiaoDong Huang 				    u_register_t x4,
19e3ec6ff4SXiaoDong Huang 				    void *cookie,
20e3ec6ff4SXiaoDong Huang 				    void *handle,
21e3ec6ff4SXiaoDong Huang 				    u_register_t flags)
22e3ec6ff4SXiaoDong Huang {
23e3ec6ff4SXiaoDong Huang 	switch (smc_fid) {
24*04150feeSXiaoDong Huang 	case RK_SIP_SCMI_AGENT0:
25*04150feeSXiaoDong Huang 		scmi_smt_fastcall_smc_entry(0);
26*04150feeSXiaoDong Huang 		SMC_RET1(handle, 0);
27*04150feeSXiaoDong Huang 
28e3ec6ff4SXiaoDong Huang 	default:
29e3ec6ff4SXiaoDong Huang 		ERROR("%s: unhandled SMC (0x%x)\n", __func__, smc_fid);
30e3ec6ff4SXiaoDong Huang 		SMC_RET1(handle, SMC_UNK);
31e3ec6ff4SXiaoDong Huang 	}
32e3ec6ff4SXiaoDong Huang }
33