net: wireless: rockchip_wlan: add rtl8723bs support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bs / include / hal_pg.h
old mode 100755 (executable)
new mode 100644 (file)
index 9d9911f..ae2f83c
 #ifndef __HAL_PG_H__\r
 #define __HAL_PG_H__\r
 \r
-//====================================================\r
-//                     EEPROM/Efuse PG Offset for 8192 CE/CU\r
-//====================================================\r
-#define EEPROM_VID_92C                                                 0x0A\r
-#define EEPROM_PID_92C                                                 0x0C\r
-#define EEPROM_DID_92C                                                 0x0C \r
-#define EEPROM_SVID_92C                                                0x0E\r
-#define EEPROM_SMID_92C                                                0x10 \r
-#define EEPROM_MAC_ADDR_92C                                    0x16\r
-\r
-#define EEPROM_MAC_ADDR                                                0x16\r
-#define EEPROM_TV_OPTION                                               0x50\r
-#define EEPROM_SUBCUSTOMER_ID_92C                      0x59\r
-#define EEPROM_CCK_TX_PWR_INX                                  0x5A\r
-#define EEPROM_HT40_1S_TX_PWR_INX                      0x60\r
-#define EEPROM_HT40_2S_TX_PWR_INX_DIFF         0x66\r
-#define EEPROM_HT20_TX_PWR_INX_DIFF                    0x69\r
-#define EEPROM_OFDM_TX_PWR_INX_DIFF                    0x6C\r
-#define EEPROM_HT40_MAX_PWR_OFFSET                     0x6F\r
-#define EEPROM_HT20_MAX_PWR_OFFSET                     0x72\r
-#define EEPROM_CHANNEL_PLAN_92C                                0x75\r
-#define EEPROM_TSSI_A                                                  0x76\r
-#define EEPROM_TSSI_B                                                  0x77\r
-#define EEPROM_THERMAL_METER_92C                               0x78\r
-#define EEPROM_RF_OPT1_92C                                     0x79\r
-#define EEPROM_RF_OPT2_92C                                     0x7A\r
-#define EEPROM_RF_OPT3_92C                                     0x7B\r
-#define EEPROM_RF_OPT4_92C                                     0x7C\r
-#define EEPROM_VERSION_92C                                             0x7E\r
-#define EEPROM_CUSTOMER_ID_92C                         0x7F\r
-\r
-#define EEPROM_NORMAL_CHANNEL_PLAN                     0x75\r
-#define EEPROM_NORMAL_BoardType_92C                    EEPROM_RF_OPT1_92C\r
-#define BOARD_TYPE_NORMAL_MASK                         0xE0\r
-#define BOARD_TYPE_TEST_MASK                                   0xF\r
-#define EEPROM_TYPE_ID                                                 0x7E\r
-\r
-// PCIe related\r
-#define        EEPROM_PCIE_DEV_CAP_01                          0xE0 // Express device capability in PCIe configuration space, i.e., map to offset 0x74\r
-#define        EEPROM_PCIE_DEV_CAP_02                          0xE1 // Express device capability in PCIe configuration space, i.e., map to offset 0x75\r
-\r
-// EEPROM address for Test chip\r
-#define EEPROM_TEST_USB_OPT                                    0x0E\r
-\r
-#define EEPROM_EASY_REPLACEMENT                                0x50//BIT0 1 for build-in module, 0 for external dongle\r
+#define PPG_BB_GAIN_2G_TX_OFFSET_MASK  0x0F\r
+#define PPG_BB_GAIN_2G_TXB_OFFSET_MASK 0xF0\r
 \r
-//====================================================\r
-//                     EEPROM/Efuse PG Offset for 8723AE/8723AU/8723AS\r
-//====================================================\r
-#define EEPROM_CCK_TX_PWR_INX_8723A                    0x10\r
-#define EEPROM_HT40_1S_TX_PWR_INX_8723A                0x16\r
-#define EEPROM_HT20_TX_PWR_INX_DIFF_8723A      0x1C\r
-#define EEPROM_OFDM_TX_PWR_INX_DIFF_8723A      0x1F\r
-#define EEPROM_HT40_MAX_PWR_OFFSET_8723A       0x22 \r
-#define EEPROM_HT20_MAX_PWR_OFFSET_8723A       0x25 \r
-\r
-#define EEPROM_ChannelPlan_8723A                               0x28\r
-#define EEPROM_TSSI_A_8723A                                    0x29\r
-#define EEPROM_THERMAL_METER_8723A                     0x2A\r
-#define RF_OPTION1_8723A                                               0x2B\r
-#define RF_OPTION2_8723A                                               0x2C\r
-#define RF_OPTION3_8723A                                               0x2D\r
-#define RF_OPTION4_8723A                                               0x2E\r
-#define EEPROM_VERSION_8723A                                   0x30\r
-#define EEPROM_CustomID_8723A                                  0x31\r
-#define EEPROM_SubCustomID_8723A                               0x32\r
-#define EEPROM_XTAL_K_8723A                                    0x33\r
-#define EEPROM_Chipset_8723A                                   0x34\r
-\r
-\r
-// RTL8723AE\r
-#define EEPROM_VID_8723AE                                              0x49\r
-#define EEPROM_DID_8723AE                                              0x4B\r
-#define EEPROM_SVID_8723AE                                             0x4D\r
-#define EEPROM_SMID_8723AE                                     0x4F\r
-#define EEPROM_MAC_ADDR_8723AE                         0x67\r
-\r
-//RTL8723AU\r
-#define EEPROM_MAC_ADDR_8723AU                         0xC6\r
-#define EEPROM_VID_8723AU                                              0xB7\r
-#define EEPROM_PID_8723AU                                              0xB9\r
-\r
-// RTL8723AS\r
-#define EEPROM_MAC_ADDR_8723AS                         0xAA\r
-\r
-//====================================================\r
-//                     EEPROM/Efuse PG Offset for 8192 DE/DU\r
-//====================================================\r
-// pcie\r
-#define RTL8190_EEPROM_ID                                              0x8129  // 0-1\r
-#define EEPROM_HPON                                                    0x02 // LDO settings.2-5\r
-#define EEPROM_CLK                                                             0x06 // Clock settings.6-7\r
-#define EEPROM_MAC_FUNCTION                                    0x08 // SE Test mode.8\r
-\r
-#define EEPROM_MAC_ADDR_MAC0_92DE                      0x55\r
-#define EEPROM_MAC_ADDR_MAC1_92DE                      0x5B\r
-\r
-//usb\r
-#define EEPROM_ENDPOINT_SETTING                                0x10\r
-#define EEPROM_CHIRP_K                                                 0x12    // Changed\r
-#define EEPROM_USB_PHY                                                 0x13    // Changed\r
-#define EEPROM_STRING                                                  0x1F\r
-#define EEPROM_SUBCUSTOMER_ID_92D                      0x59\r
-\r
-#define EEPROM_MAC_ADDR_MAC0_92DU                      0x19\r
-#define EEPROM_MAC_ADDR_MAC1_92DU                      0x5B\r
-//----------------------------------------------------------------\r
-// 2.4G band Tx power index setting\r
-#define EEPROM_CCK_TX_PWR_INX_2G_92D                                   0x61\r
-#define EEPROM_HT40_1S_TX_PWR_INX_2G_92D                               0x67\r
-#define EEPROM_HT40_2S_TX_PWR_INX_DIFF_2G_92D                  0x6D\r
-#define EEPROM_HT20_TX_PWR_INX_DIFF_2G_92D                             0x70\r
-#define EEPROM_OFDM_TX_PWR_INX_DIFF_2G_92D                             0x73\r
-#define EEPROM_HT40_MAX_PWR_OFFSET_2G_92D                              0x76\r
-#define EEPROM_HT20_MAX_PWR_OFFSET_2G_92D                              0x79\r
-\r
-//5GL channel 32-64\r
-#define EEPROM_HT40_1S_TX_PWR_INX_5GL_92D                              0x7C\r
-#define EEPROM_HT40_2S_TX_PWR_INX_DIFF_5GL_92D                 0x82\r
-#define EEPROM_HT20_TX_PWR_INX_DIFF_5GL_92D                            0x85\r
-#define EEPROM_OFDM_TX_PWR_INX_DIFF_5GL_92D                    0x88\r
-#define EEPROM_HT40_MAX_PWR_OFFSET_5GL_92D                             0x8B\r
-#define EEPROM_HT20_MAX_PWR_OFFSET_5GL_92D                             0x8E\r
-\r
-//5GM channel 100-140\r
-#define EEPROM_HT40_1S_TX_PWR_INX_5GM_92D                              0x91\r
-#define EEPROM_HT40_2S_TX_PWR_INX_DIFF_5GM_92D                 0x97\r
-#define EEPROM_HT20_TX_PWR_INX_DIFF_5GM_92D                    0x9A\r
-#define EEPROM_OFDM_TX_PWR_INX_DIFF_5GM_92D                    0x9D\r
-#define EEPROM_HT40_MAX_PWR_OFFSET_5GM_92D                     0xA0\r
-#define EEPROM_HT20_MAX_PWR_OFFSET_5GM_92D                     0xA3\r
-\r
-//5GH channel 149-165\r
-#define EEPROM_HT40_1S_TX_PWR_INX_5GH_92D                              0xA6\r
-#define EEPROM_HT40_2S_TX_PWR_INX_DIFF_5GH_92D                 0xAC\r
-#define EEPROM_HT20_TX_PWR_INX_DIFF_5GH_92D                    0xAF\r
-#define EEPROM_OFDM_TX_PWR_INX_DIFF_5GH_92D                    0xB2\r
-#define EEPROM_HT40_MAX_PWR_OFFSET_5GH_92D                             0xB5\r
-#define EEPROM_HT20_MAX_PWR_OFFSET_5GH_92D                             0xB8\r
-\r
-\r
-#define EEPROM_CHANNEL_PLAN_92D                                                        0xBB // Map of supported channels.      \r
-#define EEPROM_TEST_CHANNEL_PLAN_92D                                   0xBB\r
-#define EEPROM_THERMAL_METER_92D                                                       0xC3    //[4:0]\r
-#define EEPROM_IQK_DELTA_92D                                                           0xBC\r
-#define EEPROM_LCK_DELTA_92D                                                           0xBC\r
-#define EEPROM_XTAL_K_92D                                                                      0xBD    //[7:5]\r
-#define EEPROM_TSSI_A_5G_92D                                                           0xBE\r
-#define EEPROM_TSSI_B_5G_92D                                                           0xBF\r
-#define EEPROM_TSSI_AB_5G_92D                                                          0xC0\r
-\r
-#define EEPROM_RF_OPT1_92D                                             0xC4\r
-#define EEPROM_RF_OPT2_92D                                             0xC5\r
-#define EEPROM_RF_OPT3_92D                                             0xC6\r
-#define EEPROM_RF_OPT4_92D                                             0xC7\r
-#define EEPROM_RF_OPT5_92D                                             0xC8\r
-#define EEPROM_RF_OPT6_92D                                             0xC9\r
-#define EEPROM_RF_OPT7_92D                                             0xCC\r
-\r
-#define EEPROM_NORMAL_BoardType_92D                            EEPROM_RF_OPT1_92D      //[7:5]\r
-\r
-#define EEPROM_WIDIPAIRING_ADDR                                0xF0\r
-#define EEPROM_WIDIPAIRING_KEY                         0xF6\r
-\r
-#define EEPROM_DEF_PART_NO                                     0x3FD    //Byte\r
-#define EEPROME_CHIP_VERSION_L                         0x3FF\r
-#define EEPROME_CHIP_VERSION_H                         0x3FE\r
-\r
-//----------------------------------------------------------------\r
-\r
-#define EEPROM_VID_92DE                                                0x28\r
-#define EEPROM_PID_92DE                                                0x2A\r
-#define EEPROM_SVID_92DE                                               0x2C\r
-#define EEPROM_SMID_92DE                                               0x2E\r
-#define EEPROM_PATHDIV_92D                                     0xC4\r
-\r
-#define EEPROM_BOARD_OPTIONS_92D                               0xC4\r
-#define EEPROM_5G_LNA_GAIN_92D                         0xC6\r
-#define EEPROM_FEATURE_OPTIONS_92D                     0xC7\r
-#define EEPROM_BT_SETTING_92D                                  0xC8\r
-\r
-#define EEPROM_VERSION_92D                                     0xCA\r
-#define EEPROM_CUSTOMER_ID_92D                         0xCB\r
-\r
-#define EEPROM_VID_92DU                                                0xC\r
-#define EEPROM_PID_92DU                                                0xE\r
+#define PPG_BB_GAIN_5G_TX_OFFSET_MASK  0x1F\r
+#define PPG_THERMAL_OFFSET_MASK                        0x1F\r
+#define KFREE_BB_GAIN_2G_TX_OFFSET(_ppg_v) (((_ppg_v) == PPG_BB_GAIN_2G_TX_OFFSET_MASK) ? 0 : (((_ppg_v) & 0x01) ? ((_ppg_v) >> 1) : (-((_ppg_v) >> 1))))\r
+#define KFREE_BB_GAIN_5G_TX_OFFSET(_ppg_v) (((_ppg_v) == PPG_BB_GAIN_5G_TX_OFFSET_MASK) ? 0 : (((_ppg_v) & 0x01) ? ((_ppg_v) >> 1) : (-((_ppg_v) >> 1))))\r
+#define KFREE_THERMAL_OFFSET(_ppg_v) (((_ppg_v) == PPG_THERMAL_OFFSET_MASK) ? 0 : (((_ppg_v) & 0x01) ? ((_ppg_v) >> 1) : (-((_ppg_v) >> 1))))\r
 \r
 //====================================================\r
 //                     EEPROM/Efuse PG Offset for 88EE/88EU/88ES\r
 #define EEPROM_VERSION_88E                                             0xC4\r
 #define EEPROM_CustomID_88E                                    0xC5\r
 #define EEPROM_RF_ANTENNA_OPT_88E                      0xC9\r
+#define EEPROM_COUNTRY_CODE_88E                                0xCB\r
 \r
 // RTL88EE\r
 #define EEPROM_MAC_ADDR_88EE                                   0xD0\r
 #define EEPROM_MAC_ADDR_88EU                                   0xD7\r
 #define EEPROM_VID_88EU                                                0xD0\r
 #define EEPROM_PID_88EU                                                0xD2\r
-#define EEPROM_USB_OPTIONAL_FUNCTION0          0xD4 //8192EU, 8812AU is the same\r
+#define EEPROM_USB_OPTIONAL_FUNCTION0          0xD4 //8188EU,8192EU, 8812AU is the same\r
 #define EEPROM_USB_OPTIONAL_FUNCTION0_8811AU 0x104\r
 \r
 // RTL88ES\r
 //====================================================\r
 //                     EEPROM/Efuse PG Offset for 8192EE/8192EU/8192ES\r
 //====================================================\r
+#define GET_PG_KFREE_ON_8192E(_pg_m)                   LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC1, 4, 1)\r
+#define GET_PG_KFREE_THERMAL_K_ON_8192E(_pg_m) LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC8, 5, 1)\r
+\r
+#define PPG_BB_GAIN_2G_TXA_OFFSET_8192E        0x1F6\r
+#define PPG_THERMAL_OFFSET_8192E               0x1F5\r
+\r
 // 0x10 ~ 0x63 = TX power area.\r
 #define        EEPROM_TX_PWR_INX_8192E                         0x10\r
 \r
 #define        EEPROM_TX_BBSWING_5G_8192E                      0xC7\r
 #define        EEPROM_TX_PWR_CALIBRATE_RATE_8192E      0xC8\r
 #define        EEPROM_RF_ANTENNA_OPT_8192E                     0xC9\r
+#define        EEPROM_RFE_OPTION_8192E                         0xCA
+#define        EEPROM_RFE_OPTION_8188E                         0xCA\r
+#define EEPROM_COUNTRY_CODE_8192E                      0xCB\r
 \r
 // RTL8192EE\r
 #define        EEPROM_MAC_ADDR_8192EE                          0xD0\r
 #define        EEPROM_LNA_TYPE_5G_8192EU               0xBF\r
 \r
 // RTL8192ES\r
-#define        EEPROM_MAC_ADDR_8192ES                          0x11B\r
+#define        EEPROM_MAC_ADDR_8192ES                          0x11A\r
 //====================================================\r
 //                     EEPROM/Efuse PG Offset for 8812AE/8812AU/8812AS\r
 //====================================================\r
 #define EEPROM_TX_PWR_CALIBRATE_RATE_8812      0xC8\r
 #define EEPROM_RF_ANTENNA_OPT_8812                     0xC9\r
 #define EEPROM_RFE_OPTION_8812                         0xCA\r
+#define EEPROM_COUNTRY_CODE_8812                       0xCB\r
 \r
 // RTL8812AE\r
 #define EEPROM_MAC_ADDR_8812AE                         0xD0\r
 #define EEPROM_LNA_TYPE_2G_8812AU                      0xBD\r
 #define EEPROM_LNA_TYPE_5G_8812AU                      0xBF\r
 \r
+//RTL8814AU\r
+#define        EEPROM_MAC_ADDR_8814AU                          0xD8\r
+#define        EEPROM_VID_8814AU                                               0xD0\r
+#define        EEPROM_PID_8814AU                                               0xD2\r
+#define        EEPROM_PA_TYPE_8814AU                           0xBC\r
+#define        EEPROM_LNA_TYPE_2G_8814AU                       0xBD\r
+#define        EEPROM_LNA_TYPE_5G_8814AU                       0xBF\r
+\r
+/* RTL8814AE */\r
+#define EEPROM_MAC_ADDR_8814AE                         0xD0\r
+#define EEPROM_VID_8814AE                                              0xD6\r
+#define EEPROM_DID_8814AE                                              0xD8\r
+#define EEPROM_SVID_8814AE                                             0xDA\r
+#define EEPROM_SMID_8814AE                                     0xDC\r
+\r
+//====================================================\r
+//                     EEPROM/Efuse PG Offset for 8814AU\r
+//====================================================\r
+#define GET_PG_KFREE_ON_8814A(_pg_m)                   LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC8, 4, 1)\r
+#define GET_PG_KFREE_THERMAL_K_ON_8814A(_pg_m) LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC8, 5, 1)\r
+#define GET_PG_TX_POWER_TRACKING_MODE_8814A(_pg_m)     LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC8, 6, 2)\r
+\r
+#define KFREE_GAIN_DATA_LENGTH_8814A   22\r
+\r
+#define PPG_BB_GAIN_2G_TXBA_OFFSET_8814A       0x3EE\r
+\r
+#define PPG_THERMAL_OFFSET_8814A               0x3EF\r
+\r
+#define EEPROM_TX_PWR_INX_8814                         0x10\r
+#define EEPROM_ChannelPlan_8814                                0xB8\r
+#define EEPROM_XTAL_8814                                       0xB9\r
+#define EEPROM_THERMAL_METER_8814                      0xBA\r
+#define        EEPROM_IQK_LCK_8814                                     0xBB\r
+\r
+\r
+#define EEPROM_PA_TYPE_8814                                    0xBC\r
+#define EEPROM_LNA_TYPE_AB_2G_8814                     0xBD\r
+#define        EEPROM_LNA_TYPE_CD_2G_8814                      0xBE\r
+#define EEPROM_LNA_TYPE_AB_5G_8814                     0xBF\r
+#define EEPROM_LNA_TYPE_CD_5G_8814                     0xC0\r
+#define        EEPROM_RF_BOARD_OPTION_8814                     0xC1\r
+#define        EEPROM_RF_BT_SETTING_8814                       0xC3\r
+#define        EEPROM_VERSION_8814                                     0xC4\r
+#define        EEPROM_CustomID_8814                            0xC5\r
+#define        EEPROM_TX_BBSWING_2G_8814                       0xC6\r
+#define        EEPROM_TX_BBSWING_5G_8814                       0xC7\r
+#define EEPROM_TRX_ANTENNA_OPTION_8814         0xC9\r
+#define        EEPROM_RFE_OPTION_8814                          0xCA\r
+#define EEPROM_COUNTRY_CODE_8814                       0xCB\r
+\r
+/*Extra Info for 8814A Initial Gain Fine Tune  suggested by Willis, JIRA: MP123*/\r
+#define        EEPROM_IG_OFFSET_4_AB_2G_8814A                          0x120\r
+#define        EEPROM_IG_OFFSET_4_CD_2G_8814A                          0x121\r
+#define        EEPROM_IG_OFFSET_4_AB_5GL_8814A                         0x122\r
+#define        EEPROM_IG_OFFSET_4_CD_5GL_8814A                         0x123\r
+#define        EEPROM_IG_OFFSET_4_AB_5GM_8814A                         0x124\r
+#define        EEPROM_IG_OFFSET_4_CD_5GM_8814A                         0x125\r
+#define        EEPROM_IG_OFFSET_4_AB_5GH_8814A                         0x126\r
+#define        EEPROM_IG_OFFSET_4_CD_5GH_8814A                         0x127\r
+\r
 //====================================================\r
 //                     EEPROM/Efuse PG Offset for 8821AE/8821AU/8821AS\r
 //====================================================\r
+\r
+#define GET_PG_KFREE_ON_8821A(_pg_m)                   LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC8, 4, 1)\r
+#define GET_PG_KFREE_THERMAL_K_ON_8821A(_pg_m) LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC8, 5, 1)\r
+\r
+#define PPG_BB_GAIN_2G_TXA_OFFSET_8821A                0x1F6\r
+#define PPG_THERMAL_OFFSET_8821A                       0x1F5\r
+#define PPG_BB_GAIN_5GLB1_TXA_OFFSET_8821A     0x1F4\r
+#define PPG_BB_GAIN_5GLB2_TXA_OFFSET_8821A     0x1F3\r
+#define PPG_BB_GAIN_5GMB1_TXA_OFFSET_8821A     0x1F2\r
+#define PPG_BB_GAIN_5GMB2_TXA_OFFSET_8821A     0x1F1\r
+#define PPG_BB_GAIN_5GHB_TXA_OFFSET_8821A      0x1F0\r
+\r
 #define EEPROM_TX_PWR_INX_8821                         0x10\r
 \r
 #define EEPROM_ChannelPlan_8821                                0xB8\r
 #define EEPROM_TSSI_A_92SU                                             0x6b \r
 #define EEPROM_TSSI_B_92SU                                             0x6c \r
 \r
+/* ====================================================\r
+       EEPROM/Efuse PG Offset for 8188FE/8188FU/8188FS\r
+   ====================================================\r
+ */\r
+\r
+#define GET_PG_KFREE_ON_8188F(_pg_m)                   LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC1, 4, 1)\r
+#define GET_PG_KFREE_THERMAL_K_ON_8188F(_pg_m) LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC8, 5, 1)\r
+\r
+#define PPG_BB_GAIN_2G_TXA_OFFSET_8188F        0xEE\r
+#define PPG_THERMAL_OFFSET_8188F               0xEF\r
+\r
+/* 0x10 ~ 0x63 = TX power area. */\r
+#define        EEPROM_TX_PWR_INX_8188F                         0x10\r
+\r
+#define        EEPROM_ChannelPlan_8188F                        0xB8\r
+#define        EEPROM_XTAL_8188F                                       0xB9\r
+#define        EEPROM_THERMAL_METER_8188F                      0xBA\r
+#define        EEPROM_IQK_LCK_8188F                            0xBB\r
+#define        EEPROM_2G_5G_PA_TYPE_8188F                      0xBC\r
+#define        EEPROM_2G_LNA_TYPE_GAIN_SEL_8188F       0xBD\r
+#define        EEPROM_5G_LNA_TYPE_GAIN_SEL_8188F       0xBF\r
+\r
+#define        EEPROM_RF_BOARD_OPTION_8188F            0xC1\r
+#define        EEPROM_FEATURE_OPTION_8188F                     0xC2\r
+#define        EEPROM_RF_BT_SETTING_8188F                      0xC3\r
+#define        EEPROM_VERSION_8188F                            0xC4\r
+#define        EEPROM_CustomID_8188F                           0xC5\r
+#define        EEPROM_TX_BBSWING_2G_8188F                      0xC6\r
+#define        EEPROM_TX_PWR_CALIBRATE_RATE_8188F      0xC8\r
+#define        EEPROM_RF_ANTENNA_OPT_8188F                     0xC9\r
+#define        EEPROM_RFE_OPTION_8188F                         0xCA\r
+#define EEPROM_COUNTRY_CODE_8188F                      0xCB\r
+#define EEPROM_CUSTOMER_ID_8188F                       0x7F\r
+#define EEPROM_SUBCUSTOMER_ID_8188F                    0x59\r
+\r
+/* RTL8188FU */\r
+#define EEPROM_MAC_ADDR_8188FU                         0xD7\r
+#define EEPROM_VID_8188FU                                      0xD0\r
+#define EEPROM_PID_8188FU                                      0xD2\r
+#define EEPROM_PA_TYPE_8188FU                          0xBC\r
+#define EEPROM_LNA_TYPE_2G_8188FU                      0xBD\r
+#define EEPROM_USB_OPTIONAL_FUNCTION0_8188FU 0xD4\r
+\r
+/* RTL8188FS */\r
+#define        EEPROM_MAC_ADDR_8188FS                          0x11A\r
+#define EEPROM_Voltage_ADDR_8188F                      0x8\r
+\r
 //====================================================\r
 //                     EEPROM/Efuse PG Offset for 8723BE/8723BU/8723BS\r
 //====================================================\r
 #define        EEPROM_TX_PWR_CALIBRATE_RATE_8723B      0xC8\r
 #define        EEPROM_RF_ANTENNA_OPT_8723B             0xC9\r
 #define        EEPROM_RFE_OPTION_8723B                         0xCA\r
+#define EEPROM_COUNTRY_CODE_8723B                      0xCB\r
 \r
 // RTL8723BE\r
 #define EEPROM_MAC_ADDR_8723BE                         0xD0\r
 #define EEPROM_PA_TYPE_8723BU                                  0xBC\r
 #define EEPROM_LNA_TYPE_2G_8723BU                              0xBD\r
 \r
+\r
 //RTL8723BS\r
 #define        EEPROM_MAC_ADDR_8723BS                          0x11A\r
 #define EEPROM_Voltage_ADDR_8723B                      0x8\r
 \r
+//====================================================\r
+/*                     EEPROM/Efuse PG Offset for 8703B                */\r
+//====================================================\r
+#define GET_PG_KFREE_ON_8703B(_pg_m)                   LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC1, 4, 1)\r
+#define GET_PG_KFREE_THERMAL_K_ON_8703B(_pg_m) LE_BITS_TO_1BYTE(((u8 *)(_pg_m)) + 0xC8, 5, 1)\r
+\r
+#define PPG_BB_GAIN_2G_TXA_OFFSET_8703B        0xEE\r
+#define PPG_THERMAL_OFFSET_8703B               0xEF\r
+\r
+#define        EEPROM_TX_PWR_INX_8703B                         0x10\r
+\r
+#define        EEPROM_ChannelPlan_8703B                                0xB8\r
+#define        EEPROM_XTAL_8703B                                       0xB9\r
+#define        EEPROM_THERMAL_METER_8703B                      0xBA\r
+#define        EEPROM_IQK_LCK_8703B                                    0xBB\r
+#define        EEPROM_2G_5G_PA_TYPE_8703B                      0xBC\r
+#define        EEPROM_2G_LNA_TYPE_GAIN_SEL_8703B       0xBD\r
+#define        EEPROM_5G_LNA_TYPE_GAIN_SEL_8703B       0xBF\r
+\r
+#define        EEPROM_RF_BOARD_OPTION_8703B            0xC1\r
+#define        EEPROM_FEATURE_OPTION_8703B                     0xC2\r
+#define        EEPROM_RF_BT_SETTING_8703B                      0xC3\r
+#define        EEPROM_VERSION_8703B                                    0xC4\r
+#define        EEPROM_CustomID_8703B                                   0xC5\r
+#define        EEPROM_TX_BBSWING_2G_8703B                      0xC6\r
+#define        EEPROM_TX_PWR_CALIBRATE_RATE_8703B      0xC8\r
+#define        EEPROM_RF_ANTENNA_OPT_8703B             0xC9\r
+#define        EEPROM_RFE_OPTION_8703B                         0xCA\r
+#define EEPROM_COUNTRY_CODE_8703B                      0xCB\r
+\r
+/* MAC Hidden */\r
+#define PPG_MAC_HIDDEN_START_8703B                     0xF0\r
+#define PPG_MAC_HIDDEN_END_8703B                       0xFF\r
+#define EEPROM_HCI_AND_PACKAGE_TYPE_8703B      0xF8\r
+#define EEPROM_WL_FUNC_CAP_8703B                       0xF9\r
+#define EEPROM_BW_AND_ANT_NUM_CAP_8703B                0xFB\r
+#define GET_PMH_HCI_TYPE_8703B(_pmh_m)         LE_BITS_TO_1BYTE(((u8 *)(_pmh_m)) + EEPROM_HCI_AND_PACKAGE_TYPE_8703B - PPG_MAC_HIDDEN_START_8703B, 0, 4)\r
+#define        GET_PMH_PACKAGE_TYPE_8703B(_pmh_m)      LE_BITS_TO_1BYTE(((u8 *)(_pmh_m)) + EEPROM_HCI_AND_PACKAGE_TYPE_8703B - PPG_MAC_HIDDEN_START_8703B, 4, 4)\r
+#define GET_PMH_WL_FUNC_CAP_8703B(_pmh_m)      LE_BITS_TO_1BYTE(((u8 *)(_pmh_m)) + EEPROM_WL_FUNC_CAP_8703B - PPG_MAC_HIDDEN_START_8703B, 0, 4)\r
+#define GET_PMH_BW_CAP_8703B(_pmh_m)           LE_BITS_TO_1BYTE(((u8 *)(_pmh_m)) + EEPROM_BW_AND_ANT_NUM_CAP_8703B - PPG_MAC_HIDDEN_START_8703B, 0, 3)\r
+#define GET_PMH_ANT_NUM_CAP_8703B(_pmh_m)      LE_BITS_TO_1BYTE(((u8 *)(_pmh_m)) + EEPROM_BW_AND_ANT_NUM_CAP_8703B - PPG_MAC_HIDDEN_START_8703B, 5, 3)\r
+\r
+/* RTL8703BU */\r
+#define EEPROM_MAC_ADDR_8703BU                          0x107\r
+#define EEPROM_VID_8703BU                               0x100\r
+#define EEPROM_PID_8703BU                               0x102\r
+#define EEPROM_USB_OPTIONAL_FUNCTION0_8703BU            0x104\r
+#define EEPROM_PA_TYPE_8703BU                           0xBC\r
+#define EEPROM_LNA_TYPE_2G_8703BU                       0xBD\r
+\r
+//RTL8703BS\r
+#define        EEPROM_MAC_ADDR_8703BS                          0x11A\r
+#define        EEPROM_Voltage_ADDR_8703B                       0x8\r
 \r
 //====================================================\r
 //                     EEPROM/Efuse Value Type\r
 #define EEPROM_Default_ThermalMeter_8812               0x18\r
 #define        EEPROM_Default_ThermalMeter_8192E                       0x1A\r
 #define        EEPROM_Default_ThermalMeter_8723B               0x18\r
+#define        EEPROM_Default_ThermalMeter_8703B               0x18\r
+#define        EEPROM_Default_ThermalMeter_8188F               0x18\r
+#define EEPROM_Default_ThermalMeter_8814A              0x18\r
 \r
 \r
 #define EEPROM_Default_CrystalCap                              0x0\r
 #define EEPROM_Default_CrystalCap_8723A                0x20\r
 #define EEPROM_Default_CrystalCap_88E                  0x20\r
 #define EEPROM_Default_CrystalCap_8812                 0x20\r
+#define EEPROM_Default_CrystalCap_8814                 0x20\r
 #define EEPROM_Default_CrystalCap_8192E                        0x20\r
 #define EEPROM_Default_CrystalCap_8723B                        0x20\r
+#define EEPROM_Default_CrystalCap_8703B                        0x20\r
+#define EEPROM_Default_CrystalCap_8188F                        0x20\r
 #define EEPROM_Default_CrystalFreq                             0x0\r
 #define EEPROM_Default_TxPowerLevel_92C                0x22\r
 #define EEPROM_Default_TxPowerLevel_2G                 0x2C\r
 #define EEPROM_DEFAULT_DIFF                            0XFE\r
 #define EEPROM_DEFAULT_CHANNEL_PLAN            0x7F\r
 #define EEPROM_DEFAULT_BOARD_OPTION            0x00\r
+#define EEPROM_DEFAULT_RFE_OPTION_8192E 0xFF\r
+#define EEPROM_DEFAULT_RFE_OPTION_8188E 0xFF\r
 #define EEPROM_DEFAULT_RFE_OPTION              0x04\r
 #define EEPROM_DEFAULT_FEATURE_OPTION  0x00\r
 #define EEPROM_DEFAULT_BT_OPTION                       0x10\r
 \r
 #define EEPROM_DEFAULT_TX_CALIBRATE_RATE       0x00\r
 \r
+// PCIe related\r
+#define        EEPROM_PCIE_DEV_CAP_01                          0xE0 // Express device capability in PCIe configuration space, i.e., map to offset 0x74\r
+#define        EEPROM_PCIE_DEV_CAP_02                          0xE1 // Express device capability in PCIe configuration space, i.e., map to offset 0x75\r
+\r
+\r
 //\r
 // For VHT series TX power by rate table.\r
 // VHT TX power by rate off setArray = \r
 //----------------------------------------------------------------------------\r
 //       EEPROM/EFUSE data structure definition.\r
 //----------------------------------------------------------------------------\r
-#define MAX_RF_PATH_NUM        2\r
-#define MAX_CHNL_GROUP         3+9\r
-typedef struct _TxPowerInfo{\r
-       u8 CCKIndex[MAX_RF_PATH_NUM][MAX_CHNL_GROUP];\r
-       u8 HT40_1SIndex[MAX_RF_PATH_NUM][MAX_CHNL_GROUP];\r
-       u8 HT40_2SIndexDiff[MAX_RF_PATH_NUM][MAX_CHNL_GROUP];\r
-       s8 HT20IndexDiff[MAX_RF_PATH_NUM][MAX_CHNL_GROUP];\r
-       u8 OFDMIndexDiff[MAX_RF_PATH_NUM][MAX_CHNL_GROUP];\r
-       u8 HT40MaxOffset[MAX_RF_PATH_NUM][MAX_CHNL_GROUP];\r
-       u8 HT20MaxOffset[MAX_RF_PATH_NUM][MAX_CHNL_GROUP];\r
-       u8 TSSI_A[3];\r
-       u8 TSSI_B[3];\r
-       u8 TSSI_A_5G[3];                //5GL/5GM/5GH\r
-       u8 TSSI_B_5G[3];\r
-}TxPowerInfo, *PTxPowerInfo;\r
-\r
 \r
 //For 88E new structure\r
 \r
@@ -599,7 +603,7 @@ typedef struct _TxPowerInfo{
 }\r
 */\r
 #define        MAX_RF_PATH                             4\r
-#define        RF_PATH_MAX                             MAX_RF_PATH     \r
+#define RF_PATH_MAX                            MAX_RF_PATH     \r
 #define        MAX_CHNL_GROUP_24G              6 \r
 #define        MAX_CHNL_GROUP_5G               14 \r
 \r
@@ -643,8 +647,9 @@ typedef     enum _BT_CoType{
        BT_RTL8821              = 7,\r
        BT_RTL8723B             = 8,\r
        BT_RTL8192E             = 9,\r
-       BT_RTL8813A             = 10,\r
-       BT_RTL8812A             = 11\r
+       BT_RTL8814A             = 10,\r
+       BT_RTL8812A             = 11,\r
+       BT_RTL8703B             = 12\r
 } BT_CoType, *PBT_CoType;\r
 \r
 typedef        enum _BT_RadioShared{\r