233 lines
5.2 KiB
C
233 lines
5.2 KiB
C
|
/****************************************************************************
|
||
|
|
||
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
||
|
|
||
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
||
|
be copied by any method or incorporated into another program without
|
||
|
the express written consent of Aerospace C.Power. This Information or any portion
|
||
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
||
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
||
|
liability for its use in any way and conveys no license or title under
|
||
|
any patent or copyright and makes no representation or warranty that this
|
||
|
Information is free from patent or copyright infringement.
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
#ifndef PHY_STATUS_H
|
||
|
#define PHY_STATUS_H
|
||
|
#include "os_types.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#define PHY_LOG_SPUR_MAX_CNT (10)
|
||
|
|
||
|
#pragma pack(push)
|
||
|
#pragma pack(1)
|
||
|
|
||
|
typedef struct _gain_dc{
|
||
|
|
||
|
/* The 8 largest group of gain in GainTable corresponds to DC pgfoffsize*/
|
||
|
uint8_t rx_dc_pgf[8];
|
||
|
|
||
|
/* The 8 largest group of gain in GainTable corresponds to DC pgaoffsize*/
|
||
|
uint8_t rx_dc_pga[8];
|
||
|
|
||
|
/* 4 tx gain */
|
||
|
uint16_t tx_dc[4];
|
||
|
}gain_dc_t;
|
||
|
|
||
|
typedef struct _phy_rx_cnt{
|
||
|
/* phy rx pkt count */
|
||
|
uint32_t phy_rx_pkt_cnt;
|
||
|
|
||
|
/* phy rx pkt fc success count */
|
||
|
uint32_t phy_rx_fc_ok_cnt;
|
||
|
|
||
|
/* phy rx pkt fc fail count */
|
||
|
uint32_t phy_rx_fc_fail_cnt;
|
||
|
|
||
|
/* phy rx pkt pld success count */
|
||
|
uint32_t phy_rx_pld_ok_cnt;
|
||
|
|
||
|
/* phy rx pkt pld fail count */
|
||
|
uint32_t phy_rx_pld_fail_cnt;
|
||
|
|
||
|
/* phy rx pkt fc fail count */
|
||
|
uint32_t phy_rx_fc_fail_cnt_clr;
|
||
|
/* phy rf rx phr ok with pld cnt */
|
||
|
uint32_t phy_rf_rx_phr_ok_with_pld_cnt;
|
||
|
/* phy rf rx phr ok without pld cnt */
|
||
|
uint32_t phy_rf_rx_phr_ok_without_pld_cnt;
|
||
|
|
||
|
}phy_rx_cnt_t;
|
||
|
|
||
|
typedef struct _phy_tx_pwr_reg{
|
||
|
|
||
|
/* CFG_BB_DB_AMP_CTRL_RATE0_BAND0_ADDR value */
|
||
|
uint16_t bb_rt0_bd0;
|
||
|
|
||
|
/* CFG_BB_DB_AMP_CTRL_RATE0_BAND1_ADDR value */
|
||
|
uint16_t bb_rt0_bd1;
|
||
|
|
||
|
/* CFG_BB_DB_AMP_CTRL_RATE0_BAND2_ADDR value */
|
||
|
uint16_t bb_rt0_bd2;
|
||
|
|
||
|
/* CFG_BB_DB_AMP_CTRL_RATE1_BAND0_ADDR value */
|
||
|
uint16_t bb_rt1_bd0;
|
||
|
|
||
|
/* CFG_BB_DB_AMP_CTRL_RATE1_BAND1_ADDR value */
|
||
|
uint16_t bb_rt1_bd1;
|
||
|
|
||
|
/* CFG_BB_DB_AMP_CTRL_RATE1_BAND2_ADDR value */
|
||
|
uint16_t bb_rt1_bd2;
|
||
|
}phy_tx_pwr_reg_t;
|
||
|
|
||
|
typedef struct _phy_band_{
|
||
|
|
||
|
/* CFG_BB_R0_B0_TONE_ADDR value */
|
||
|
uint32_t bb_r0_b0;
|
||
|
|
||
|
/* CFG_BB_R0_B1_TONE_ADDR value */
|
||
|
uint32_t bb_r0_b1;
|
||
|
|
||
|
/* CFG_BB_R0_B2_TONE_ADDR value */
|
||
|
uint32_t bb_r0_b2;
|
||
|
|
||
|
/* CFG_BB_R1_B0_TONE_ADDR value */
|
||
|
uint32_t bb_r1_b0;
|
||
|
|
||
|
/* CFG_BB_R1_B1_TONE_ADDR value */
|
||
|
uint32_t bb_r1_b1;
|
||
|
|
||
|
/* CFG_BB_R1_B2_TONE_ADDR value */
|
||
|
uint32_t bb_r1_b2;
|
||
|
}phy_band_t;
|
||
|
|
||
|
typedef struct _phy_status{
|
||
|
/* 24byte */
|
||
|
gain_dc_t gain_dc;
|
||
|
|
||
|
/* 24 byte band cfg */
|
||
|
phy_band_t phy_band;
|
||
|
|
||
|
/* 20byte rx count */
|
||
|
phy_rx_cnt_t phy_rx_cnt;
|
||
|
|
||
|
/* 12 byte tx power */
|
||
|
phy_tx_pwr_reg_t phy_tx_pwr_reg;
|
||
|
|
||
|
/* 44byte all granite reg value */
|
||
|
uint32_t granite_reg[11];
|
||
|
|
||
|
/* 4byte ppm value*/
|
||
|
uint32_t ppm_value;
|
||
|
|
||
|
/* 4byte phy tx pkt count */
|
||
|
uint32_t phy_tx_pkt_cnt;
|
||
|
|
||
|
/* 4byte phy tx pkt count */
|
||
|
uint32_t phy_tx_pkt_cnt_clr;
|
||
|
|
||
|
/* 4 byte */
|
||
|
uint32_t phy_gain_adjust_info;
|
||
|
|
||
|
/* 2 byte temperature result */
|
||
|
uint16_t temp_res;
|
||
|
|
||
|
/* 2byte dc calibration */
|
||
|
uint16_t dc_cal_cnt;
|
||
|
|
||
|
/* current spur array */
|
||
|
uint16_t spur_array[PHY_LOG_SPUR_MAX_CNT];
|
||
|
|
||
|
/* phy init cnt */
|
||
|
uint16_t phy_init_cnt;
|
||
|
|
||
|
/* phy reinit cnt */
|
||
|
uint16_t phy_reinit_cnt;
|
||
|
|
||
|
uint8_t phy_mode;
|
||
|
}phy_status_t;
|
||
|
|
||
|
typedef struct {
|
||
|
uint32_t phy_status;
|
||
|
uint32_t force_0;
|
||
|
uint32_t force_1;
|
||
|
uint32_t force_2;
|
||
|
}ana_dbg_info_t;
|
||
|
|
||
|
/**
|
||
|
*@brief phy_get_status_printf phy status log to flash.
|
||
|
*@return [none.]
|
||
|
*/
|
||
|
void phy_get_status_printf();
|
||
|
|
||
|
/**
|
||
|
*@brief phy_get_status_printf_force dump phy status log to flash immediately.
|
||
|
*@return [none.]
|
||
|
*/
|
||
|
void phy_get_status_printf_force();
|
||
|
|
||
|
/**
|
||
|
*@brief phy_set_init_cnt phy set init cnt.
|
||
|
*@return [0.]
|
||
|
*/
|
||
|
uint16_t phy_set_init_cnt();
|
||
|
|
||
|
/**
|
||
|
*@brief phy_set_reinit_cnt phy set reinit cnt.
|
||
|
*@return [0.]
|
||
|
*/
|
||
|
uint16_t phy_set_reinit_cnt();
|
||
|
|
||
|
/**
|
||
|
*@brief phy_dump_busy_set.
|
||
|
*
|
||
|
* set dump busy flag of global phy ctxt.
|
||
|
*
|
||
|
*@param [none.]
|
||
|
*@exception [none.]
|
||
|
*@return [none.]
|
||
|
*/
|
||
|
void phy_dump_busy_set(bool_t en);
|
||
|
|
||
|
/**
|
||
|
*@brief get the false alarm number in every 4s
|
||
|
*
|
||
|
*
|
||
|
*@param [none.]
|
||
|
*@exception [none.]
|
||
|
*@return [the number of fc err]
|
||
|
*/
|
||
|
uint32_t phy_get_periodic_fc_err_num();
|
||
|
|
||
|
/**
|
||
|
*@brief phy_print_ana_dbg_info
|
||
|
*
|
||
|
*
|
||
|
*@param [none.]
|
||
|
*@exception [none.]
|
||
|
*@return [none.]
|
||
|
*/
|
||
|
void phy_print_ana_dbg_info();
|
||
|
|
||
|
/**
|
||
|
*@brief phy_get_granite_reg
|
||
|
*
|
||
|
*
|
||
|
*@param [none.]
|
||
|
*@exception [none.]
|
||
|
*@return [0.]
|
||
|
*/
|
||
|
uint32_t phy_get_granite_reg();
|
||
|
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|