Realtek/inc/platform/auto_k_rf.h

108 lines
3.8 KiB
C
Raw Permalink Normal View History

2025-11-25 10:21:47 +08:00
#ifndef _AUTO_K_RF_H_
#define _AUTO_K_RF_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define FLT_MAX 40000
#define K_RF_SUCCESS 0
#define K_RF_READ_DRIFT_FAIL 1
#define K_RF_K_FAIL 2
#define K_RF_WRITE_CONFIG_FAIL 3
#define BASE_MAGNIFIED 1000000
#define BIT0 0x00000001
#define BIT1 0x00000002
#define BIT2 0x00000004
#define BIT3 0x00000008
#define BIT4 0x00000010
#define BIT5 0x00000020
#define BIT6 0x00000040
#define BIT7 0x00000080
#define BIT8 0x00000100
#define BIT9 0x00000200
#define BIT10 0x00000400
#define BIT11 0x00000800
#define BIT12 0x00001000
#define BIT13 0x00002000
#define BIT14 0x00004000
#define BIT15 0x00008000
#define BIT16 0x00010000
#define BIT17 0x00020000
#define BIT18 0x00040000
#define BIT19 0x00080000
#define BIT20 0x00100000
#define BIT21 0x00200000
#define BIT22 0x00400000
#define BIT23 0x00800000
#define BIT24 0x01000000
#define BIT25 0x02000000
#define BIT26 0x04000000
#define BIT27 0x08000000
#define BIT28 0x10000000
#define BIT29 0x20000000
#define BIT30 0x40000000
#define BIT31 0x80000000
typedef unsigned char BOOLEAN;
typedef void VOID;
typedef unsigned char UCHAR;
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned int UINT32;
typedef unsigned long long UINT64;
typedef signed char CHAR;
typedef signed char INT8;
typedef signed short INT16;
typedef signed int INT32;
typedef signed long long INT64;
#define MODEM_PI_PAGE_0 0
#define MODEM_PI_PAGE_1 1
#define MODEM_PI_PAGE_2 2
#define MODEM_PI_PAGE_3 3
#define MODEM_PI_PAGE_4 4
#define MODEM_PI_PAGE_5 5
#define MODEM_PI_PAGE_6 6
#define MODEM_PI_PAGE_7 7
#define TRANS_MODEM_REG(x) (((x) >> 1) | 0x40) /* this is used to translate byte address to word address*/
extern UINT32(*rtk_read_modem_radio_reg_pi)(UCHAR modem_page, UCHAR addr, UCHAR type);
extern void (*rtk_write_modem_radio_reg_pi)(UCHAR modem_page, UCHAR addr, UCHAR type, UINT16 val);
extern UINT16(*rtk_ioq_read_rfc_reg)(UINT8);
extern void (*rtk_write_rfc_reg_pi)(UINT8, UINT16);
extern void (*rtk_update_rfc_reg_pi)(UINT8, UINT16, UINT16);
#define RTK_WRITE_RF_REG_PI(waddr, value) rtk_write_rfc_reg_pi(waddr, value)
#define RTK_READ_RF_REG_PI(waddr) rtk_ioq_read_rfc_reg(waddr)
#define RTK_UPDATE_RF_REG_PI(waddr, bm_mask, value) rtk_update_rfc_reg_pi(waddr, bm_mask, value)
#define RTK_WRITE_MODEM_REG_PI(modem_page, waddr, value) \
rtk_write_modem_radio_reg_pi(modem_page, waddr, TYPE_MODEM, value)
#define RTK_READ_MODEM_REG_PI(modem_page, waddr) rtk_read_modem_radio_reg_pi(modem_page, waddr, TYPE_MODEM)
#define RTK_UPDATE_MODEM_REG_PI(modem_page, waddr, bm_mask, value) \
{ \
UINT16 temp = RTK_READ_MODEM_REG_PI(modem_page, waddr); \
RTK_WRITE_MODEM_REG_PI(modem_page, waddr, (temp & ~(bm_mask)) | ((bm_mask) & (value))); \
}
void init_dft(UINT8 rx_channel, UINT16 rx_gain, UINT16 dft_size, UINT16 pwr_avg_times,
UINT8 reg_dft_sum_scale, UINT32 *reg08, UINT32 *reg0A);
void deinit_dft(UINT32 reg08, UINT32 reg0A);
double modem_dft(double IF_val, UINT32 *raw_data);
uint8_t Auto_K_RF(uint8_t rx_channel, uint32_t freq_drift_threshold, uint8_t *cal_xtal_result);
uint8_t Auto_K_RF_MP(uint8_t rx_channel, uint32_t freq_drift_threshold, uint8_t *cal_xtal_result,
uint8_t cl_type, uint8_t calMethod);
#ifdef __cplusplus
}
#endif
#endif /* _AUTO_K_RF_H_ */