• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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