WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hal_mfg.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
3 * Description: Header file for hal_mfg.c
4 */
5
6#ifndef HAL_MFG_H
7#define HAL_MFG_H
8#ifdef _PRE_WLAN_SUPPORT_CCPRIV_CMD
9#ifdef _PRE_WLAN_FEATURE_MFG_TEST
10/*****************************************************************************
11 1 头文件包含
12*****************************************************************************/
13#include "hal_ext_if.h"
14#include "mac_vap_ext.h"
15
16#ifdef __cplusplus
17#if __cplusplus
18extern "C" {
19#endif
20#endif
21
22#define XO_TRIM_FINE ((osal_u32)(1 << 6))
23#define XO_TRIM_COARSE ((osal_u32)(1 << 3))
24#define XO_TRIM_ENABLE 1
25#define MFG_MODE_ENABLE 1
26#define XO_TRIM_DISABLE 0
27#define CMD_MAX_LEN 256
28#define WLAN_CFG_CON_OFFSET_NUM 2
29#define WLAN_CFG_CMU_XO_TRIM_NUM 2
30#define WLAN_CFG_MAC_GROUP_NUM 4
31#define WLAN_CFG_POWER_INFO_NUM 7
32#define RSSI_OFFSET_SIZE 3
33#define WLAN_CFG_TEMPER_GEARS_STEP 10
34#define EXT_EFUSE_CURVE_FACTOR_MAX 15
35#define EFUSE_GROUP_MAX 3
36#define EXT_EFUSE_IDX_GROUP 48
37#define EFUSE_NAME_LEN 16
38#define EFUSE_MAX_LEN 24
39#define EXT_EFUSE_LOCK_MAX 255
40#define SIZE_2_BITS 2
41#define SIZE_3_BITS 3
42#define SIZE_4_BITS 4
43#define SIZE_8_BITS 8
44#define SIZE_5_BITS 5
45#define EXT_EFUSE_LOCK_XO_TRIM_BIT_POS 7
46#define EXT_EFUSE_LOCK_POWER_BIT_POS 0
47#define EXT_EFUSE_LOCK_RSSI_BIT_POS 1
48#define EXT_EFUSE_LOCK_TEMP_BIT_POS 6
49#define EXT_EFUSE_MFG_FLAG_BIT_POS 7
50#define WLAN_CFG_ONE_POWER_PARAM_NUM 8
51#define WLAN_CFG_COARSE_MIN_NUM 0
52#define WLAN_CFG_COARSE_MAX_NUM 15
53#define WLAN_CFG_FINE_MIN_NUM 0
54#define WLAN_CFG_FINE_MAX_NUM 127
55
56typedef enum {
57 EXT_EFUSE_XO_TRIM_1_ID = 144,
58 EXT_EFUSE_XO_TRIM_COARSE_1_ID = 145,
59 EXT_EFUSE_CURV_FACTOR_LOW_1_ID = 146,
60 EXT_EFUSE_11B_HIGN_1_ID = 147,
61 EXT_EFUSE_11B_LOW_1_ID = 149,
62 EXT_EFUSE_OFDM_20M_HIGN_1_ID = 151,
63 EXT_EFUSE_OFDM_20M_LOW_1_ID = 153,
64 EXT_EFUSE_OFDM_40M_HIGN_1_ID = 153,
65 EXT_EFUSE_OFDM_40M_LOW_1_ID = 153,
66 EXT_EFUSE_RSSI_BAND1_1_ID = 159,
67 EXT_EFUSE_RSSI_BAND3_1_ID = 160,
68 EXT_EFUSE_TEMPERATURE_1_ID = 161,
69 EXT_EFUSE_XO_TRIM_2_ID = 162,
70 EXT_EFUSE_XO_TRIM_COARSE_2_ID = 163,
71 EXT_EFUSE_CURV_FACTOR_LOW_2_ID = 164,
72 EXT_EFUSE_11B_HIGN_2_ID = 165,
73 EXT_EFUSE_11B_LOW_2_ID = 167,
74 EXT_EFUSE_OFDM_20M_HIGN_2_ID = 169,
75 EXT_EFUSE_OFDM_20M_LOW_2_ID = 171,
76 EXT_EFUSE_OFDM_40M_HIGN_2_ID = 173,
77 EXT_EFUSE_OFDM_40M_LOW_2_ID = 175,
78 EXT_EFUSE_RSSI_BAND1_2_ID = 177,
79 EXT_EFUSE_RSSI_BAND3_2_ID = 178,
80 EXT_EFUSE_TEMPERATURE_2_ID = 179,
81 EXT_EFUSE_XO_TRIM_3_ID = 180,
82 EXT_EFUSE_XO_TRIM_COARSE_3_ID = 181,
83 EXT_EFUSE_CURV_FACTOR_LOW_3_ID = 182,
84 EXT_EFUSE_11B_HIGN_3_ID = 183,
85 EXT_EFUSE_11B_LOW_3_ID = 185,
86 EXT_EFUSE_OFDM_20M_HIGN_3_ID = 187,
87 EXT_EFUSE_OFDM_20M_LOW_3_ID = 189,
88 EXT_EFUSE_OFDM_40M_HIGN_3_ID = 191,
89 EXT_EFUSE_OFDM_40M_LOW_3_ID = 193,
90 EXT_EFUSE_RSSI_BAND1_3_ID = 195,
91 EXT_EFUSE_RSSI_BAND3_3_ID = 196,
92 EXT_EFUSE_TEMPERATURE_3_ID = 197,
93 EXT_EFUSE_IPV4_MAC_ADDR_01_ID = 198,
94 EXT_EFUSE_IPV4_MAC_ADDR_02_ID = 204,
95 EXT_EFUSE_IPV4_MAC_ADDR_03_ID = 210,
96 EXT_EFUSE_IPV4_MAC_ADDR_04_ID = 216,
97 EXT_EFUSE_MAX = 255,
98} efuse_id;
99
100typedef enum {
101 EFUSE_OP_READ, /* efuse读操作 */
102 EFUSE_OP_WRITE, /* efuse写操作 */
103 EFUSE_OP_REMAIN, /* efuse查询可用组数 */
104 EFUSE_OP_READ_ALL_MFG_DATA /* 读取efuse所有校准数据 */
105} efuse_op;
106
107typedef struct {
108 osal_char efuse_name[EFUSE_NAME_LEN]; /* efuse功能名 */
109 osal_u32 len; /* 数据长度 */
110 osal_u8 val[CMD_MAX_LEN]; /* 操作数据 */
111 osal_u8 op; /* 操作类型 */
112 osal_u8 resv[3]; /* 保留3字节,4字节对齐 */
113} efuse_operate_stru;
114
115typedef struct {
116 osal_u8 *data;
117 osal_u8 len;
118} efuse_mfg_data_status;
119
120typedef struct {
121 osal_u8 curve_factor_hig;
122 osal_u8 curve_factor_low;
123 osal_u16 band1_hign;
124 osal_u16 band1_low;
125 osal_u16 ofdm_20m_hign;
126 osal_u16 ofdm_20m_low;
127 osal_u16 ofdm_40m_hign;
128 osal_u16 ofdm_40m_low;
129 osal_u8 resv[2];
130} efuse_power_offset_stru;
131
132typedef struct {
133 osal_u16 xo_trim; /* 产测频偏校正码值 */
134 osal_u8 resv[2];
135 efuse_power_offset_stru pwr_offset; /* 功率校准数据 */
136 osal_u16 rssi_offset; /* rssi校准数据 */
137 osal_u8 temp; /* 产测温度档位 */
139} efuse_mfg_data_stru;
140
141typedef struct {
142 osal_char efuse_name[EFUSE_NAME_LEN];
144 osal_u8 lock_id[EFUSE_GROUP_MAX];
145 osal_u8 bit_pos;
146} efuse_id_info_stru;
147
148osal_void hal_rf_set_default_cmu_xo_trim(osal_void);
149osal_void hal_set_mfg_mode(osal_u8 mode);
150osal_void hal_set_xo_trim_coarse(osal_u32 xo_trim_coarse, osal_u32 *coarse_reg);
151osal_void hal_set_xo_trim_fine(osal_u32 xo_trim_fine, osal_u32 *fine_reg);
152osal_void hal_get_xo_trim(osal_u32 *xo_trim_coarse, osal_u32 *xo_trim_fine);
153osal_void hal_get_temp(osal_void);
154osal_s32 hal_config_efuse_operate(efuse_operate_stru *param);
155osal_s32 hal_read_efuse_cmu_xo_trim(osal_u8 *coarse_reg, osal_u8 *fine_reg);
156osal_s32 hal_efuse_cmu_xo_trim_write(osal_u8 coarse_reg, osal_u8 fine_reg);
157osal_s32 hal_set_efuse_rssi_offset(osal_u8 *rssi_param, osal_u32 len);
158osal_s32 hal_get_efuse_rssi_offset(osal_void);
159osal_s32 hal_efuse_write_temp(osal_u8 gears);
160osal_s32 hal_efuse_read_temp(osal_void);
161osal_s32 hal_efuse_status(osal_void);
162osal_s32 hal_efuse_write_power_info(osal_s32 *power_info, osal_u32 len);
163osal_s32 hal_read_efuse_read_power_info(osal_void);
164#ifdef __cplusplus
165#if __cplusplus
166}
167#endif
168#endif
169#endif
170#endif
171#endif
#define EFUSE_GROUP_MAX
Definition at_plt.c:1118
osal_u16 resv2
Definition oal_net.h:3
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
char osal_char
Definition osal_types.h:16
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition hal_uart_v151_regs_def.h:38