diff options
Diffstat (limited to 'plat/imx/common/sci/svc/timer/timer_rpc_clnt.c')
-rw-r--r-- | plat/imx/common/sci/svc/timer/timer_rpc_clnt.c | 338 |
1 files changed, 185 insertions, 153 deletions
diff --git a/plat/imx/common/sci/svc/timer/timer_rpc_clnt.c b/plat/imx/common/sci/svc/timer/timer_rpc_clnt.c index a82be96f..231a8a79 100644 --- a/plat/imx/common/sci/svc/timer/timer_rpc_clnt.c +++ b/plat/imx/common/sci/svc/timer/timer_rpc_clnt.c @@ -19,8 +19,8 @@ #include <sci/svc/rm/sci_rm_api.h> #include <sci/svc/timer/sci_timer_api.h> #include <sci/sci_rpc.h> -#include <stdlib.h> #include "sci_timer_rpc.h" +#include <stdlib.h> /* Local Defines */ @@ -31,113 +31,122 @@ sc_err_t sc_timer_set_wdog_timeout(sc_ipc_t ipc, sc_timer_wdog_time_t timeout) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_WDOG_TIMEOUT; - RPC_U32(&msg, 0U) = (uint32_t)timeout; RPC_SIZE(&msg) = 2U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_WDOG_TIMEOUT); + + RPC_U32(&msg, 0U) = U32(timeout); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_set_wdog_pre_timeout(sc_ipc_t ipc, sc_timer_wdog_time_t pre_timeout) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_WDOG_PRE_TIMEOUT; - RPC_U32(&msg, 0U) = (uint32_t)pre_timeout; RPC_SIZE(&msg) = 2U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_WDOG_PRE_TIMEOUT); + + RPC_U32(&msg, 0U) = U32(pre_timeout); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_start_wdog(sc_ipc_t ipc, sc_bool_t lock) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_START_WDOG; - RPC_U8(&msg, 0U) = (uint8_t)lock; RPC_SIZE(&msg) = 2U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_START_WDOG); + + RPC_U8(&msg, 0U) = B2U8(lock); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_stop_wdog(sc_ipc_t ipc) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_STOP_WDOG; RPC_SIZE(&msg) = 1U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_STOP_WDOG); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_ping_wdog(sc_ipc_t ipc) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_PING_WDOG; RPC_SIZE(&msg) = 1U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_PING_WDOG); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } -sc_err_t sc_timer_get_wdog_status(sc_ipc_t ipc, - sc_timer_wdog_time_t *timeout, +sc_err_t sc_timer_get_wdog_status(sc_ipc_t ipc, sc_timer_wdog_time_t *timeout, sc_timer_wdog_time_t *max_timeout, sc_timer_wdog_time_t *remaining_time) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_GET_WDOG_STATUS; RPC_SIZE(&msg) = 1U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_GET_WDOG_STATUS); sc_call_rpc(ipc, &msg, SC_FALSE); - if (timeout != NULL) - *timeout = RPC_U32(&msg, 0U); - - if (max_timeout != NULL) - *max_timeout = RPC_U32(&msg, 4U); + err = (sc_err_t)RPC_R8(&msg); - if (remaining_time != NULL) - *remaining_time = RPC_U32(&msg, 8U); + if (timeout != NULL) { + *timeout = (sc_timer_wdog_time_t)RPC_U32(&msg, 0U); + } + if (max_timeout != NULL) { + *max_timeout = (sc_timer_wdog_time_t)RPC_U32(&msg, 4U); + } + if (remaining_time != NULL) { + *remaining_time = (sc_timer_wdog_time_t)RPC_U32(&msg, 8U); + } - result = RPC_R8(&msg); - return (sc_err_t)result; + return err; } sc_err_t sc_timer_pt_get_wdog_status(sc_ipc_t ipc, sc_rm_pt_t pt, @@ -146,46 +155,51 @@ sc_err_t sc_timer_pt_get_wdog_status(sc_ipc_t ipc, sc_rm_pt_t pt, sc_timer_wdog_time_t *remaining_time) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_PT_GET_WDOG_STATUS; - RPC_U8(&msg, 0U) = (uint8_t)pt; RPC_SIZE(&msg) = 2U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_PT_GET_WDOG_STATUS); - sc_call_rpc(ipc, &msg, SC_FALSE); + RPC_U8(&msg, 0U) = U8(pt); - if (timeout != NULL) - *timeout = RPC_U32(&msg, 0U); + sc_call_rpc(ipc, &msg, SC_FALSE); - if (remaining_time != NULL) - *remaining_time = RPC_U32(&msg, 4U); + err = (sc_err_t)RPC_R8(&msg); - result = RPC_R8(&msg); - if (enb != NULL) - *enb = RPC_U8(&msg, 8U); + if (timeout != NULL) { + *timeout = (sc_timer_wdog_time_t)RPC_U32(&msg, 0U); + } + if (remaining_time != NULL) { + *remaining_time = (sc_timer_wdog_time_t)RPC_U32(&msg, 4U); + } + if (enb != NULL) { + *enb = (sc_bool_t)U2B(RPC_U8(&msg, 8U)); + } - return (sc_err_t)result; + return err; } -sc_err_t sc_timer_set_wdog_action(sc_ipc_t ipc, - sc_rm_pt_t pt, sc_timer_wdog_action_t action) +sc_err_t sc_timer_set_wdog_action(sc_ipc_t ipc, sc_rm_pt_t pt, + sc_timer_wdog_action_t action) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_WDOG_ACTION; - RPC_U8(&msg, 0U) = (uint8_t)pt; - RPC_U8(&msg, 1U) = (uint8_t)action; RPC_SIZE(&msg) = 2U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_WDOG_ACTION); + + RPC_U8(&msg, 0U) = U8(pt); + RPC_U8(&msg, 1U) = U8(action); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_set_rtc_time(sc_ipc_t ipc, uint16_t year, uint8_t mon, @@ -193,23 +207,25 @@ sc_err_t sc_timer_set_rtc_time(sc_ipc_t ipc, uint16_t year, uint8_t mon, uint8_t sec) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_RTC_TIME; - RPC_U16(&msg, 0U) = (uint16_t)year; - RPC_U8(&msg, 2U) = (uint8_t)mon; - RPC_U8(&msg, 3U) = (uint8_t)day; - RPC_U8(&msg, 4U) = (uint8_t)hour; - RPC_U8(&msg, 5U) = (uint8_t)min; - RPC_U8(&msg, 6U) = (uint8_t)sec; RPC_SIZE(&msg) = 3U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_RTC_TIME); + + RPC_U16(&msg, 0U) = U16(year); + RPC_U8(&msg, 2U) = U8(mon); + RPC_U8(&msg, 3U) = U8(day); + RPC_U8(&msg, 4U) = U8(hour); + RPC_U8(&msg, 5U) = U8(min); + RPC_U8(&msg, 6U) = U8(sec); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_get_rtc_time(sc_ipc_t ipc, uint16_t *year, uint8_t *mon, @@ -217,54 +233,58 @@ sc_err_t sc_timer_get_rtc_time(sc_ipc_t ipc, uint16_t *year, uint8_t *mon, uint8_t *sec) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_GET_RTC_TIME; RPC_SIZE(&msg) = 1U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_GET_RTC_TIME); sc_call_rpc(ipc, &msg, SC_FALSE); - if (year != NULL) - *year = RPC_U16(&msg, 0U); - - result = RPC_R8(&msg); - if (mon != NULL) - *mon = RPC_U8(&msg, 2U); - - if (day != NULL) - *day = RPC_U8(&msg, 3U); - - if (hour != NULL) - *hour = RPC_U8(&msg, 4U); - - if (min != NULL) - *min = RPC_U8(&msg, 5U); - - if (sec != NULL) - *sec = RPC_U8(&msg, 6U); - - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + if (year != NULL) { + *year = (uint16_t)RPC_U16(&msg, 0U); + } + if (mon != NULL) { + *mon = (uint8_t)RPC_U8(&msg, 2U); + } + if (day != NULL) { + *day = (uint8_t)RPC_U8(&msg, 3U); + } + if (hour != NULL) { + *hour = (uint8_t)RPC_U8(&msg, 4U); + } + if (min != NULL) { + *min = (uint8_t)RPC_U8(&msg, 5U); + } + if (sec != NULL) { + *sec = (uint8_t)RPC_U8(&msg, 6U); + } + + return err; } sc_err_t sc_timer_get_rtc_sec1970(sc_ipc_t ipc, uint32_t *sec) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_GET_RTC_SEC1970; RPC_SIZE(&msg) = 1U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_GET_RTC_SEC1970); sc_call_rpc(ipc, &msg, SC_FALSE); - if (sec != NULL) - *sec = RPC_U32(&msg, 0U); + err = (sc_err_t)RPC_R8(&msg); - result = RPC_R8(&msg); - return (sc_err_t)result; + if (sec != NULL) { + *sec = (uint32_t)RPC_U32(&msg, 0U); + } + + return err; } sc_err_t sc_timer_set_rtc_alarm(sc_ipc_t ipc, uint16_t year, uint8_t mon, @@ -272,125 +292,137 @@ sc_err_t sc_timer_set_rtc_alarm(sc_ipc_t ipc, uint16_t year, uint8_t mon, uint8_t sec) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_RTC_ALARM; - RPC_U16(&msg, 0U) = (uint16_t)year; - RPC_U8(&msg, 2U) = (uint8_t)mon; - RPC_U8(&msg, 3U) = (uint8_t)day; - RPC_U8(&msg, 4U) = (uint8_t)hour; - RPC_U8(&msg, 5U) = (uint8_t)min; - RPC_U8(&msg, 6U) = (uint8_t)sec; RPC_SIZE(&msg) = 3U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_RTC_ALARM); + + RPC_U16(&msg, 0U) = U16(year); + RPC_U8(&msg, 2U) = U8(mon); + RPC_U8(&msg, 3U) = U8(day); + RPC_U8(&msg, 4U) = U8(hour); + RPC_U8(&msg, 5U) = U8(min); + RPC_U8(&msg, 6U) = U8(sec); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_set_rtc_periodic_alarm(sc_ipc_t ipc, uint32_t sec) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_RTC_PERIODIC_ALARM; - RPC_U32(&msg, 0U) = (uint32_t)sec; RPC_SIZE(&msg) = 2U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_RTC_PERIODIC_ALARM); + + RPC_U32(&msg, 0U) = U32(sec); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_cancel_rtc_alarm(sc_ipc_t ipc) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_CANCEL_RTC_ALARM; RPC_SIZE(&msg) = 1U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_CANCEL_RTC_ALARM); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_set_rtc_calb(sc_ipc_t ipc, int8_t count) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_RTC_CALB; - RPC_I8(&msg, 0U) = (int8_t) count; RPC_SIZE(&msg) = 2U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_RTC_CALB); + + RPC_I8(&msg, 0U) = I8(count); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_set_sysctr_alarm(sc_ipc_t ipc, uint64_t ticks) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_SYSCTR_ALARM; - RPC_U32(&msg, 0U) = (uint32_t)(ticks >> 32U); - RPC_U32(&msg, 4U) = (uint32_t)ticks; RPC_SIZE(&msg) = 3U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_SYSCTR_ALARM); + + RPC_U32(&msg, 0U) = U32(ticks >> 32ULL); + RPC_U32(&msg, 4U) = U32(ticks); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_set_sysctr_periodic_alarm(sc_ipc_t ipc, uint64_t ticks) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_SET_SYSCTR_PERIODIC_ALARM; - RPC_U32(&msg, 0U) = (uint32_t)(ticks >> 32U); - RPC_U32(&msg, 4U) = (uint32_t)ticks; RPC_SIZE(&msg) = 3U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_SET_SYSCTR_PERIODIC_ALARM); + + RPC_U32(&msg, 0U) = U32(ticks >> 32ULL); + RPC_U32(&msg, 4U) = U32(ticks); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } sc_err_t sc_timer_cancel_sysctr_alarm(sc_ipc_t ipc) { sc_rpc_msg_t msg; - uint8_t result; + sc_err_t err; RPC_VER(&msg) = SC_RPC_VERSION; - RPC_SVC(&msg) = (uint8_t)SC_RPC_SVC_TIMER; - RPC_FUNC(&msg) = (uint8_t)TIMER_FUNC_CANCEL_SYSCTR_ALARM; RPC_SIZE(&msg) = 1U; + RPC_SVC(&msg) = U8(SC_RPC_SVC_TIMER); + RPC_FUNC(&msg) = U8(TIMER_FUNC_CANCEL_SYSCTR_ALARM); sc_call_rpc(ipc, &msg, SC_FALSE); - result = RPC_R8(&msg); - return (sc_err_t)result; + err = (sc_err_t)RPC_R8(&msg); + + return err; } /**@}*/ |