blob: 3f1ce7fd12adc22910f4daf194669b4214314acd [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#ifndef RAKE_API_PUBLIC_H
2#define RAKE_API_PUBLIC_H
3
4#if defined(__MD97__) || defined(__MD97P__)
5#include "dsp_module_based_api_public.h"
6#else //defined(__MD97__)
7
8#include "dsp_control_public.h"
9
10/***************************************************************/
11/********* Enum for BootDoneCheck Return Value *************/
12/***************************************************************/
13typedef enum{
14 RAKE_NOTYETDONE,
15 RAKE_BOOTDONE,
16 RAKE_NOT_DEACTIVEDONE,
17 RAKE_DEACTIVEDONE
18}RAKE_BOOTDONECHECK_RETVALUE;
19
20#define RAKE_NOT_ACTIVEDONE RAKE_NOTYETDONE
21#define RAKE_ACTIVEDONE RAKE_BOOTDONE
22
23/***************************************************************/
24/********* Function Prototype **********************************/
25/***************************************************************/
26extern RAKE_BOOTDONECHECK_RETVALUE RAKE_BootDoneCheck(RAKE_API_USER);
27
28/* Common API */
29extern DSP_CONTROL_IDLE_FLAG_STATUS rake_check_idle_flag(RAKE_API_USER);
30extern kal_uint32 rake_ddl_check_idle_flag_bitmap(kal_uint32);
31extern kal_bool is_myself_duty_rat(DSP_CDIF_CORE_ENUM, kal_uint32);
32extern kal_uint32 return_dutyrat_of_thread(DSP_CDIF_CORE_ENUM);
33extern void firstboot_activate(DSP_CDIF_CORE_ENUM, kal_uint32);
34
35/* Activate Relatives */
36extern void rake_activate(RAKE_API_USER);
37
38/* Deactivate Relatives */
39extern void rake_deactivate(RAKE_API_USER, CMIFZI_CTRL);
40extern RAKE_CONTROL_STATUS rake_deactive_done_check(RAKE_API_USER);
41
42/* DDL Relatives */
43extern void rake_ddl_start(RAKE_API_USER , DDL_MODE);
44extern void rake_ddl_status_mode_query(DDL_STATUS*, DDL_MODE*);
45extern kal_bool ddl_check_all_target_user_are_deactive(DSP_CDIF_CORE_ENUM);
46extern kal_bool ddl_has_rake_user_call_deactivate(kal_uint32);
47extern kal_uint32 dsp_check_ddl_user_status(DSP_CDIF_CORE_ENUM, kal_uint32);
48
49/***************************************************************/
50/********* Function Definition *********************************/
51/***************************************************************/
52/***** Sleep Flow APIs for user *****/
53/* FirstBoot API */
54#define topsm_return_dutyrat_of_rake firstboot_topsm_query(DSP_CONTROL_RAKE)
55
56#define is_myself_duty_user_of_rake(user_id) is_myself_duty_rat(DSP_CONTROL_RAKE, user_id)
57/* First Boot Activate Use */
58#define rake_firstboot_activate(user_id) firstboot_activate(DSP_CONTROL_RAKE, user_id)
59
60/* Check idle APIs */
61#define rake_check_ddl_user_status(user_bitmap) dsp_check_ddl_user_status(DSP_CONTROL_RAKE, user_bitmap)
62#define dsp_rake_check_idle_flag(user_id) rake_check_idle_flag(user_id)
63
64/* Activate APIs*/
65#define dsp_rake_activate(user_id) rake_activate(user_id)
66
67/* Activate check APIs */
68#define dsp_rake_done_check(user_id) RAKE_BootDoneCheck(user_id)
69#define dsp_rake_active_done_check(user_id) RAKE_BootDoneCheck(user_id)
70
71/* Deactivate APIs */
72#define dsp_rake_deactivate(user_id) rake_deactivate(user_id, CMIFZI_EN)
73#define dsp_rake_deactivate_wo_cmifzi(user_id) rake_deactivate(user_id, CMIFZI_DIS)
74
75/* Deactivate check APIs */
76#define dsp_rake_deactive_done_check(user_id) rake_deactive_done_check(user_id)
77
78/***** DDL Flow APIs for user *****/
79// DDL check if RAKE is deactive
80#define ddl_l2tcm_is_rake_deactive() ddl_check_all_target_user_are_deactive(DSP_CONTROL_RAKE)
81
82// Trigger DDL
83#define dsp_rake_ddl_start(user_id, bin_mode) rake_ddl_start(user_id, bin_mode)
84
85// Check rake DDL mode/status
86#define dsp_rake_ddl_status_mode_query(status, bin_mode) rake_ddl_status_mode_query(status, bin_mode)
87
88#endif //defined(__MD97__)
89#endif /* RAKE_API_PUBLIC_H */