]> git.karo-electronics.de Git - oswald.git/blob - metawatch/bt_hci.h
Starting to get rid of borrowed code (LcdDisplay, Fonts), integrate
[oswald.git] / metawatch / bt_hci.h
1 #ifndef _BT_HCI_H
2 #define _BT_HCI_H
3
4 /* HCI Command OGF */
5 #define HCI_LINK_CTRL_OGF               0x01
6 #define HCI_LINK_POLICY_OGF             0x02
7 #define HCI_HC_BB_OGF                   0x03
8 #define HCI_INFO_PARAM_OGF              0x04
9
10 /* HCI Command OCF */
11 #define HCI_DISCONN_OCF                 0x06
12 #define HCI_ACCEPT_CONN_REQ_OCF         0x09
13 #define HCI_RESET_OCF                   0x03
14 #define HCI_W_SCAN_EN_OCF               0x1A
15 #define HCI_R_COD_OCF                   0x23
16 #define HCI_W_COD_OCF                   0x24
17 #define HCI_H_BUF_SIZE_OCF              0x33
18 #define HCI_H_NUM_COMPL_OCF             0x35
19 #define HCI_R_BUF_SIZE_OCF              0x05
20 #define HCI_R_BD_ADDR_OCF               0x09
21 #define HCI_W_LOCAL_NAME_OCF            0x13
22 #define HCI_PIN_CODE_REQ_REP_OCF        0x0D
23 #define HCI_R_STORED_LINK_KEY_OCF       0x0D
24 #define HCI_W_STORED_LINK_KEY_OCF       0x11
25 #define HCI_LINK_KEY_REQ_REP_OCF        0x0B
26
27 #define HCI_COMMAND_PACKET              0x01
28 #define HCI_ACL_DATA_PACKET             0x02
29 #define HCI_SCO_DATA_PACKET             0x03
30 #define HCI_EVENT_PACKET                0x04
31
32 #define HCI_EVENT_INQUIRY_COMPLETE                              0x01
33 #define HCI_EVENT_INQUIRY_RESULT                                0x02
34 #define HCI_EVENT_CONNECTION_COMPLETE                           0x03
35 #define HCI_EVENT_CONNECTION_REQUEST                            0x04
36 #define HCI_EVENT_DISCONNECTION_COMPLETE                        0x05
37 #define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT                 0x06
38 #define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE                  0x07
39 #define HCI_EVENT_ENCRYPTION_CHANGE                             0x08
40 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE           0x09
41 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE                      0x0A
42 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE       0x0B
43 #define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE      0x0C
44 #define HCI_EVENT_QOS_SETUP_COMPLETE                            0x0D
45 #define HCI_EVENT_COMMAND_COMPLETE                              0x0E
46 #define HCI_EVENT_COMMAND_STATUS                                0x0F
47 #define HCI_EVENT_HARDWARE_ERROR                                0x10
48 #define HCI_EVENT_FLUSH_OCCURED                                 0x11
49 #define HCI_EVENT_ROLE_CHANGE                                   0x12
50 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS                   0x13
51 #define HCI_EVENT_MODE_CHANGE_EVENT                             0x14
52 #define HCI_EVENT_RETURN_LINK_KEYS                              0x15
53 #define HCI_EVENT_PIN_CODE_REQUEST                              0x16
54 #define HCI_EVENT_LINK_KEY_REQUEST                              0x17
55 #define HCI_EVENT_LINK_KEY_NOTIFICATION                         0x18
56 #define HCI_EVENT_DATA_BUFFER_OVERFLOW                          0x1A
57 #define HCI_EVENT_MAX_SLOTS_CHANGED                             0x1B
58 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE                    0x1C
59 #define HCI_EVENT_PACKET_TYPE_CHANGED                           0x1D
60 #define HCI_EVENT_PAGE_SCAN_REPETION_MODE_CHANGE                0x20
61 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI                      0x22
62 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE                     0x2F
63 #define HCI_EVENT_LE_META                                       0x3E
64 #define HCI_EVENT_VENDOR_SPECIFIC                               0xFF
65
66 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE                     0x01
67 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT                      0x02
68 #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE              0x03
69 #define HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE      0x04
70 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST                   0x05
71
72 #define HCI_LINK_TYPE_SCO       0x00
73 #define HCI_LINK_TYPE_ACL       0x01
74 #define HCI_LINK_TYPE_ESCO      0x02
75
76 #define HCI_BB_SCAN_NOSCAN      0x00
77 #define HCI_BB_SCAN_INQUIRY     0x01
78 #define HCI_BB_SCAN_PAGE        0x02
79
80 /* CC256x specific eHCILL */
81 #define EHCILL_GO_TO_SLEEP_IND          0x30
82 #define EHCILL_GO_TO_SLEEP_ACK          0x31
83 #define EHCILL_WAKE_UP_IND              0x32
84 #define EHCILL_WAKE_UP_ACK              0x33
85
86 #define BT_PIN "4312"
87
88 void bt_hci_init(void);
89 void bt_hci_cmd(const uint8_t OGF, const uint8_t OCF, const uint8_t data_len, const void *data);
90 void bt_acl_send(const uint16_t handle, const uint8_t PB, const uint8_t BC, const uint16_t channel, const uint16_t len, const void *dat);
91 uint8_t *bt_hci_get_local_bdaddr(void);
92 void bt_hci_ehcill_wake(void);
93 #endif
94