1 /**
2  * Copyright (c) 2017, Realsil Semiconductor Corporation. All rights reserved.
3  *
4  */
5 #ifndef _HCI_PROCESS_H_
6 #define _HCI_PROCESS_H_
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #include <stdio.h>
13 #include <string.h>
14 #include <stdbool.h>
15 
16 typedef struct _HCI_PROCESS_TABLE_{
17     uint16_t    opcode;
18     uint8_t     (*start_pro)(void);
19     uint8_t     (*check_func)(uint8_t len,uint8_t *p_buf);
20 }HCI_PROCESS_TABLE, *PHCI_PROCESS_TABLE;
21 
22 typedef struct
23 {
24     uint32_t    bt_baudrate;
25     uint32_t    uart_baudrate;
26 } BAUDRATE_MAP;
27 
28 #define HCI_TP_CHECK_ERROR        0xFF
29 #define HCI_TP_CONFIG_END         0x01
30 #define HCI_TP_CONFIG_FAIL        0x02
31 #define HCI_TP_CHECK_OK           0x00
32 #define HCI_TP_CHECK_AGAIN        0x03
33 
34 #define HCI_TP_NOT_SEND        0x04
35 
36 #define HCI_COMMAND_COMPLETE            0x0e
37 #define HCI_COMMAND_STATUS              0x0f
38 #define HCI_CMD_PKT             0x01
39 #define HCI_ACL_PKT             0x02
40 #define HCI_SCO_PKT             0x03
41 #define HCI_EVT_PKT             0x04
42 #define HCI_CMD_HDR_LEN         4   /* packet type (1), command (2), length (1) */
43 
44 #define HCI_READ_LOCAL_VERSION_INFO     0x1001
45 #define HCI_VSC_READ_ROM_VERSION        0xFC6D
46 #define HCI_VSC_UPDATE_BAUDRATE         0xFC17
47 #define HCI_VSC_DOWNLOAD_PATCH          0xFC20
48 #define HCI_VSC_CHECK_32K                     0xFC02
49 #define HCI_HCI_RESET                             0x0C03
50 #define HCI_VENDOR_RF_RADIO_REG_WRITE     0xfd4a
51 #define HCI_VSC_VENDOR_IQK        0xFD91
52 #define HCI_VSC_READ_THERMAL       0xFC40
53 
54 
55 bool hci_rtk_tx_cb(void);
56 bool hci_adapter_send(uint8_t *p_buf, uint16_t len);
57 
58 bool hci_set_patch(uint8_t *fw_addr,uint32_t fw_len, uint8_t *fw_config_addr, uint32_t
59         fw_config_len, uint32_t baudrate);
60 
61 void reset_iqk_type(void);
62 
63 #ifdef __cplusplus
64 }
65 #endif
66 
67 #endif /* _HCI_PROCESS_H_ */
68