1 // Copyright (C) 2022 Beken Corporation 2 // 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 #include "sys_hal.h" 16 #include "sys_driver.h" 17 #include "sys_driver_common.h" 18 19 /** BT Start **/ 20 //BT 21 22 //CMD_SCTRL_MCLK_MUX_GET sys_drv_mclk_mux_get(void)23uint32_t sys_drv_mclk_mux_get(void) 24 { 25 uint32_t ret = 0; 26 uint32_t int_level = rtos_disable_int(); 27 28 ret = sys_hal_mclk_mux_get(); 29 rtos_enable_int(int_level); 30 31 return ret; 32 } 33 34 //CMD_SCTRL_MCLK_DIV_GET sys_drv_mclk_div_get(void)35uint32_t sys_drv_mclk_div_get(void) 36 { 37 uint32_t ret = 0; 38 uint32_t int_level = rtos_disable_int(); 39 40 ret = sys_hal_mclk_div_get(); 41 rtos_enable_int(int_level); 42 43 return ret; 44 } 45 46 // CMD_SCTRL_MCLK_SELECT sys_drv_mclk_select(uint32_t value)47void sys_drv_mclk_select(uint32_t value) 48 { 49 uint32_t int_level = rtos_disable_int(); 50 51 sys_hal_mclk_select(value); 52 53 rtos_enable_int(int_level); 54 } 55 56 //CMD_SCTRL_MCLK_DIVISION sys_drv_mclk_div_set(uint32_t value)57void sys_drv_mclk_div_set(uint32_t value) 58 { 59 uint32_t int_level = rtos_disable_int(); 60 61 sys_hal_mclk_div_set(value); 62 63 rtos_enable_int(int_level); 64 } 65 66 //CMD_SCTRL_BLE_POWERUP/CMD_SCTRL_BLE_POWERDOWN/CMD_SCTRL_BT_POWERDOWN/CMD_SCTRL_BT_POWERUP sys_drv_bt_power_ctrl(bool power_up)67void sys_drv_bt_power_ctrl(bool power_up) 68 { 69 uint32_t int_level = rtos_disable_int(); 70 uint32_t ret = SYS_DRV_FAILURE; 71 ret = sys_amp_res_acquire(); 72 73 sys_hal_bt_power_ctrl(power_up); 74 75 if(!ret) 76 ret = sys_amp_res_release(); 77 78 rtos_enable_int(int_level); 79 } 80 81 //CMD_TL410_CLK_PWR_UP/CMD_TL410_CLK_PWR_DOWN sys_drv_bt_clock_ctrl(bool en)82void sys_drv_bt_clock_ctrl(bool en) 83 { 84 uint32_t int_level = rtos_disable_int(); 85 uint32_t ret = SYS_DRV_FAILURE; 86 ret = sys_amp_res_acquire(); 87 88 sys_hal_bt_clock_ctrl(en); 89 90 if(!ret) 91 ret = sys_amp_res_release(); 92 93 rtos_enable_int(int_level); 94 } 95 96 //bk7256 add sys_drv_xvr_clock_ctrl(bool en)97void sys_drv_xvr_clock_ctrl(bool en) 98 { 99 uint32_t int_level = rtos_disable_int(); 100 uint32_t ret = SYS_DRV_FAILURE; 101 ret = sys_amp_res_acquire(); 102 103 sys_hal_xvr_clock_ctrl(en); 104 105 if(!ret) 106 ret = sys_amp_res_release(); 107 108 rtos_enable_int(int_level); 109 } 110 111 // CMD_GET_INTR_STATUS sys_drv_interrupt_status_get(void)112uint32_t sys_drv_interrupt_status_get(void) 113 { 114 uint32_t ret = 0; 115 uint32_t int_level = rtos_disable_int(); 116 117 ret = sys_hal_interrupt_status_get(); 118 rtos_enable_int(int_level); 119 120 return ret; 121 } 122 123 // CMD_CLR_INTR_STATUS sys_drv_interrupt_status_set(uint32_t value)124void sys_drv_interrupt_status_set(uint32_t value) 125 { 126 uint32_t int_level = rtos_disable_int(); 127 128 sys_hal_interrupt_status_set(value); 129 130 rtos_enable_int(int_level); 131 } 132 133 // CMD_ICU_INT_ENABLE sys_drv_btdm_interrupt_ctrl(bool en)134void sys_drv_btdm_interrupt_ctrl(bool en) 135 { 136 uint32_t int_level = rtos_disable_int(); 137 138 sys_hal_btdm_interrupt_ctrl(en); 139 140 rtos_enable_int(int_level); 141 } 142 143 // CMD_ICU_INT_ENABLE sys_drv_ble_interrupt_ctrl(bool en)144void sys_drv_ble_interrupt_ctrl(bool en) 145 { 146 uint32_t int_level = rtos_disable_int(); 147 148 sys_hal_ble_interrupt_ctrl(en); 149 150 rtos_enable_int(int_level); 151 } 152 153 // CMD_ICU_INT_ENABLE sys_drv_bt_interrupt_ctrl(bool en)154void sys_drv_bt_interrupt_ctrl(bool en) 155 { 156 uint32_t int_level = rtos_disable_int(); 157 158 sys_hal_bt_interrupt_ctrl(en); 159 160 rtos_enable_int(int_level); 161 } 162 163 // CMD_BLE_RF_BIT_SET/CMD_BLE_RF_BIT_CLR sys_drv_bt_rf_ctrl(bool en)164void sys_drv_bt_rf_ctrl(bool en) 165 { 166 uint32_t int_level = rtos_disable_int(); 167 168 sys_hal_bt_rf_ctrl(en); 169 170 rtos_enable_int(int_level); 171 } 172 173 // CMD_BLE_RF_BIT_GET sys_drv_bt_rf_status_get(void)174uint32_t sys_drv_bt_rf_status_get(void) 175 { 176 uint32_t ret = 0; 177 uint32_t int_level = rtos_disable_int(); 178 179 ret = sys_hal_bt_rf_status_get(); 180 rtos_enable_int(int_level); 181 182 return ret; 183 } 184 sys_drv_bt_sleep_exit_ctrl(bool en)185void sys_drv_bt_sleep_exit_ctrl(bool en) 186 { 187 uint32_t int_level = rtos_disable_int(); 188 189 sys_hal_bt_sleep_exit_ctrl(en); 190 191 rtos_enable_int(int_level); 192 } 193 194 /** BT End **/ 195 196