|
|
#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_ */
|