1 /******************************************************************************
\r
3 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
\r
5 * This program is free software; you can redistribute it and/or modify it
\r
6 * under the terms of version 2 of the GNU General Public License as
\r
7 * published by the Free Software Foundation.
\r
9 * This program is distributed in the hope that it will be useful, but WITHOUT
\r
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
\r
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
\r
14 * You should have received a copy of the GNU General Public License along with
\r
15 * this program; if not, write to the Free Software Foundation, Inc.,
\r
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
\r
19 ******************************************************************************/
\r
21 #ifndef __HAL_PHY_RF_H__
\r
22 #define __HAL_PHY_RF_H__
\r
24 #include "phydm_kfree.h"
\r
25 #if (RTL8814A_SUPPORT == 1)
\r
26 #include "rtl8814a/phydm_iqk_8814a.h"
\r
29 #if (RTL8822B_SUPPORT == 1)
\r
30 #include "rtl8822b/phydm_iqk_8822b.h"
\r
32 #include "phydm_powertracking_win.h"
\r
34 typedef enum _SPUR_CAL_METHOD {
\r
39 typedef enum _PWRTRACK_CONTROL_METHOD {
\r
46 typedef VOID (*FuncSetPwr)(PDM_ODM_T, PWRTRACK_METHOD, u1Byte, u1Byte);
\r
47 typedef VOID(*FuncIQK)(PVOID, u1Byte, u1Byte, u1Byte);
\r
48 typedef VOID (*FuncLCK)(PDM_ODM_T);
\r
49 //refine by YuChen for 8814A
\r
50 typedef VOID (*FuncSwing)(PDM_ODM_T, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*);
\r
51 typedef VOID (*FuncSwing8814only)(PDM_ODM_T, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*);
\r
53 typedef struct _TXPWRTRACK_CFG {
\r
54 u1Byte SwingTableSize_CCK;
\r
55 u1Byte SwingTableSize_OFDM;
\r
56 u1Byte Threshold_IQK;
\r
57 u1Byte Threshold_DPK;
\r
58 u1Byte AverageThermalNum;
\r
60 u4Byte ThermalRegAddr;
\r
61 FuncSetPwr ODM_TxPwrTrackSetPwr;
\r
63 FuncLCK PHY_LCCalibrate;
\r
64 FuncSwing GetDeltaSwingTable;
\r
65 FuncSwing8814only GetDeltaSwingTable8814only;
\r
66 } TXPWRTRACK_CFG, *PTXPWRTRACK_CFG;
\r
69 ConfigureTxpowerTrack(
\r
70 IN PDM_ODM_T pDM_Odm,
\r
71 OUT PTXPWRTRACK_CFG pConfig
\r
76 ODM_ClearTxPowerTrackingState(
\r
77 IN PDM_ODM_T pDM_Odm
\r
81 ODM_TXPowerTrackingCallback_ThermalMeter(
\r
82 #if (DM_ODM_SUPPORT_TYPE & ODM_AP)
\r
83 IN PDM_ODM_T pDM_Odm
\r
91 #define ODM_TARGET_CHNL_NUM_2G_5G 59
\r
96 IN PDM_ODM_T pDM_Odm
\r
99 ODM_GetRightChnlPlaceforIQK(
\r
103 VOID odm_IQCalibrate(IN PDM_ODM_T pDM_Odm);
\r
104 VOID phydm_rf_init( IN PDM_ODM_T pDM_Odm);
\r
105 VOID phydm_rf_watchdog( IN PDM_ODM_T pDM_Odm);
\r
107 #endif // #ifndef __HAL_PHY_RF_H__
\r