421 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			421 lines
		
	
	
		
			13 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_TXRX_PWR_H
							 | 
						||
| 
								 | 
							
								#define PHY_TXRX_PWR_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define PHY_FULL_PWR_DBUV             (137)
							 | 
						||
| 
								 | 
							
								#define PHY_MP_PWR_REDUCE             (30)
							 | 
						||
| 
								 | 
							
								#define PHY_DEF_RMS                   (58)
							 | 
						||
| 
								 | 
							
								#define PHY_PWR_ADJ_MAX               (42)
							 | 
						||
| 
								 | 
							
								#define PHY_PWR_DIG_ATT_MAX           (12)
							 | 
						||
| 
								 | 
							
								#define PHY_PWR_ANA_MAX               (18)
							 | 
						||
| 
								 | 
							
								#define PHY_PWR_ANA_STEP_LEN          (6)
							 | 
						||
| 
								 | 
							
								#define PHY_PWR_ANA_STEP_NUM          (3)
							 | 
						||
| 
								 | 
							
								#define PHY_CERT_DST_RMS              (52)
							 | 
						||
| 
								 | 
							
								#define PHY_PWR_TD_MIN                (-12)
							 | 
						||
| 
								 | 
							
								#define PHY_PWR_CTRL_THRESHHOLD       (24)
							 | 
						||
| 
								 | 
							
								#define MIN_TX_POWER                  (PHY_FULL_PWR_DBUV - PHY_PWR_ADJ_MAX)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct fd_td_ana_full{
							 | 
						||
| 
								 | 
							
								    uint8_t fd_pwr_int;
							 | 
						||
| 
								 | 
							
								    uint8_t fd_pwr_frac :5,
							 | 
						||
| 
								 | 
							
								            ana_pwr :3;
							 | 
						||
| 
								 | 
							
								    uint8_t fd_pwr_frac_lp; /* 4bit */
							 | 
						||
| 
								 | 
							
								    uint8_t td_pwr;
							 | 
						||
| 
								 | 
							
								} fd_td_ana_full_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct phy_psd_full{
							 | 
						||
| 
								 | 
							
								    uint8_t full_dbuv;
							 | 
						||
| 
								 | 
							
								    uint8_t lp_dbuv;
							 | 
						||
| 
								 | 
							
								} phy_psd_full_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct phy_fd_td_ana_full{
							 | 
						||
| 
								 | 
							
								    uint8_t band_id;
							 | 
						||
| 
								 | 
							
								    fd_td_ana_full_t fd_td_ana_full;
							 | 
						||
| 
								 | 
							
								    phy_psd_full_t psd_full;
							 | 
						||
| 
								 | 
							
								} phy_fd_td_ana_full_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_pgf_pga_dc_cal.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * config dc offset of pgf and pga moudle to analog register.
							 | 
						||
| 
								 | 
							
								 * update the tone mask table.
							 | 
						||
| 
								 | 
							
								 *@param gain_idx               [The index of gain table.]
							 | 
						||
| 
								 | 
							
								 *@param pgf_offset             [PGF DC offset.]
							 | 
						||
| 
								 | 
							
								 *@param pga_offset             [PGA DC offset.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_pgf_pga_dc_cal(uint16_t gain_idx, \
							 | 
						||
| 
								 | 
							
								        uint16_t pgf_offset, uint16_t pga_offset);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_pgf_pga_dc_cal_get.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * get dc offset of pgf and pga from gain table.
							 | 
						||
| 
								 | 
							
								 * update the tone mask table.
							 | 
						||
| 
								 | 
							
								 *@param gain_idx               [The index of gain table.]
							 | 
						||
| 
								 | 
							
								 *@param pgf_offset             [PGF DC offset.]
							 | 
						||
| 
								 | 
							
								 *@param pga_offset             [PGA DC offset.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_pgf_pga_dc_cal_get(uint16_t gain_idx, \
							 | 
						||
| 
								 | 
							
								        volatile uint16_t *pgf_offset, volatile uint16_t *pga_offset);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_pgf_bq_pga_gain_get.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * get gain info.
							 | 
						||
| 
								 | 
							
								 * update the tone mask table.
							 | 
						||
| 
								 | 
							
								 *@param gain_idx               [The index of gain table.]
							 | 
						||
| 
								 | 
							
								 *@param pgf                    [PGF gain.]
							 | 
						||
| 
								 | 
							
								 *@param bq                     [bq gain.]
							 | 
						||
| 
								 | 
							
								 *@param pga                    [PGA gain.]
							 | 
						||
| 
								 | 
							
								 *@param lna                    [lna gain.]
							 | 
						||
| 
								 | 
							
								 *@param byphpf                 [bypass hpf.]
							 | 
						||
| 
								 | 
							
								 *@param enord2                 [en 2ord hpf.]
							 | 
						||
| 
								 | 
							
								 *@param bq_qvalue              [bq qvalue not use in kl1.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_pgf_bq_pga_gain_get(uint16_t gain_idx, \
							 | 
						||
| 
								 | 
							
								        volatile uint8_t *pgf, \
							 | 
						||
| 
								 | 
							
								        volatile uint8_t *bq, \
							 | 
						||
| 
								 | 
							
								        volatile uint8_t *pga, \
							 | 
						||
| 
								 | 
							
								        volatile uint8_t *lna, \
							 | 
						||
| 
								 | 
							
								        volatile uint8_t *byphpf, \
							 | 
						||
| 
								 | 
							
								        volatile uint8_t *enord2, \
							 | 
						||
| 
								 | 
							
								        volatile uint8_t *bq_qvalue);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy tone amplitue reduce(db) set.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param start_tone [The index of start tone.]
							 | 
						||
| 
								 | 
							
								 *@param end_tone [The index of end tone.]
							 | 
						||
| 
								 | 
							
								 *@param reduce_db [tx power reduce db]
							 | 
						||
| 
								 | 
							
								 *@exception [none.]
							 | 
						||
| 
								 | 
							
								 *@return [none]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_tone_amp_reduce_set(uint32_t start_tone, uint32_t end_tone,
							 | 
						||
| 
								 | 
							
								    uint8_t reduce_db);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_amp_set.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Here is more APIs used to initialize phy configurations.
							 | 
						||
| 
								 | 
							
								 * amptitude is one of the ways to fit CUSTOM0.
							 | 
						||
| 
								 | 
							
								 *@param start_tone [The index of start tone.]
							 | 
						||
| 
								 | 
							
								 *@param end_tone [The index of end tone.]
							 | 
						||
| 
								 | 
							
								 *@param amp_value [The amptitude value.]
							 | 
						||
| 
								 | 
							
								 *@exception [none.]
							 | 
						||
| 
								 | 
							
								 *@return [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_tone_amp_set(uint32_t start_tone, uint32_t end_tone, uint8_t amp_value);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_apm_clr.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Here is more APIs used to initialize phy configurations.
							 | 
						||
| 
								 | 
							
								 * amptitude is one of the ways to fit CUSTOM0.
							 | 
						||
| 
								 | 
							
								 *@param start_tone [The index of start tone.]
							 | 
						||
| 
								 | 
							
								 *@param end_tone [The index of end tone.]
							 | 
						||
| 
								 | 
							
								 *@exception [none.]
							 | 
						||
| 
								 | 
							
								 *@return [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_tone_apm_clr(uint32_t start_tone, uint32_t end_tone);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_rms_get_by_valid_tone.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * get band max rms depend on valid tone number.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param valid_tone_num         [valid tone number.]
							 | 
						||
| 
								 | 
							
								 *@param fd_rms                 [return max rms with specail band id.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [0:success,others fail.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_rms_get_by_valid_tone(uint16_t valid_tone_num, uint8_t *fd_rms);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_gp_band_rms_get_by_valid_tone.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * get short band rms depend on valid tone number.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param valid_tone_num         [valid tone number.]
							 | 
						||
| 
								 | 
							
								 *@param fd_rms                 [return max rms with specail band id.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [0:success,others fail.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_gp_band_rms_get_by_valid_tone(uint16_t valid_tone_num, uint8_t *fd_rms);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_tone_msk_rms_get_by_valid_tone.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * get band rms with tone mask depend on valid tone number.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param valid_tone_num         [valid tone number.]
							 | 
						||
| 
								 | 
							
								 *@param fd_rms                 [return max rms with specail band id.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [0:success,others fail.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_tone_msk_rms_get_by_valid_tone(uint16_t valid_tone_num, \
							 | 
						||
| 
								 | 
							
								    uint8_t *fd_rms);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_time_rms_set.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * set time domain rms value.
							 | 
						||
| 
								 | 
							
								 *@param [none.]
							 | 
						||
| 
								 | 
							
								 *@exception [none.]
							 | 
						||
| 
								 | 
							
								 *@return [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_time_rms_set(void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_fd_rms_get.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * get frequency domain rms value.
							 | 
						||
| 
								 | 
							
								 *@param valid_tone_num          [valid tone number.]
							 | 
						||
| 
								 | 
							
								 *@param *para_int               [integer part of rms.]
							 | 
						||
| 
								 | 
							
								 *@param *para_frac              [fractional part of rms.]
							 | 
						||
| 
								 | 
							
								 *@exception                     [none.]
							 | 
						||
| 
								 | 
							
								 *@return                        [0:success,others fail.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_fd_rms_get(uint32_t valid_tone_num, uint8_t *para_int, uint8_t *para_frac);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_pwr_adjust_set.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *  Max 42dB with 18dB ana pga and 24dB att
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param uint_dbuv          [target power dBuV.]
							 | 
						||
| 
								 | 
							
								 *@exception                [none.]
							 | 
						||
| 
								 | 
							
								 *@return                   [ERR_OK and others ERR_FAIL.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_pwr_adjust_set(uint8_t uint_dbuv);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_high_perf_set.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *  enable the best performance with spur and pulse.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param en                 [true: enable, false: disable.]
							 | 
						||
| 
								 | 
							
								 *@exception                [none.]
							 | 
						||
| 
								 | 
							
								 *@return                   [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_high_perf_set(bool_t en);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_get_def_tx_power.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * get fd rms depend on valid tone number.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param hw_rate_id             [hardware rate id.]
							 | 
						||
| 
								 | 
							
								 *@param hw_band_id             [hardware band id.]
							 | 
						||
| 
								 | 
							
								 *@param para_int               [return rms integer part.]
							 | 
						||
| 
								 | 
							
								 *@param para_frac              [return rms fraction part.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [0:success,others fail.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_get_def_tx_power( \
							 | 
						||
| 
								 | 
							
								    uint32_t hw_rate_id, \
							 | 
						||
| 
								 | 
							
								    uint32_t hw_band_id, \
							 | 
						||
| 
								 | 
							
								    uint8_t *para_int, \
							 | 
						||
| 
								 | 
							
								    uint8_t *para_frac);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_get_proto_band_fc_num_from_band_table.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *                                 get proto band fc num .
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param proto_band_id             [proto band id]
							 | 
						||
| 
								 | 
							
								 *@return                          [0:fail ,others fc num.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_get_proto_band_fc_num_from_band_table(uint32_t proto_band_id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_tx_pwr_to_fd_td_ana_value.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * get tx fd rms, td, analog power depend on rate and band id.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param hw_rate_id             [hardware rate id.]
							 | 
						||
| 
								 | 
							
								 *@param band_id                [proto band id.]
							 | 
						||
| 
								 | 
							
								 *@param uint_dbuv              [tx total power.]
							 | 
						||
| 
								 | 
							
								 *@param fd_para_int            [return fd rms integer part.]
							 | 
						||
| 
								 | 
							
								 *@param fd_para_frac           [return fd rms fraction part.]
							 | 
						||
| 
								 | 
							
								 *@param td_pwr                 [return td power.]
							 | 
						||
| 
								 | 
							
								 *@param ana_pwr                [return analog power.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [0:success,others fail.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_tx_pwr_to_fd_td_ana_value( \
							 | 
						||
| 
								 | 
							
								    uint32_t hw_rate_id, \
							 | 
						||
| 
								 | 
							
								    uint32_t band_id, \
							 | 
						||
| 
								 | 
							
								    uint8_t uint_dbuv, \
							 | 
						||
| 
								 | 
							
								    uint8_t *fd_pwr_int, \
							 | 
						||
| 
								 | 
							
								    uint8_t *fd_pwr_frac, \
							 | 
						||
| 
								 | 
							
								    uint8_t *td_pwr, \
							 | 
						||
| 
								 | 
							
								    uint8_t *ana_pwr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_tx_pwr_psd_to_dbuv.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * convert psd to dbuv depend on band id.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param band_id                [proto band id.]
							 | 
						||
| 
								 | 
							
								 *@param tbl                    [tx full power table.]
							 | 
						||
| 
								 | 
							
								 *@param tbl_len                [tx full power table length.]
							 | 
						||
| 
								 | 
							
								 *@param uint_psd               [tx psd.]
							 | 
						||
| 
								 | 
							
								 *@param uint_dbuv              [return tx power.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [0:success,others fail.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_tx_pwr_psd_to_dbuv( \
							 | 
						||
| 
								 | 
							
								    uint32_t band_id, \
							 | 
						||
| 
								 | 
							
								    const phy_fd_td_ana_full_t *tbl, \
							 | 
						||
| 
								 | 
							
								    uint16_t tbl_len, \
							 | 
						||
| 
								 | 
							
								    uint8_t uint_psd, \
							 | 
						||
| 
								 | 
							
								    uint8_t *uint_dbuv);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_get_pwr_psd_fix_db.  phy get psd.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@exception                      [none.]
							 | 
						||
| 
								 | 
							
								 *@return                         [psd]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_get_pwr_psd_fix_db();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_get_pwr_ctl_en.     phy get power control enable.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@exception                     [none.]
							 | 
						||
| 
								 | 
							
								 *@return                        [enable]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_get_pwr_ctl_en();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_get_pwr_reduce_db.     phy get power reduce db.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@exception                     [none.]
							 | 
						||
| 
								 | 
							
								 *@return                        [reduce db]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_get_pwr_reduce_db();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_get_tx_pwr_limit.   phy get power limit.
							 | 
						||
| 
								 | 
							
								 *@param single_proto_band       [single proto band.]
							 | 
						||
| 
								 | 
							
								 *@exception                     [none.]
							 | 
						||
| 
								 | 
							
								 *@return                        [tx power], KL1 device returns a fixed value
							 | 
						||
| 
								 | 
							
								 *                               of 0, indicating that the interface is not
							 | 
						||
| 
								 | 
							
								 *                               supported
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_get_tx_pwr_limit(uint32_t single_proto_band);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_set_tx_pwr_limit.   phy set power limit.
							 | 
						||
| 
								 | 
							
								 *@param pwr_db                  [pwr_db.]
							 | 
						||
| 
								 | 
							
								 *@exception                     [none.]
							 | 
						||
| 
								 | 
							
								 *@return                        [0]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_set_tx_pwr_limit(uint32_t pwr_db);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_fd_rms_update.      phy_fd_rms_update.
							 | 
						||
| 
								 | 
							
								 *@exception                     [none.]
							 | 
						||
| 
								 | 
							
								 *@return                        [null]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_fd_rms_update(void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_tx_resp_pwr_ctl_en.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * control tx sack power.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param fd_int_en              [fd int ctl.]
							 | 
						||
| 
								 | 
							
								 *@param fd_frac_en             [fd frac ctl.]
							 | 
						||
| 
								 | 
							
								 *@param td_en                  [td ctl.]
							 | 
						||
| 
								 | 
							
								 *@param ana_en                 [ana ctl.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_tx_resp_pwr_ctl_en(
							 | 
						||
| 
								 | 
							
								    uint8_t fd_int_en, uint8_t fd_frac_en, uint8_t td_en, uint8_t ana_en);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_set_tx_resp_pwr.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * control tx sack power value.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param fd_int                 [fd int value.]
							 | 
						||
| 
								 | 
							
								 *@param fd_frac                [fd frac value.]
							 | 
						||
| 
								 | 
							
								 *@param td                     [td value.]
							 | 
						||
| 
								 | 
							
								 *@param ana                    [ana value.]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_set_tx_resp_pwr(
							 | 
						||
| 
								 | 
							
								    uint8_t fd_int, uint8_t fd_frac, uint8_t td, uint8_t ana);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_overstress_power_down. phy overstress power down.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param dowm_db                [down power db]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return                       [none.]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_overstress_power_down(uint32_t dowm_db);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_get_default_tx_pwr. phy get default tx power.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param band_id                [band id]
							 | 
						||
| 
								 | 
							
								 *@param uint_dbuv              [set power dbuv]
							 | 
						||
| 
								 | 
							
								 *@param dlt_max                [full power - lp power]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return uint32_t              [success or not]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_get_default_tx_pwr(uint32_t band_id, uint8_t *uint_dbuv,
							 | 
						||
| 
								 | 
							
								    uint8_t *dlt_max);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_set_common_pwr_reg. phy set power by reg.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param pwr_db                 [power db]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return uint32_t              [success or not]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t phy_set_common_pwr_reg(uint32_t pwr_db);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief phy_set_sack_tx_power. phy set sack power by reg.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *@param pwr_db                 [power db]
							 | 
						||
| 
								 | 
							
								 *@exception                    [none.]
							 | 
						||
| 
								 | 
							
								 *@return void                  [void]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void phy_set_sack_tx_power(uint32_t pwr_db);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // !HW_TONEMASK_H
							 |