Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /* Copyright(c) 2009-2012  Realtek Corporation.*/
0003 
0004 #ifndef __RTL8723E_HAL_BTC_H__
0005 #define __RTL8723E_HAL_BTC_H__
0006 
0007 #include "../wifi.h"
0008 #include "btc.h"
0009 #include "hal_bt_coexist.h"
0010 
0011 #define BT_TXRX_CNT_THRES_1         1200
0012 #define BT_TXRX_CNT_THRES_2         1400
0013 #define BT_TXRX_CNT_THRES_3         3000
0014 /* < 1200 */
0015 #define BT_TXRX_CNT_LEVEL_0         0
0016 /* >= 1200 && < 1400 */
0017 #define BT_TXRX_CNT_LEVEL_1         1
0018 /* >= 1400 */
0019 #define BT_TXRX_CNT_LEVEL_2         2
0020 #define BT_TXRX_CNT_LEVEL_3         3
0021 
0022 #define BT_COEX_DISABLE         0
0023 #define BT_Q_PKT_OFF            0
0024 #define BT_Q_PKT_ON         1
0025 
0026 #define BT_TX_PWR_OFF           0
0027 #define BT_TX_PWR_ON            1
0028 
0029 /* TDMA mode definition */
0030 #define TDMA_2ANT           0
0031 #define TDMA_1ANT           1
0032 #define TDMA_NAV_OFF            0
0033 #define TDMA_NAV_ON         1
0034 #define TDMA_DAC_SWING_OFF      0
0035 #define TDMA_DAC_SWING_ON       1
0036 
0037 /* PTA mode related definition */
0038 #define BT_PTA_MODE_OFF     0
0039 #define BT_PTA_MODE_ON      1
0040 
0041 /* Penalty Tx Rate Adaptive */
0042 #define BT_TX_RATE_ADAPTIVE_NORMAL  0
0043 #define BT_TX_RATE_ADAPTIVE_LOW_PENALTY 1
0044 
0045 /* RF Corner */
0046 #define BT_RF_RX_LPF_CORNER_RESUME  0
0047 #define BT_RF_RX_LPF_CORNER_SHRINK  1
0048 
0049 #define C2H_EVT_HOST_CLOSE      0x00
0050 #define C2H_EVT_FW_CLOSE        0xFF
0051 
0052 enum bt_traffic_mode {
0053     BT_MOTOR_EXT_BE = 0x00,
0054     BT_MOTOR_EXT_GUL = 0x01,
0055     BT_MOTOR_EXT_GUB = 0x02,
0056     BT_MOTOR_EXT_GULB = 0x03
0057 };
0058 
0059 enum bt_traffic_mode_profile {
0060     BT_PROFILE_NONE,
0061     BT_PROFILE_A2DP,
0062     BT_PROFILE_PAN,
0063     BT_PROFILE_HID,
0064     BT_PROFILE_SCO
0065 };
0066 
0067 /*
0068 enum hci_ext_bt_operation {
0069     HCI_BT_OP_NONE = 0x0,
0070     HCI_BT_OP_INQUIRE_START = 0x1,
0071     HCI_BT_OP_INQUIRE_FINISH = 0x2,
0072     HCI_BT_OP_PAGING_START = 0x3,
0073     HCI_BT_OP_PAGING_SUCCESS = 0x4,
0074     HCI_BT_OP_PAGING_UNSUCCESS = 0x5,
0075     HCI_BT_OP_PAIRING_START = 0x6,
0076     HCI_BT_OP_PAIRING_FINISH = 0x7,
0077     HCI_BT_OP_BT_DEV_ENABLE = 0x8,
0078     HCI_BT_OP_BT_DEV_DISABLE = 0x9,
0079     HCI_BT_OP_MAX,
0080 };
0081 */
0082 
0083 enum bt_spec {
0084     BT_SPEC_1_0_b = 0x00,
0085     BT_SPEC_1_1 = 0x01,
0086     BT_SPEC_1_2 = 0x02,
0087     BT_SPEC_2_0_EDR = 0x03,
0088     BT_SPEC_2_1_EDR = 0x04,
0089     BT_SPEC_3_0_HS = 0x05,
0090     BT_SPEC_4_0 = 0x06
0091 };
0092 
0093 struct c2h_evt_hdr {
0094     u8 cmd_id;
0095     u8 cmd_len;
0096     u8 cmd_seq;
0097 };
0098 
0099 enum bt_state {
0100     BT_INFO_STATE_DISABLED = 0,
0101     BT_INFO_STATE_NO_CONNECTION = 1,
0102     BT_INFO_STATE_CONNECT_IDLE = 2,
0103     BT_INFO_STATE_INQ_OR_PAG = 3,
0104     BT_INFO_STATE_ACL_ONLY_BUSY = 4,
0105     BT_INFO_STATE_SCO_ONLY_BUSY = 5,
0106     BT_INFO_STATE_ACL_SCO_BUSY = 6,
0107     BT_INFO_STATE_HID_BUSY = 7,
0108     BT_INFO_STATE_HID_SCO_BUSY = 8,
0109     BT_INFO_STATE_MAX = 7
0110 };
0111 
0112 enum rtl8723e_c2h_evt_v0 {
0113     C2H_V0_DBG = 0,
0114     C2H_V0_TSF = 1,
0115     C2H_V0_AP_RPT_RSP = 2,
0116     /* The FW notify the report of the specific tx packet. */
0117     C2H_V0_CCX_TX_RPT = 3,
0118     C2H_V0_BT_RSSI = 4,
0119     C2H_V0_BT_OP_MODE = 5,
0120     C2H_V0_HW_INFO_EXCH = 10,
0121     C2H_V0_C2H_H2C_TEST = 11,
0122     C2H_V0_BT_INFO = 12,
0123     MAX_C2HEVENT
0124 };
0125 
0126 void rtl8723e_dm_bt_fw_coex_all_off_8723a(struct ieee80211_hw *hw);
0127 void rtl8723e_dm_bt_sw_coex_all_off_8723a(struct ieee80211_hw *hw);
0128 void rtl8723e_dm_bt_hw_coex_all_off_8723a(struct ieee80211_hw *hw);
0129 void rtl8723e_dm_bt_coexist_8723(struct ieee80211_hw *hw);
0130 void rtl8723e_dm_bt_set_bt_dm(struct ieee80211_hw *hw,
0131                   struct btdm_8723 *p_btdm);
0132 void rtl_8723e_c2h_command_handle(struct ieee80211_hw *hw);
0133 void rtl_8723e_bt_wifi_media_status_notify(struct ieee80211_hw *hw,
0134                     bool mstatus);
0135 void rtl8723e_dm_bt_turn_off_bt_coexist_before_enter_lps(
0136                 struct ieee80211_hw *hw);
0137 
0138 #endif