• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)23 uint32_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)35 uint32_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)47 void 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)57 void 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)67 void 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)82 void 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)97 void 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)112 uint32_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)124 void 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)134 void 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)144 void 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)154 void 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)164 void 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)174 uint32_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)185 void 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