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