Files
kunlun/ftm/inc/mp_mode.h
2024-09-28 14:24:04 +08:00

111 lines
3.1 KiB
C
Executable File

/****************************************************************************
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 MP_MODE_H
#define MP_MODE_H
#include "phy_rf_chn.h"
#ifdef __cplusplus
extern "C" {
#endif
#define IOT_MP_MODE_DIRECT_ENABLE 0
#define IOT_MP_TX_MODE_ENABLE 0
#define IOT_MP_RX_MODE_ENABLE 0
#define IOT_MP_AUTO_TONE_TX 0
#define IOT_MP_RF_MODE_DIRECT_ENABLE 0
/* mp rf golden tx power info count*/
#define IOT_MP_RF_GU_TX_POWER_INFO_CNT 10
/* pack for the structures in the whole file */
#pragma pack(push) // save the pack status
#pragma pack(1) // 1 byte align
/* mp rf golden tx tone power info */
typedef struct _mp_rf_gu_tx_tone_pwr_info_t {
/* power, unit: dbm */
int8_t power;
/* tx rf_att, range: [0x7e, 0x7d, 0x7b, 0x77, 0x6f, 0x5f, 0x3f] */
uint8_t rf_att;
/* if gain, range: 0~31 */
uint16_t if_gain : 5,
/* ldovs, range: 0~511 */
ldovs : 9,
/* rservd */
rsvd : 2;
} mp_rf_gu_tx_tone_pwr_info_t;
typedef struct _mp_rf_gu_cali_t {
/* reserved for future */
uint32_t rsvd0;
/* how much valid data has been stored */
uint8_t valid_rx_gain_item_cnt;
/* rf golden gain calibration value */
int8_t rx_gain_cal[PHY_RF_GAIN_MAX - PHY_RF_GAIN_MIN + 1];
/* tx tone power info */
mp_rf_gu_tx_tone_pwr_info_t power_info[IOT_MP_RF_GU_TX_POWER_INFO_CNT];
/* rservd for future */
uint8_t rsvd[93];
} mp_rf_gu_cali_t;
#pragma pack(pop) // restore the pack status
/**
*@brief mp_pt_golden_nid_config.
* Golden Nid GPIO Status to config nid.
*/
uint8_t mp_pt_golden_nid_config();
/**
*@brief iot_init_mp_mode_entry.
* This special API is designed for production line testing.
* Enter different mode in mp mode directly.
*
*@param none [none.]
*@exception [none.]
*@return [none.]
*/
void iot_init_mp_mode_entry();
/**
*@brief mp_pt_rf_gu_cali_load.
* get the calibration struct.
*
*@param cali_data [calibration value corresponding to gain.]
*@return [0 success; others fail]
*/
uint8_t mp_pt_rf_gu_cali_load(mp_rf_gu_cali_t **cali_data);
/**
*@brief mp_pt_rf_gu_cali_commit.
* save the calibration data.
*
*@return [0 success; others fail]
*/
uint8_t mp_pt_rf_gu_cali_commit();
#ifdef __cplusplus
}
#endif
#endif /* MP_MODE_H */