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