1 /* 2 * Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation; either version 2 7 * of the License, or (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 */ 18 19 #ifndef __WAL_CUSTOMIZE_H__ 20 #define __WAL_CUSTOMIZE_H__ 21 22 /* ***************************************************************************** 23 * 1 Other Header File Including 24 * **************************************************************************** */ 25 #include "oal_err_wifi.h" 26 #if (_PRE_OS_VERSION_LITEOS == _PRE_OS_VERSION) 27 #include "oam_ext_if.h" 28 #endif 29 30 #ifdef __cplusplus 31 #if __cplusplus 32 extern "C" { 33 #endif 34 #endif 35 36 /* ***************************************************************************** 37 2 宏定义 38 ***************************************************************************** */ 39 #define INI_MODU_WIFI 0x1 40 #define INI_MODU_GNSS 0x2 41 #define INI_MODU_BT 0x4 42 #define INI_MODU_FM 0x8 43 #define INI_MODU_WIFI_PLAT 0x10 44 #define INI_MODU_BFG_PLAT 0x20 45 #define INI_MODU_PLAT 0x40 46 #define INI_MODU_HOST_VERSION 0x80 47 #define INI_MODU_WIFI_MAC 0x81 48 #define INI_MODU_COEXIST 0x82 49 50 #define CUST_MODU_WIFI 0x1 51 #define CUST_MODU_GNSS 0x2 52 #define CUST_MODU_BT 0x4 53 #define CUST_MODU_FM 0x8 54 #define CUST_MODU_WIFI_PLAT 0x10 55 #define CUST_MODU_BFG_PLAT 0x20 56 #define CUST_MODU_PLAT 0x40 57 #define CUST_MODU_DTS 0x50 58 #define CUST_MODU_HOST_VERSION 0x80 59 #define CUST_MODU_WIFI_MAC 0x81 60 #define CUST_MODU_COEXIST 0x82 61 #define CUST_MODU_NVRAM 0x83 62 63 #define INI_STR_MODU_LEN 40 64 #define INI_MODE_GPSGLONASS 0 65 #define INI_MODE_BDGPS 1 66 #define INI_MODE_NORMAL 0 67 #define INI_MODE_PERFORMANCE 1 68 #define INI_MODE_CERTIFY 2 69 #define INI_MODE_CERTIFY_CE 3 70 71 #define MAX_READ_LINE_NUM 192 72 #define INI_FILE_PATH_LEN 128 73 #define INI_READ_VALUE_LEN 64 74 #define INI_VERSION_STR_LEN 32 75 76 #define MAC_LEN 6 77 #define NV_WLAN_NUM 193 78 #define NV_WLAN_VALID_SIZE 12 79 80 #ifndef MAC2STR 81 #define mac2str(a) (a)[0], "**", "**", "**", (a)[4], (a)[5] 82 #endif 83 84 #define CUS_TAG_INI 0x01 85 #define CUS_TAG_NVM 0x03 86 #define CALI_TXPWR_PA_DC_REF_MIN 0 87 #define CALI_TXPWR_PA_DC_REF_MAX 500 88 #define CALI_TXPWR_PA_DC_FRE_MIN 0 89 #define CALI_TXPWR_PA_DC_FRE_MAX 78 90 #define CALI_BT_TXPWR_PA_DC_REF_MAX 15000 91 #define CHN_EST_CTRL_EVB 0x3C192240 92 #define CHN_EST_CTRL_MATE7 0x3C193240 93 #define CHN_EST_CTRL_FPGA 0x3C19A243 94 #define PHY_POWER_REF_2G_3798 0xDCE0F4 95 #define PHY_POWER_REF_2G_EVB0 0xDCE0F4 96 #define RTC_CLK_FREQ_MIN 32000 97 #define RTC_CLK_FREQ_MAX 33000 98 #define RF_LINE_TXRX_GAIN_DB_2G_MIN (-32) 99 #define RF_LINE_TXRX_GAIN_DB_5G_MIN (-12) 100 #define PSD_THRESHOLD_MIN (-15) 101 #define PSD_THRESHOLD_MAX (-10) 102 #define LNA_GAIN_DB_MIN (-10) 103 #define LNA_GAIN_DB_MAX 20 104 #define MAX_BASE_TXPOWER_MIN 130 /* 最大发送功率的最小有效值:130 13.0dbm */ 105 #define MAX_BASE_TXPOWER_MAX 238 /* 最大发送功率的最大有效值:238 23.8dbm */ 106 #define MAX_DBB_SCALE 0xEE /* DBB SCALE最大有效值 */ 107 #define TX_RATIO_MAX 2000 /* tx占空比的最大有效值 */ 108 #define TX_PWR_COMP_VAL_MAX 50 /* 发射功率补偿值的最大有效值 */ 109 #define MORE_PWR_MAX 50 /* 根据温度额外补偿的发射功率的最大有效值 */ 110 #define COUNTRY_CODE_LEN 3 /* 国家码位数 */ 111 #define WAL_FREQ_COMP_PARAM_CNT 3 /* 高温频偏个数 */ 112 #define WAL_DBB_PARAM_CNT 7 /* dbb scale相关参数个数 */ 113 #define WAL_CH_TX_PWR_PARAM_CNT 13 /* 信道相关发送功率参数个数 */ 114 #define NUM_OF_BAND_EDGE_LIMIT 6 /* FCC边带认证参数个数 */ 115 116 #define FREQ_COMP_TEMP_MIN (-40) 117 #define FREQ_COMP_TEMP_MAX 140 118 119 #define FREQ_COMP_VAL_MIN (-10000) 120 #define FREQ_COMP_VAL_MAX 10000 121 122 /* ***************************************************************************** 123 2 枚举定义 124 ***************************************************************************** */ 125 /* 定制化 INIT CONFIG ID */ 126 typedef enum { 127 /* COUNTRY CODE */ 128 INIT_CFG_COUNTRY_CODE = 0, 129 /* 性能 */ 130 INIT_CFG_AMPDU_TX_MAX_NUM, 131 INIT_CFG_USED_MEM_FOR_START, 132 INIT_CFG_USED_MEM_FOR_STOP, 133 INIT_CFG_RX_ACK_LIMIT, /* 4 */ 134 INIT_CFG_INT_UNIT_CTRL, 135 INIT_CFG_SDIO_D2H_ASSEMBLE_COUNT, /* 5 */ 136 INIT_CFG_SDIO_H2D_ASSEMBLE_COUNT, 137 /* 低功耗 */ 138 INIT_CFG_POWERMGMT_SWITCH, 139 /* STA DTIM参数配置 */ 140 INIT_CFG_STA_DTIM_SETTING, 141 /* 可维可测 */ 142 INIT_CFG_LOGLEVEL, 143 /* PHY DBB SCALING */ 144 INIT_CFG_PHY_SCALING_VALUE_11B, /* 10 */ 145 INIT_CFG_PHY_U1_SCALING_VALUE_11G, 146 INIT_CFG_PHY_U2_SCALING_VALUE_11G, 147 INIT_CFG_PHY_U1_SCALING_VALUE_11N_2D4G, 148 INIT_CFG_PHY_U2_SCALING_VALUE_11N_2D4G, 149 INIT_CFG_PHY_U1_SCALING_VALUE_11N40M_2D4G, 150 INIT_CFG_PHY_U2_SCALING_VALUE_11N40M_2D4G, 151 INIT_CFG_PHY_U0_SCALING_VALUE_11N_2D4G, 152 INIT_CFG_PHY_U3_SCALING_VALUE_11N40M_2D4G, 153 /* 时钟信息 */ 154 INIT_CFG_RTS_CLK_FREQ, 155 INIT_CFG_CLK_TYPE, /* 20 */ 156 /* 2G RF前端 */ 157 INIT_CFG_RF_LINE_TXRX_GAIN_DB_2G_BAND1, 158 INIT_CFG_RF_LINE_TXRX_GAIN_DB_2G_BAND2, 159 INIT_CFG_RF_LINE_TXRX_GAIN_DB_2G_BAND3, 160 161 /* 2G RF Tx POWER REF值 */ 162 INIT_CFG_RF_TXPWR_CALI_REF_2G_VAL_BAND1, 163 INIT_CFG_RF_TXPWR_CALI_REF_2G_VAL_BAND2, 164 INIT_CFG_RF_TXPWR_CALI_REF_2G_VAL_BAND3, 165 /* 温度上升导致发射功率下降过多的功率补偿 */ 166 INIT_CFG_TX_RATIO_LEVEL_0, /* tx占空比 */ 167 INIT_CFG_TX_PWR_COMP_VAL_LEVEL_0, /* 发射功率补偿值 */ 168 INIT_CFG_TX_RATIO_LEVEL_1, 169 INIT_CFG_TX_PWR_COMP_VAL_LEVEL_1, /* 30 */ 170 INIT_CFG_TX_RATIO_LEVEL_2, 171 INIT_CFG_TX_PWR_COMP_VAL_LEVEL_2, 172 INIT_CFG_MORE_PWR, /* 根据温度额外补偿的发射功率 */ 173 /* SCAN */ 174 INIT_CFG_RANDOM_MAC_ADDR_SCAN, 175 /* 11AC2G */ 176 INIT_CFG_11AC2G_ENABLE, /* 11ac2g开关 */ /* 63 */ 177 INIT_CFG_DISABLE_CAPAB_2GHT40, /* 2ght40禁止开关 */ 178 179 /* FCC认证 */ 180 INIT_CFG_BAND_EDGE_LIMIT_2G_11G_TXPWR, /* FCC CH1,CH11 band edge limit */ /* 21 */ 181 INIT_CFG_BAND_EDGE_LIMIT_2G_11N_HT20_TXPWR, /* FCC CH1,CH11 band edge limit */ 182 INIT_CFG_BAND_EDGE_LIMIT_2G_11N_HT40_TXPWR, /* 39 */ 183 INIT_CFG_BAND_EDGE_LIMIT_2G_11G_DBB_SCALING, /* FCC CH1,CH11 dbb scaling */ 184 INIT_CFG_BAND_EDGE_LIMIT_2G_11N_HT20_DBB_SCALING, /* FCC CH1,CH11 dbb scaling */ 185 INIT_CFG_BAND_EDGE_LIMIT_2G_11N_HT40_DBB_SCALING, 186 187 INIT_CFG_CALI_TONE_AMP_GRADE, 188 189 /* base power/单位(0.1dbm), 2.4G主路的base power 190 basepower定义为芯片口出来的最大发射功率(例如21dBm) 191 减去loss(通常为3~4dBm左右)得到basepower就是(18dBm,此时需要写入定制化项中的就是180) 192 取值范围:DR最大功率值 ~ 120 */ 193 INIT_CFG_NVRAM_MAX_TXPWR_BASE_2P4G, 194 /* delta power/单位(0.1dbm) */ 195 INIT_CFG_NVRAM_PARAMS0, 196 INIT_CFG_NVRAM_PARAMS1, 197 INIT_CFG_NVRAM_PARAMS2, 198 /* DPD打开时,高阶功率值 */ 199 INIT_CFG_NVRAM_PARAMS3, 200 /* 动态校准参数 201 二次拟合和DPN系数请参考实验室动态校准拟合方式获取,调整前端匹配后,系数需要重新拟合 202 自动化生成系数,二次项/一次项不超过给出给出参考值的10倍 203 2.4G/5G 每个DPN差值绝对值不超过5dB */ 204 INIT_CFG_DYN_CALI_DSCR_INTERVAL, 205 INIT_CFG_NVRAM_PA2GCCKA0, /* 50 */ 206 INIT_CFG_NVRAM_PA2GA0, 207 INIT_CFG_NVRAM_PA2GCWA0, 208 INIT_CFG_DPN24G_CH1_CORE0, 209 INIT_CFG_DPN24G_CH2_CORE0, 210 INIT_CFG_DPN24G_CH3_CORE0, 211 INIT_CFG_DPN24G_CH4_CORE0, 212 INIT_CFG_DPN24G_CH5_CORE0, 213 INIT_CFG_DPN24G_CH6_CORE0, 214 INIT_CFG_DPN24G_CH7_CORE0, 215 INIT_CFG_DPN24G_CH8_CORE0, /* 60 */ 216 INIT_CFG_DPN24G_CH9_CORE0, 217 INIT_CFG_DPN24G_CH10_CORE0, 218 INIT_CFG_DPN24G_CH11_CORE0, 219 INIT_CFG_DPN24G_CH12_CORE0, 220 INIT_CFG_DPN24G_CH13_CORE0, 221 INIT_CFG_DSSS2OFDM_DBB_PWR_BO_VAL, 222 /* 校准开关 */ 223 INIT_CFG_CALI_DATA_MASK, 224 INIT_CFG_CALI_MASK, 225 /* RF前端定制化(不同产品需要重新适配该值) */ 226 INIT_CFG_RF_RX_INSERTION_LOSS_2G_B1, 227 INIT_CFG_RF_RX_INSERTION_LOSS_2G_B2, 228 INIT_CFG_RF_RX_INSERTION_LOSS_2G_B3, 229 INIT_CFG_RF_LINE_RF_PWR_REF_RSSI_DB_2G_C0_MULT4, 230 /* SAR Control相关NV */ 231 INIT_CFG_SAR_TXPWR_CTRL_2G, 232 /* 边带功率控制相关NV */ 233 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH1, 234 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH2, 235 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH3, 236 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH4, 237 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH5, 238 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH6, 239 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH7, 240 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH8, 241 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH9, 242 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH10, 243 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH11, 244 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH12, 245 INIT_CFG_SIDE_BAND_TXPWR_LIMIT_24G_CH13, 246 /* RF reg寄存器定制化(涉及rf reg寄存器的定制项不建议修改,只用于hisi调试使用) */ 247 INIT_CFG_RF_PA_VDD_REG_100_MODE_1AND2, 248 INIT_CFG_RF_PA_VDD_REG_101_MODE_1AND2, 249 INIT_CFG_RF_PA_VDD_REG_102_MODE_1AND2, 250 INIT_CFG_RF_PA_VDD_REG_103_MODE_1AND2, 251 INIT_CFG_RF_PA_VDD_REG_104_MODE_1AND2, 252 INIT_CFG_RF_PA_VDD_REG_105_MODE_1AND2, 253 INIT_CFG_RF_PA_VDD_REG_106_MODE_1AND2, 254 INIT_CFG_RF_PA_VDD_REG_107_MODE_1AND2, 255 INIT_CFG_RF_PA_VDD_REG_108_MODE_1AND2, 256 INIT_CFG_RF_PA_VDD_REG_109_MODE_1AND2, 257 INIT_CFG_RF_PA_VDD_REG_110_MODE_1AND2, 258 INIT_CFG_RF_PA_VDD_REG_111_MODE_1AND2, 259 INIT_CFG_RF_PA_VDD_REG_112_MODE_1AND2, 260 INIT_CFG_RF_PA_VDD_REG_113_MODE_1AND2, 261 INIT_CFG_RF_PA_VDD_REG_114_MODE_1AND2, 262 INIT_CFG_RF_PA_VDD_REG_115_MODE_1AND2, 263 INIT_CFG_RF_PA_VDD_REG_100_MODE_3AND4, 264 INIT_CFG_RF_PA_VDD_REG_101_MODE_3AND4, 265 INIT_CFG_RF_PA_VDD_REG_102_MODE_3AND4, 266 INIT_CFG_RF_PA_VDD_REG_103_MODE_3AND4, 267 INIT_CFG_RF_PA_VDD_REG_104_MODE_3AND4, 268 INIT_CFG_RF_PA_VDD_REG_105_MODE_3AND4, 269 INIT_CFG_RF_PA_VDD_REG_106_MODE_3AND4, 270 INIT_CFG_RF_PA_VDD_REG_107_MODE_3AND4, 271 INIT_CFG_RF_PA_VDD_REG_108_MODE_3AND4, 272 INIT_CFG_RF_PA_VDD_REG_109_MODE_3AND4, 273 INIT_CFG_RF_PA_VDD_REG_110_MODE_3AND4, 274 INIT_CFG_RF_PA_VDD_REG_111_MODE_3AND4, 275 INIT_CFG_RF_PA_VDD_REG_112_MODE_3AND4, 276 INIT_CFG_RF_PA_VDD_REG_113_MODE_3AND4, 277 INIT_CFG_RF_PA_VDD_REG_114_MODE_3AND4, 278 INIT_CFG_RF_PA_VDD_REG_115_MODE_3AND4, 279 INIT_CFG_RF_PA_VDD_REG_100_MODE_5AND6, 280 INIT_CFG_RF_PA_VDD_REG_101_MODE_5AND6, 281 INIT_CFG_RF_PA_VDD_REG_102_MODE_5AND6, 282 INIT_CFG_RF_PA_VDD_REG_103_MODE_5AND6, 283 INIT_CFG_RF_PA_VDD_REG_104_MODE_5AND6, 284 INIT_CFG_RF_PA_VDD_REG_105_MODE_5AND6, 285 INIT_CFG_RF_PA_VDD_REG_106_MODE_5AND6, 286 INIT_CFG_RF_PA_VDD_REG_107_MODE_5AND6, 287 INIT_CFG_RF_PA_VDD_REG_108_MODE_5AND6, 288 INIT_CFG_RF_PA_VDD_REG_109_MODE_5AND6, 289 INIT_CFG_RF_PA_VDD_REG_110_MODE_5AND6, 290 INIT_CFG_RF_PA_VDD_REG_111_MODE_5AND6, 291 INIT_CFG_RF_PA_VDD_REG_112_MODE_5AND6, 292 INIT_CFG_RF_PA_VDD_REG_113_MODE_5AND6, 293 INIT_CFG_RF_PA_VDD_REG_114_MODE_5AND6, 294 INIT_CFG_RF_PA_VDD_REG_115_MODE_5AND6, 295 INIT_CFG_RF_PA_VDD_REG_100_MODE_7AND8, 296 INIT_CFG_RF_PA_VDD_REG_101_MODE_7AND8, 297 INIT_CFG_RF_PA_VDD_REG_102_MODE_7AND8, 298 INIT_CFG_RF_PA_VDD_REG_103_MODE_7AND8, 299 INIT_CFG_RF_PA_VDD_REG_104_MODE_7AND8, 300 INIT_CFG_RF_PA_VDD_REG_105_MODE_7AND8, 301 INIT_CFG_RF_PA_VDD_REG_106_MODE_7AND8, 302 INIT_CFG_RF_PA_VDD_REG_107_MODE_7AND8, 303 INIT_CFG_RF_PA_VDD_REG_108_MODE_7AND8, 304 INIT_CFG_RF_PA_VDD_REG_109_MODE_7AND8, 305 INIT_CFG_RF_PA_VDD_REG_110_MODE_7AND8, 306 INIT_CFG_RF_PA_VDD_REG_111_MODE_7AND8, 307 INIT_CFG_RF_PA_VDD_REG_112_MODE_7AND8, 308 INIT_CFG_RF_PA_VDD_REG_113_MODE_7AND8, 309 INIT_CFG_RF_PA_VDD_REG_114_MODE_7AND8, 310 INIT_CFG_RF_PA_VDD_REG_115_MODE_7AND8, 311 /* XTAL高温PLL频偏补偿定制化 */ 312 INIT_CFG_RF_HIGH_TEMP_THRESHOLD, 313 INIT_CFG_RF_LOW_TEMP_THRESHOLD, 314 INIT_CFG_RF_PPM_COMPESATION, 315 /* DPD校准定制化(1131H改动) 316 dpd_cali_ch_core0:DPD使用的校准信道,目前使用3个信道(视实际调试情况增加); 317 dpd_use_cail_ch_idx0_core0:BW20 CH1~CH8使用的系数的校准信道; 318 dpd_use_cail_ch_idx1_core0:BW20 CH9~CH13使用的系数的校准信道; 319 dpd_amp_t0_t3:dpd补偿中温度补偿数据(温度码0到3),每个数据8bit,占用两个16进制数位; 320 dpd_amp_t4_t7:dpd补偿中温度补偿数据(温度码4到7); 321 dpd_comp_tpc_temp:是否开启TPC和温度补偿,0bit:开启温度补偿, 322 bit:开启TPC补偿, 323 2-3bit:软复位TPC门限, 324 4bit:是否开启软复位, 325 5bit:DPD补偿是否只补偿幅度; 326 */ 327 INIT_CFG_DPD_CALI_CH_CORE0, 328 INIT_CFG_DPD_USE_CAIL_CH_IDX0_CORE0, 329 INIT_CFG_DPD_USE_CAIL_CH_IDX1_CORE0, 330 INIT_CFG_DPD_AMP_T0_T3, 331 INIT_CFG_DPD_AMP_T4_T7, 332 INIT_CFG_DPD_COMP_TPC_TEMP, 333 334 INIT_CFG_BUTT, 335 } wlan_cfg_init; 336 337 typedef enum { 338 INIT_CONFIG_PARAMS = 0x20, 339 INIT_CONFIG_CALIBRATION, 340 INIT_CONFIG_RF_RX_INSERTION, 341 INIT_CONFIG_BASE_DELTA_POWER, 342 INIT_CONFIG_SAR_TXPWR, 343 INIT_CONFIG_BAND_TXPWR, 344 INIT_CONFIG_RF_REG1, 345 INIT_CONFIG_RF_REG2, 346 INIT_CONFIG_DPD_CALIBRATION, 347 INIT_CONFIG_NVM_BUTT, 348 } wal_config_items; 349 350 #define INIT_CONFIG_XTAL_COMPESATION 1 351 352 /* ***************************************************************************** 353 3 结构体定义 354 ***************************************************************************** */ 355 typedef struct { 356 hi_u32 init_cfg_nvram_max_txpwr_base_2p4g; 357 358 hi_u32 init_cfg_nvram_params0; 359 hi_u32 init_cfg_nvram_params1; 360 hi_u32 init_cfg_nvram_params2; 361 hi_u32 init_cfg_nvram_params3; 362 } wal_cfg_base_delta_power; 363 364 typedef struct { 365 hi_u32 init_cfg_country_code; 366 hi_u32 init_cfg_ampdu_tx_max_num; 367 hi_u32 init_cfg_used_mem_for_start; 368 hi_u32 init_cfg_used_mem_for_stop; 369 hi_u32 init_cfg_rx_ack_limit; 370 hi_u32 init_cfg_int_unit_ctrl; 371 hi_u32 init_cfg_sdio_d2h_assemble_count; 372 hi_u32 init_cfg_sdio_h2d_assemble_count; 373 hi_u32 init_cfg_powermgmt_switch; 374 hi_u32 init_cfg_sta_dtim_setting; 375 hi_u32 init_cfg_loglevel; 376 hi_u32 init_cfg_phy_scaling_value_11b; 377 hi_u32 init_cfg_phy_u1_scaling_value_11g; 378 hi_u32 init_cfg_phy_u2_scaling_value_11g; 379 hi_u32 init_cfg_phy_u1_scaling_value_11n_2d4g; 380 hi_u32 init_cfg_phy_u2_scaling_value_11n_2d4g; 381 hi_u32 init_cfg_phy_u1_scaling_value_11n40m_2d4g; 382 hi_u32 init_cfg_phy_u2_scaling_value_11n40m_2d4g; 383 hi_u32 init_cfg_phy_u0_scaling_value_11n_5g; 384 hi_u32 init_cfg_phy_u3_scaling_value_11n40m_5g; 385 hi_u32 init_cfg_rts_clk_freq; 386 hi_s32 init_cfg_clk_type; 387 hi_s32 init_cfg_rf_line_txrx_gain_db_2g_band1; 388 hi_s32 init_cfg_rf_line_txrx_gain_db_2g_band2; 389 hi_s32 init_cfg_rf_line_txrx_gain_db_2g_band3; 390 hi_u32 init_cfg_rf_txpwr_cali_ref_2g_val_band1; 391 hi_u32 init_cfg_rf_txpwr_cali_ref_2g_val_band2; 392 hi_u32 init_cfg_rf_txpwr_cali_ref_2g_val_band3; 393 hi_u32 init_cfg_tx_ratio_level_0; 394 hi_u32 init_cfg_tx_pwr_comp_val_level_0; 395 hi_u32 init_cfg_tx_ratio_level_1; 396 hi_u32 init_cfg_tx_pwr_comp_val_level_1; 397 hi_u32 init_cfg_tx_ratio_level_2; 398 hi_u32 init_cfg_tx_pwr_comp_val_level_2; 399 hi_u32 init_cfg_more_pwr; 400 hi_u32 init_cfg_random_mac_addr_scan; 401 hi_u32 init_cfg_11ac2g_enable; 402 hi_u32 init_cfg_disable_capab_2ght40; 403 hi_u32 init_cfg_band_edge_limit_2g_11g_txpwr; 404 hi_u32 init_cfg_band_edge_limit_2g_11n_ht20_txpwr; 405 hi_u32 init_cfg_band_edge_limit_2g_11n_ht40_txpwr; 406 hi_u32 init_cfg_band_edge_limit_2g_11g_dbb_scaling; 407 hi_u32 init_cfg_band_edge_limit_2g_11n_ht20_dbb_scaling; 408 hi_u32 init_cfg_band_edge_limit_2g_11n_ht40_dbb_scaling; 409 hi_u32 init_cfg_cali_tone_amp_grade; 410 } wal_cfg_params; 411 412 typedef struct { 413 hi_u32 init_cfg_dyn_cali_dscr_interval; 414 415 hi_u32 init_cfg_nvram_pa2gccka0; 416 hi_u32 init_cfg_nvram_pa2ga0; 417 hi_u32 init_cfg_nvram_pa2gcwa0; 418 419 hi_u32 init_cfg_dpn24g_ch1_core0; 420 hi_u32 init_cfg_dpn24g_ch2_core0; 421 hi_u32 init_cfg_dpn24g_ch3_core0; 422 hi_u32 init_cfg_dpn24g_ch4_core0; 423 hi_u32 init_cfg_dpn24g_ch5_core0; 424 hi_u32 init_cfg_dpn24g_ch6_core0; 425 hi_u32 init_cfg_dpn24g_ch7_core0; 426 hi_u32 init_cfg_dpn24g_ch8_core0; 427 hi_u32 init_cfg_dpn24g_ch9_core0; 428 hi_u32 init_cfg_dpn24g_ch10_core0; 429 hi_u32 init_cfg_dpn24g_ch11_core0; 430 hi_u32 init_cfg_dpn24g_ch12_core0; 431 hi_u32 init_cfg_dpn24g_ch13_core0; 432 433 hi_u32 init_cfg_dsss2ofdm_dbb_pwr_bo_val; 434 435 hi_u32 init_cfg_cali_data_mask; 436 hi_u32 init_cfg_cali_mask; 437 } wal_cfg_calibration; 438 439 typedef struct { 440 hi_u32 init_cfg_rf_rx_insertion_loss_2g_b1; 441 hi_u32 init_cfg_rf_rx_insertion_loss_2g_b2; 442 hi_u32 init_cfg_rf_rx_insertion_loss_2g_b3; 443 hi_u32 init_cfg_rf_line_rf_pwr_ref_rssi_db_2g_c0_mult4; 444 } wal_cfg_rf_rx_insertion; 445 446 typedef struct { 447 hi_u32 init_cfg_sar_txpwr_ctrl_2g; 448 } wal_cfg_sar_txpwr; 449 450 typedef struct { 451 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch1; 452 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch2; 453 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch3; 454 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch4; 455 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch5; 456 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch6; 457 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch7; 458 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch8; 459 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch9; 460 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch10; 461 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch11; 462 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch12; 463 hi_u32 init_cfg_side_band_txpwr_limit_24g_ch13; 464 } wal_cfg_band_txpwr; 465 466 typedef struct { 467 hi_u32 init_cfg_rf_pa_vdd_reg_100_mode_1and2; 468 hi_u32 init_cfg_rf_pa_vdd_reg_101_mode_1and2; 469 hi_u32 init_cfg_rf_pa_vdd_reg_102_mode_1and2; 470 hi_u32 init_cfg_rf_pa_vdd_reg_103_mode_1and2; 471 hi_u32 init_cfg_rf_pa_vdd_reg_104_mode_1and2; 472 hi_u32 init_cfg_rf_pa_vdd_reg_105_mode_1and2; 473 hi_u32 init_cfg_rf_pa_vdd_reg_106_mode_1and2; 474 hi_u32 init_cfg_rf_pa_vdd_reg_107_mode_1and2; 475 hi_u32 init_cfg_rf_pa_vdd_reg_108_mode_1and2; 476 hi_u32 init_cfg_rf_pa_vdd_reg_109_mode_1and2; 477 hi_u32 init_cfg_rf_pa_vdd_reg_110_mode_1and2; 478 hi_u32 init_cfg_rf_pa_vdd_reg_111_mode_1and2; 479 hi_u32 init_cfg_rf_pa_vdd_reg_112_mode_1and2; 480 hi_u32 init_cfg_rf_pa_vdd_reg_113_mode_1and2; 481 hi_u32 init_cfg_rf_pa_vdd_reg_114_mode_1and2; 482 hi_u32 init_cfg_rf_pa_vdd_reg_115_mode_1and2; 483 hi_u32 init_cfg_rf_pa_vdd_reg_100_mode_3and4; 484 hi_u32 init_cfg_rf_pa_vdd_reg_101_mode_3and4; 485 hi_u32 init_cfg_rf_pa_vdd_reg_102_mode_3and4; 486 hi_u32 init_cfg_rf_pa_vdd_reg_103_mode_3and4; 487 hi_u32 init_cfg_rf_pa_vdd_reg_104_mode_3and4; 488 hi_u32 init_cfg_rf_pa_vdd_reg_105_mode_3and4; 489 hi_u32 init_cfg_rf_pa_vdd_reg_106_mode_3and4; 490 hi_u32 init_cfg_rf_pa_vdd_reg_107_mode_3and4; 491 hi_u32 init_cfg_rf_pa_vdd_reg_108_mode_3and4; 492 hi_u32 init_cfg_rf_pa_vdd_reg_109_mode_3and4; 493 hi_u32 init_cfg_rf_pa_vdd_reg_110_mode_3and4; 494 hi_u32 init_cfg_rf_pa_vdd_reg_111_mode_3and4; 495 hi_u32 init_cfg_rf_pa_vdd_reg_112_mode_3and4; 496 hi_u32 init_cfg_rf_pa_vdd_reg_113_mode_3and4; 497 hi_u32 init_cfg_rf_pa_vdd_reg_114_mode_3and4; 498 hi_u32 init_cfg_rf_pa_vdd_reg_115_mode_3and4; 499 } wal_cfg_rf_reg1; 500 501 typedef struct { 502 hi_u32 init_cfg_rf_pa_vdd_reg_100_mode_5and6; 503 hi_u32 init_cfg_rf_pa_vdd_reg_101_mode_5and6; 504 hi_u32 init_cfg_rf_pa_vdd_reg_102_mode_5and6; 505 hi_u32 init_cfg_rf_pa_vdd_reg_103_mode_5and6; 506 hi_u32 init_cfg_rf_pa_vdd_reg_104_mode_5and6; 507 hi_u32 init_cfg_rf_pa_vdd_reg_105_mode_5and6; 508 hi_u32 init_cfg_rf_pa_vdd_reg_106_mode_5and6; 509 hi_u32 init_cfg_rf_pa_vdd_reg_107_mode_5and6; 510 hi_u32 init_cfg_rf_pa_vdd_reg_108_mode_5and6; 511 hi_u32 init_cfg_rf_pa_vdd_reg_109_mode_5and6; 512 hi_u32 init_cfg_rf_pa_vdd_reg_110_mode_5and6; 513 hi_u32 init_cfg_rf_pa_vdd_reg_111_mode_5and6; 514 hi_u32 init_cfg_rf_pa_vdd_reg_112_mode_5and6; 515 hi_u32 init_cfg_rf_pa_vdd_reg_113_mode_5and6; 516 hi_u32 init_cfg_rf_pa_vdd_reg_114_mode_5and6; 517 hi_u32 init_cfg_rf_pa_vdd_reg_115_mode_5and6; 518 hi_u32 init_cfg_rf_pa_vdd_reg_100_mode_7and8; 519 hi_u32 init_cfg_rf_pa_vdd_reg_101_mode_7and8; 520 hi_u32 init_cfg_rf_pa_vdd_reg_102_mode_7and8; 521 hi_u32 init_cfg_rf_pa_vdd_reg_103_mode_7and8; 522 hi_u32 init_cfg_rf_pa_vdd_reg_104_mode_7and8; 523 hi_u32 init_cfg_rf_pa_vdd_reg_105_mode_7and8; 524 hi_u32 init_cfg_rf_pa_vdd_reg_106_mode_7and8; 525 hi_u32 init_cfg_rf_pa_vdd_reg_107_mode_7and8; 526 hi_u32 init_cfg_rf_pa_vdd_reg_108_mode_7and8; 527 hi_u32 init_cfg_rf_pa_vdd_reg_109_mode_7and8; 528 hi_u32 init_cfg_rf_pa_vdd_reg_110_mode_7and8; 529 hi_u32 init_cfg_rf_pa_vdd_reg_111_mode_7and8; 530 hi_u32 init_cfg_rf_pa_vdd_reg_112_mode_7and8; 531 hi_u32 init_cfg_rf_pa_vdd_reg_113_mode_7and8; 532 hi_u32 init_cfg_rf_pa_vdd_reg_114_mode_7and8; 533 hi_u32 init_cfg_rf_pa_vdd_reg_115_mode_7and8; 534 } wal_cfg_rf_reg2; 535 536 typedef struct { 537 hi_s32 init_cfg_rf_high_temp_threshold; 538 hi_s32 init_cfg_rf_low_temp_threshold; 539 hi_s32 init_cfg_rf_ppm_compesation; 540 } rf_cfg_xtal_compesation; 541 542 typedef struct { 543 hi_u32 init_cfg_dpd_cali_ch_core0; 544 hi_u32 init_cfg_dpd_use_cail_ch_idx0_core0; 545 hi_u32 init_cfg_dpd_use_cail_ch_idx1_core0; 546 hi_u32 init_cfg_dpd_amp_t0_t3; 547 hi_u32 init_cfg_dpd_amp_t4_t7; 548 hi_u32 init_cfg_dpd_comp_tpc_temp; 549 } wal_cfg_dpd_calibration; 550 551 typedef struct { 552 hi_s32 rssi_offset; 553 hi_s32 freq_comp[WAL_FREQ_COMP_PARAM_CNT]; 554 hi_u32 dbb_params[WAL_DBB_PARAM_CNT]; 555 hi_u32 ch_txpwr_offset[WAL_CH_TX_PWR_PARAM_CNT]; 556 } wal_customize_params; 557 558 /* ***************************************************************************** 559 * 10 Function Declare 560 * **************************************************************************** */ 561 hi_u32 wal_get_init_value(hi_u32 cfg_id); 562 hi_u32 wal_customize_init(hi_void); 563 hi_u32 wal_customize_exit(hi_void); 564 hi_u32 wal_customize_set_config(hi_void); 565 #ifdef _PRE_DEBUG_MODE 566 hi_u32 wal_print_init_params(oal_net_device_stru *netdev, hi_char *pc_param); 567 #endif 568 hi_u32 wal_set_init_value(hi_u32 cfg_id, const hi_u32 *data, hi_u8 size); 569 hi_u32 wal_cfg_dbb(const hi_u32 *data, hi_u8 size); 570 hi_u32 wal_cfg_country_code(const hi_char *country_code, hi_s32 size); 571 hi_u32 wal_cfg_fcc_tx_pwr(const hi_u32 *data, hi_u8 size); 572 hi_u32 wal_cfg_freq_comp_val(const hi_u32 *data, hi_u8 size); 573 hi_u32 wal_cfg_rssi_ofset(hi_s32 data); 574 hi_void wal_set_boot_current_flag(hi_bool minimize); 575 hi_u32 wal_sync_boot_current_to_dev(const hi_char *ifname); 576 577 #ifdef __cplusplus 578 #if __cplusplus 579 } 580 #endif 581 #endif 582 583 #endif 584