--- /dev/null
+/******************************************************************************\r
+ *\r
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify it\r
+ * under the terms of version 2 of the GNU General Public License as\r
+ * published by the Free Software Foundation.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but WITHOUT\r
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
+ * more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License along with\r
+ * this program; if not, write to the Free Software Foundation, Inc.,\r
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
+ *\r
+ *\r
+ ******************************************************************************/\r
+ \r
+ #ifndef __HAL_PHY_RF_H__\r
+ #define __HAL_PHY_RF_H__\r
+\r
+#include "phydm_powertracking_ap.h"\r
+#if (RTL8814A_SUPPORT == 1)\r
+#include "rtl8814a/phydm_iqk_8814a.h"\r
+#endif\r
+\r
+#if (RTL8822B_SUPPORT == 1)\r
+#include "rtl8822b/phydm_iqk_8822b.h"\r
+#endif\r
+\r
+#if (RTL8821C_SUPPORT == 1)\r
+#include "rtl8822b/phydm_iqk_8821c.h"\r
+#endif\r
+\r
+typedef enum _PWRTRACK_CONTROL_METHOD {\r
+ BBSWING,\r
+ TXAGC,\r
+ MIX_MODE,\r
+ TSSI_MODE\r
+} PWRTRACK_METHOD;\r
+\r
+typedef VOID (*FuncSetPwr)(PVOID, PWRTRACK_METHOD, u1Byte, u1Byte);\r
+typedef VOID(*FuncIQK)(PVOID, u1Byte, u1Byte, u1Byte);\r
+typedef VOID (*FuncLCK)(PVOID);\r
+ //refine by YuChen for 8814A\r
+typedef VOID (*FuncSwing)(PVOID, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*);\r
+typedef VOID (*FuncSwing8814only)(PVOID, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*);\r
+typedef VOID (*FuncAllSwing)(PVOID, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*, pu1Byte*);\r
+\r
+\r
+typedef struct _TXPWRTRACK_CFG {\r
+ u1Byte SwingTableSize_CCK; \r
+ u1Byte SwingTableSize_OFDM;\r
+ u1Byte Threshold_IQK;\r
+ u1Byte Threshold_DPK; \r
+ u1Byte AverageThermalNum;\r
+ u1Byte RfPathCount;\r
+ u4Byte ThermalRegAddr; \r
+ FuncSetPwr ODM_TxPwrTrackSetPwr;\r
+ FuncIQK DoIQK;\r
+ FuncLCK PHY_LCCalibrate;\r
+ FuncSwing GetDeltaSwingTable;\r
+ FuncSwing8814only GetDeltaSwingTable8814only;\r
+ FuncAllSwing GetDeltaAllSwingTable;\r
+} TXPWRTRACK_CFG, *PTXPWRTRACK_CFG;\r
+\r
+VOID \r
+ConfigureTxpowerTrack(\r
+ IN PVOID pDM_VOID,\r
+ OUT PTXPWRTRACK_CFG pConfig\r
+ );\r
+\r
+\r
+VOID\r
+ODM_TXPowerTrackingCallback_ThermalMeter(\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+ IN PVOID pDM_VOID\r
+#else\r
+ IN PADAPTER Adapter\r
+#endif\r
+ );\r
+\r
+#if (RTL8192E_SUPPORT==1) \r
+VOID\r
+ODM_TXPowerTrackingCallback_ThermalMeter_92E(\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+ IN PVOID pDM_VOID\r
+#else\r
+ IN PADAPTER Adapter\r
+#endif\r
+ );\r
+#endif\r
+\r
+#if (RTL8814A_SUPPORT == 1)\r
+VOID\r
+ODM_TXPowerTrackingCallback_ThermalMeter_JaguarSeries2(\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+ IN PVOID pDM_VOID\r
+#else\r
+ IN PADAPTER Adapter\r
+#endif\r
+ );\r
+\r
+#elif ODM_IC_11AC_SERIES_SUPPORT\r
+VOID\r
+ODM_TXPowerTrackingCallback_ThermalMeter_JaguarSeries(\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+ IN PVOID pDM_VOID\r
+#else\r
+ IN PADAPTER Adapter\r
+#endif\r
+ );\r
+\r
+#elif (RTL8197F_SUPPORT == 1 || RTL8822B_SUPPORT == 1)\r
+VOID\r
+ODM_TXPowerTrackingCallback_ThermalMeter_JaguarSeries3(\r
+#if (DM_ODM_SUPPORT_TYPE & ODM_AP)\r
+ IN PVOID pDM_VOID\r
+#else\r
+ IN PADAPTER Adapter\r
+#endif\r
+ );\r
+\r
+#endif\r
+\r
+#define IS_CCK_RATE(_rate) (ODM_MGN_1M == _rate || _rate == ODM_MGN_2M || _rate == ODM_MGN_5_5M || _rate == ODM_MGN_11M )\r
+\r
+\r
+#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+#define MAX_TOLERANCE 5\r
+#define IQK_DELAY_TIME 1 //ms\r
+\r
+ //\r
+// BB/MAC/RF other monitor API\r
+//\r
+\r
+void PHY_SetMonitorMode8192C(IN PADAPTER pAdapter,\r
+ IN BOOLEAN bEnableMonitorMode );\r
+ \r
+//\r
+// IQ calibrate\r
+//\r
+void \r
+PHY_IQCalibrate_8192C( IN PADAPTER pAdapter, \r
+ IN BOOLEAN bReCovery);\r
+ \r
+//\r
+// LC calibrate\r
+//\r
+void \r
+PHY_LCCalibrate_8192C( IN PADAPTER pAdapter);\r
+\r
+//\r
+// AP calibrate\r
+//\r
+void \r
+PHY_APCalibrate_8192C( IN PADAPTER pAdapter,\r
+ IN s1Byte delta);\r
+#endif\r
+\r
+#define ODM_TARGET_CHNL_NUM_2G_5G 59\r
+\r
+\r
+VOID\r
+ODM_ResetIQKResult(\r
+ IN PVOID pDM_VOID\r
+);\r
+u1Byte \r
+ODM_GetRightChnlPlaceforIQK(\r
+ IN u1Byte chnl\r
+);\r
+\r
+void phydm_rf_init(IN PVOID pDM_VOID);\r
+void phydm_rf_watchdog(IN PVOID pDM_VOID);\r
+ \r
+#endif // #ifndef __HAL_PHY_RF_H__\r
+\r