• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Chipsea Technologies (Shenzhen) Corp., Ltd. All rights reserved.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef _CS_BT_AON_SRAM_H
16 #define _CS_BT_AON_SRAM_H
17 
18 #ifdef CFG_AON
19 
20 enum host_deepsleep_status {
21     // CPU need powerdown
22     POWER_ALIVE  = 0,
23     // CPU no need powerdown
24     POWER_DOWN = 1,
25 };
26 
27 enum host_aon_sram_id {
28     HOST_AON_ID_BT,
29 #ifndef CFG_BLE_ONLY
30     HOST_AON_ID_CMGR,
31     HOST_AON_ID_AVDEV,
32     HOST_AON_ID_A2DP,
33     HOST_AON_ID_AVRCP,
34     HOST_AON_ID_AVCTP,
35     HOST_AON_ID_HF,
36     HOST_AON_ID_AVDTP,
37     HOST_AON_ID_APP_BT_DEVICE,
38     HOST_AON_ID_TWS,
39     HOST_AON_ID_HOST_STATIC,
40 #endif
41 #ifdef CFG_BLE_STACK
42     //HOST_AON_ID_BLE_PARAM,
43     HOST_AON_ID_BLE_KE_TASK_ENV,
44     HOST_AON_ID_BLE_KE_ENV,
45     //HOST_AON_ID_BLE_APP_ENV,
46     HOST_AON_ID_BLE_KE_EVENT,
47     HOST_AON_ID_BLE_GAPM,
48     //HOST_AON_ID_BLE_PRF_ENV,
49     HOST_AON_ID_BLE_GATTM,
50     HOST_AON_ID_BLE_L2CM,
51 #endif
52     HOST_AON_ID_NUM,
53 };
54 
55 enum app_aon_sram_id {
56     APP_AON_ID_APP_STATIC,
57     APP_AON_ID_NUM,
58 };
59 
60 //extern HOST_AON_STRUCT *host_aon;
61 /*
62  * FUNCTION DECLARATIONS
63  ****************************************************************************************
64  */
65 extern void pm_bt_save(void);
66 extern void pm_bt_restore(void);
67 
68 #ifndef CFG_BLE_ONLY
69 extern void pm_cmgr_save(void);
70 extern void pm_cmgr_restore(void);
71 
72 extern void pm_avdev_save(void);
73 extern void pm_avdev_restore(void);
74 
75 extern void pm_a2dp_save(void);
76 extern void pm_a2dp_restore(void);
77 
78 extern void pm_avrcp_save(void);
79 extern void pm_avrcp_restore(void);
80 
81 extern void pm_avctp_save(void);
82 extern void pm_avctp_restore(void);
83 
84 extern void pm_hf_save(void);
85 extern void pm_hf_restore(void);
86 
87 extern void pm_avdtp_save(void);
88 extern void pm_avdtp_restore(void);
89 
90 extern void pm_app_bt_dev_t_save(void);
91 extern void pm_app_bt_dev_t_restore(void);
92 
93 extern void pm_tws_save(void);
94 extern void pm_tws_restore(void);
95 
96 extern void pm_host_static_save(void);
97 extern void pm_host_static_restore(void);
98 #endif
99 
100 extern void pm_app_static_save(void *aon_app_static);
101 extern void pm_app_static_restore(void *aon_app_static);
102 
103 #ifdef CFG_BLE_STACK
104 extern void pm_ble_ke_task_env_save(void);
105 extern void pm_ble_ke_task_env_restore(void);
106 
107 extern void pm_ble_ke_env_save(void);
108 extern void pm_ble_ke_env_restore(void);
109 
110 extern void pm_ble_ke_event_env_save(void);
111 extern void pm_ble_ke_event_env_restore(void);
112 
113 extern void pm_ble_gapm_env_save(void);
114 extern void pm_ble_gapm_env_restore(void);
115 
116 extern void pm_ble_gattm_env_save(void);
117 extern void pm_ble_gattm_env_restore(void);
118 
119 extern void pm_ble_l2cm_env_save(void);
120 extern void pm_ble_l2cm_env_restore(void);
121 #endif
122 
123 void host_aon_sram_hi_mux_to_cpu_sys(void);
124 void host_aon_sram_hi_mux_to_aon(void);
125 void host_aon_sram_init(void);
126 void host_aon_sram_save(enum host_aon_sram_id id);
127 void host_aon_sram_restore(enum host_aon_sram_id id);
128 void host_aon_sram_save_all(void);
129 bool host_aon_sram_restore_all(void);
130 uint32_t host_power_on_mode(void);
131 void host_aon_deepsleep_status_set(enum host_deepsleep_status mode);
132 enum host_deepsleep_status host_aon_deepsleep_status_get(void);
133 bool aon_sram_hi_using_by_aon_get(void);
134 void cpup_ready_set(bool ready);
135 void aon_power_on_cpup_set(bool power_on);
136 bool aon_power_on_cpup_get(void);
137 void aon_power_on_cpus_req_set(bool power_on);
138 bool aon_power_on_cpus_req_get(void);
139 void host_aon_interface_init(void);
140 
141 #endif
142 #endif // _CS_BT_AON_SRAM_H
143