1 /******************************************************************************
2  * Copyright (c) 2022 Telink Semiconductor (Shanghai) Co., Ltd. ("TELINK")
3  * All rights reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *   http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************/
18 
19 #ifndef B91_BT_H_
20 #define B91_BT_H_
21 
22 /**
23  *  @brief b91_bt_host_callback
24  *  used for vhci call host function to notify what host need to do
25  */
26 typedef struct b91_bt_host_callback {
27     void (*host_send_available)(void);                      /* the host can send packet to the controller */
28     void (*host_read_packet)(uint8_t *data, uint16_t len);  /* the controller has a packet to send to the host */
29 } b91_bt_host_callback_t;
30 
31 /**
32  * @brief register the host reference callback
33  */
34 void b91_bt_host_callback_register(const b91_bt_host_callback_t *callback);
35 
36 /**
37  * @brief     Host send HCI packet to controller
38  * @param     data the packet point
39  * @param     len the packet length
40  */
41 void b91_bt_host_send_packet(uint8_t type, uint8_t *data, uint16_t len);
42 
43 /**
44  * @brief     Telink B91 BLE Controller initialization
45  * @return    Status - 0: command succeeded; -1: command failed
46  */
47 int b91_bt_controller_init(void);
48 
49 #endif /* B91_BT_H_ */
50