luckfox-pico-sdk/sysdrv/drv_ko/wifi/ssv6x5x/include/rf_table.h
2023-08-08 20:36:47 +08:00

120 lines
3.1 KiB
C

#ifndef _RF_TABLE_H_
#define _RF_TABLE_H_
#ifndef SSV_PACKED_STRUCT
//SSV PACK Definition
#define SSV_PACKED_STRUCT_BEGIN
#define SSV_PACKED_STRUCT //__attribute__ ((packed))
#define SSV_PACKED_STRUCT_END //__attribute__((packed))
#define SSV_PACKED_STRUCT_STRUCT __attribute__ ((packed))
#define SSV_PACKED_STRUCT_FIELD(x) x
#endif
SSV_PACKED_STRUCT_BEGIN
struct st_tempe_table
{
uint8_t band_gain[7]; //0:ch1~ch2, 1:ch2~ch3, ..., 6:ch13~ch14
uint8_t freq_xi;
uint8_t freq_xo;
uint8_t ldo_rxafe;
uint8_t ldo_dcdcv;
uint8_t ldo_dldov;
uint8_t pa_vcas1;
uint8_t pa_vcas2;
uint8_t pa_vcas3;
uint8_t pa_bias;
uint8_t pa_cap;
uint8_t padpd_cali;
}SSV_PACKED_STRUCT_STRUCT;
SSV_PACKED_STRUCT_END
SSV_PACKED_STRUCT_BEGIN
struct st_rate_gain
{
uint8_t rate1;
uint8_t rate2;
uint8_t rate3;
uint8_t rate4;
}SSV_PACKED_STRUCT_STRUCT;
SSV_PACKED_STRUCT_END
SSV_PACKED_STRUCT_BEGIN
struct st_tempe_5g_table
{
uint8_t bbscale_band0; //Band0 in 0xccb0ada8(31-24)
uint8_t bbscale_band1; //Band1 in 0xccb0ada8(23-16)
uint8_t bbscale_band2; //Band2 in 0xccb0ada8(15- 8)
uint8_t bbscale_band3; //Band3 in 0xccb0ada8( 7- 0)
uint32_t bias1; // Band0 in 0xccb0a62c(15-0), Band1 in 0xccb0a62c(31-16)
uint32_t bias2; // Band2 in 0xccb0a630(15-0), Band3 in 0xccb0a630(31-16)
}SSV_PACKED_STRUCT_STRUCT;
SSV_PACKED_STRUCT_END
SSV_PACKED_STRUCT_BEGIN
struct st_extpa_table
{
uint8_t extpa_en;
uint8_t lna_trigger_2G;
uint8_t lna_trigger_5G;
uint8_t rssi_lna_on_offset;
uint8_t rssi_lna_off_offset;
uint8_t rssi_5g_lna_on_offset;
uint8_t rssi_5g_lna_off_offset;
uint8_t reserved;
}SSV_PACKED_STRUCT_STRUCT;
SSV_PACKED_STRUCT_END
SSV_PACKED_STRUCT_BEGIN
struct st_rf_table
{
struct st_tempe_table rt_config;
struct st_tempe_table ht_config;
struct st_tempe_table lt_config;
uint8_t rf_gain;
uint8_t rate_gain_b;
struct st_rate_gain rate_config_g;
struct st_rate_gain rate_config_20n;
struct st_rate_gain rate_config_40n;
int8_t low_boundary;
int8_t high_boundary;
/*0xFF: EN_FIRST_BOOT, 0:EN_NOT_FIST_BOOT*/
uint8_t boot_flag;
/*0:EN_WORK_NOMAL, 1:EN_WORK_ENGINEER*/
uint8_t work_mode;
struct st_tempe_5g_table rt_5g_config;
struct st_tempe_5g_table ht_5g_config;
struct st_tempe_5g_table lt_5g_config;
uint16_t band_f0_threshold;
uint16_t band_f1_threshold;
uint16_t band_f2_threshold;
/* Extend structure members. */
uint8_t signature[4]; // For check whether the structure exists in flash.
uint32_t version; // Store structure version, it should be incremented after each structure change.
uint32_t dcdc_flag; // V.01: DCDC enable flag, 0: Disable 1: Enable
struct st_extpa_table extpa_tbl;
}SSV_PACKED_STRUCT_STRUCT;
SSV_PACKED_STRUCT_END
enum{
EN_FIRST_BOOT=0xFF,
EN_NOT_FIRST_BOOT=0
};
enum{
EN_WORK_NOMAL=0,
EN_WORK_ENGINEER
};
#define RF_API_SIGNATURE "SSV"
#define RF_API_TABLE_VERSION (0x0002) // It should be incremented after structure st_rf_table change.
#endif