WXK
2024-12-16 78e84fcf264afd731cd66c807d9fcb690fe12126
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
 
#ifndef RF_PHY_H_
#define RF_PHY_H_
 
#include "utils/defs_types.h"
 
#define PHY_CLK           32 // unit:MHz
#define PHY_CLK_PRESCALE  2  // XXX: stable value = 4
 
#define REG_WRITE_BITS(reg, mask, value)    (reg) = (((reg) & ~(mask)) | (value))
 
enum{
    RF_RW_MODE_READ      = 0x03,
    RF_RW_MODE_READ_EXE  = 0x13,
 
    RF_RW_MODE_WRITE     = 0x02,
    RF_RW_MODE_WRITE_EXE = 0x12,
};
 
typedef uint32_t (*RF_TxPowerPreHandlerCback_t)(int8_t txPwr);
void RF_RegisterTxPwrPreHandler(RF_TxPowerPreHandlerCback_t func);
 
void RF_SetPhyAgcMode(uint8_t agcMode);
 
void RF_PhyInit(void);
 
void RF_EnableLDO(void);
void RF_DisableLDO(void);
 
void RF_PhyResetSeq(void);
 
void RF_SetPowerLevel(int8_t tx_pwr);
 
void RF_SetChannel(uint8_t chan);
void RF_SetBlePhy(uint8_t rxPhy, uint8_t txPhy, uint8_t phyOpt);
void RF_EnablePhy(uint8_t enable);
 
void RF_SetPhyCfgTime(uint8_t op_mode);
void RF_PhyResetEx(void);
uint16_t RF_GetTxSettleTime(void);
uint16_t RF_GetRxSettleTime(void);
 
int8_t RF_CalcRssi(int32_t rssiInit);
 
 
/* RF PHY SPI API */
void RF_SetPhySpiClk(uint8_t div);
uint32_t RF_WritePhyCfg(const uint32_t *cmd, const uint32_t cmdNum, uint32_t *pRspBuf);
 
uint8_t RF_ReadReg(uint8_t addr, uint32_t resultBuf[1]);
void RF_WriteReg(uint32_t *cmd, uint8_t cmdLen);
void RF_WriteRegEnd(void);
 
uint32_t RF_ReadWritePhyReg(uint8_t rwMode, uint8_t addr, uint8_t data);
void RF_SetPhyRegPage(uint8_t pageId);
 
/* RF Msic API */
extern void dcoc_calibration_process(void);
extern bool_t check_dcoc_calib_ok(void);
 
#endif /* RF_PHY_H_ */