xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8821cs/include/hal_btcoex.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /******************************************************************************
2*4882a593Smuzhiyun  *
3*4882a593Smuzhiyun  * Copyright(c) 2013 - 2017 Realtek Corporation.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * This program is free software; you can redistribute it and/or modify it
6*4882a593Smuzhiyun  * under the terms of version 2 of the GNU General Public License as
7*4882a593Smuzhiyun  * published by the Free Software Foundation.
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  * This program is distributed in the hope that it will be useful, but WITHOUT
10*4882a593Smuzhiyun  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11*4882a593Smuzhiyun  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12*4882a593Smuzhiyun  * more details.
13*4882a593Smuzhiyun  *
14*4882a593Smuzhiyun  *****************************************************************************/
15*4882a593Smuzhiyun #ifndef __HAL_BTCOEX_H__
16*4882a593Smuzhiyun #define __HAL_BTCOEX_H__
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun #include <drv_types.h>
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun /* Some variables can't get from outsrc BT-Coex,
21*4882a593Smuzhiyun  * so we need to save here */
22*4882a593Smuzhiyun typedef struct _BT_COEXIST {
23*4882a593Smuzhiyun 	u8 bBtExist;
24*4882a593Smuzhiyun 	u8 btTotalAntNum;
25*4882a593Smuzhiyun 	u8 btChipType;
26*4882a593Smuzhiyun 	u8 bInitlized;
27*4882a593Smuzhiyun 	u8 btAntisolation;
28*4882a593Smuzhiyun } BT_COEXIST, *PBT_COEXIST;
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun void DBG_BT_INFO(u8 *dbgmsg);
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun void hal_btcoex_SetBTCoexist(PADAPTER padapter, u8 bBtExist);
33*4882a593Smuzhiyun u8 hal_btcoex_IsBtExist(PADAPTER padapter);
34*4882a593Smuzhiyun u8 hal_btcoex_IsBtDisabled(PADAPTER);
35*4882a593Smuzhiyun void hal_btcoex_SetChipType(PADAPTER padapter, u8 chipType);
36*4882a593Smuzhiyun void hal_btcoex_SetPgAntNum(PADAPTER padapter, u8 antNum);
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun u8 hal_btcoex_Initialize(PADAPTER padapter);
39*4882a593Smuzhiyun void hal_btcoex_PowerOnSetting(PADAPTER padapter);
40*4882a593Smuzhiyun void hal_btcoex_AntInfoSetting(PADAPTER padapter);
41*4882a593Smuzhiyun void hal_btcoex_PowerOffSetting(PADAPTER padapter);
42*4882a593Smuzhiyun void hal_btcoex_PreLoadFirmware(PADAPTER padapter);
43*4882a593Smuzhiyun void hal_btcoex_InitHwConfig(PADAPTER padapter, u8 bWifiOnly);
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun void hal_btcoex_IpsNotify(PADAPTER padapter, u8 type);
46*4882a593Smuzhiyun void hal_btcoex_LpsNotify(PADAPTER padapter, u8 type);
47*4882a593Smuzhiyun void hal_btcoex_ScanNotify(PADAPTER padapter, u8 type);
48*4882a593Smuzhiyun void hal_btcoex_ConnectNotify(PADAPTER padapter, u8 action);
49*4882a593Smuzhiyun void hal_btcoex_MediaStatusNotify(PADAPTER padapter, u8 mediaStatus);
50*4882a593Smuzhiyun void hal_btcoex_SpecialPacketNotify(PADAPTER padapter, u8 pktType);
51*4882a593Smuzhiyun void hal_btcoex_IQKNotify(PADAPTER padapter, u8 state);
52*4882a593Smuzhiyun void hal_btcoex_WLRFKNotify(PADAPTER padapter, u8 path, u8 type, u8 state);
53*4882a593Smuzhiyun void hal_btcoex_BtInfoNotify(PADAPTER padapter, u8 length, u8 *tmpBuf);
54*4882a593Smuzhiyun void hal_btcoex_BtMpRptNotify(PADAPTER padapter, u8 length, u8 *tmpBuf);
55*4882a593Smuzhiyun void hal_btcoex_SuspendNotify(PADAPTER padapter, u8 state);
56*4882a593Smuzhiyun void hal_btcoex_HaltNotify(PADAPTER padapter, u8 do_halt);
57*4882a593Smuzhiyun void hal_btcoex_SwitchBtTRxMask(PADAPTER padapter);
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun void hal_btcoex_Hanlder(PADAPTER padapter);
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun s32 hal_btcoex_IsBTCoexRejectAMPDU(PADAPTER padapter);
62*4882a593Smuzhiyun s32 hal_btcoex_IsBTCoexCtrlAMPDUSize(PADAPTER padapter);
63*4882a593Smuzhiyun u32 hal_btcoex_GetAMPDUSize(PADAPTER padapter);
64*4882a593Smuzhiyun void hal_btcoex_SetManualControl(PADAPTER padapter, u8 bmanual);
65*4882a593Smuzhiyun void hal_btcoex_set_policy_control(PADAPTER padapter, u8 btc_policy);
66*4882a593Smuzhiyun u8 hal_btcoex_1Ant(PADAPTER padapter);
67*4882a593Smuzhiyun u8 hal_btcoex_IsBtControlLps(PADAPTER);
68*4882a593Smuzhiyun u8 hal_btcoex_IsLpsOn(PADAPTER);
69*4882a593Smuzhiyun u8 hal_btcoex_RpwmVal(PADAPTER);
70*4882a593Smuzhiyun u8 hal_btcoex_LpsVal(PADAPTER);
71*4882a593Smuzhiyun u32 hal_btcoex_GetRaMask(PADAPTER);
72*4882a593Smuzhiyun u8 hal_btcoex_query_reduced_wl_pwr_lvl(PADAPTER padapter);
73*4882a593Smuzhiyun void hal_btcoex_set_reduced_wl_pwr_lvl(PADAPTER padapter, u8 val);
74*4882a593Smuzhiyun void hal_btcoex_do_reduce_wl_pwr_lvl(PADAPTER padapter);
75*4882a593Smuzhiyun void hal_btcoex_RecordPwrMode(PADAPTER padapter, u8 *pCmdBuf, u8 cmdLen);
76*4882a593Smuzhiyun void hal_btcoex_DisplayBtCoexInfo(PADAPTER, u8 *pbuf, u32 bufsize);
77*4882a593Smuzhiyun void hal_btcoex_SetDBG(PADAPTER, u32 *pDbgModule);
78*4882a593Smuzhiyun u32 hal_btcoex_GetDBG(PADAPTER, u8 *pStrBuf, u32 bufSize);
79*4882a593Smuzhiyun u8 hal_btcoex_IncreaseScanDeviceNum(PADAPTER);
80*4882a593Smuzhiyun u8 hal_btcoex_IsBtLinkExist(PADAPTER);
81*4882a593Smuzhiyun void hal_btcoex_SetBtPatchVersion(PADAPTER, u16 btHciVer, u16 btPatchVer);
82*4882a593Smuzhiyun void hal_btcoex_SetHciVersion(PADAPTER, u16 hciVersion);
83*4882a593Smuzhiyun void hal_btcoex_SendScanNotify(PADAPTER, u8 type);
84*4882a593Smuzhiyun void hal_btcoex_StackUpdateProfileInfo(void);
85*4882a593Smuzhiyun void hal_btcoex_pta_off_on_notify(PADAPTER padapter, u8 bBTON);
86*4882a593Smuzhiyun void hal_btcoex_SetAntIsolationType(PADAPTER padapter, u8 anttype);
87*4882a593Smuzhiyun #ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE
88*4882a593Smuzhiyun 	int hal_btcoex_AntIsolationConfig_ParaFile(PADAPTER	Adapter, char *pFileName);
89*4882a593Smuzhiyun 	int hal_btcoex_ParseAntIsolationConfigFile(PADAPTER Adapter, char	*buffer);
90*4882a593Smuzhiyun #endif /* CONFIG_LOAD_PHY_PARA_FROM_FILE */
91*4882a593Smuzhiyun u16 hal_btcoex_btreg_read(PADAPTER padapter, u8 type, u16 addr, u32 *data);
92*4882a593Smuzhiyun u16 hal_btcoex_btreg_write(PADAPTER padapter, u8 type, u16 addr, u16 val);
93*4882a593Smuzhiyun void hal_btcoex_set_rfe_type(u8 type);
94*4882a593Smuzhiyun void hal_btcoex_switchband_notify(u8 under_scan, u8 band_type);
95*4882a593Smuzhiyun void hal_btcoex_WlFwDbgInfoNotify(PADAPTER padapter, u8* tmpBuf, u8 length);
96*4882a593Smuzhiyun void hal_btcoex_rx_rate_change_notify(PADAPTER padapter, u8 is_data_frame, u8 rate_id);
97*4882a593Smuzhiyun u16 hal_btcoex_btset_testode(PADAPTER padapter, u8 type);
98*4882a593Smuzhiyun 
99*4882a593Smuzhiyun #ifdef CONFIG_RF4CE_COEXIST
100*4882a593Smuzhiyun void hal_btcoex_set_rf4ce_link_state(u8 state);
101*4882a593Smuzhiyun u8 hal_btcoex_get_rf4ce_link_state(void);
102*4882a593Smuzhiyun #endif
103*4882a593Smuzhiyun 
104*4882a593Smuzhiyun #ifdef CONFIG_SDIO_HCI
105*4882a593Smuzhiyun #include <hal_sdio_coex.h>	/* sdio multi coex */
106*4882a593Smuzhiyun #endif
107*4882a593Smuzhiyun 
108*4882a593Smuzhiyun #endif /* !__HAL_BTCOEX_H__ */
109