138 lines
3.3 KiB
C
Raw Normal View History

2025-03-23 07:23:04 -07:00
#ifndef _JESD_TIMER_H_
#define _JESD_TIMER_H_
#include "typedef.h"
#include "phy_para.h"
#define JESD_TXRX_CHANGE_GAP 13000 // ns
#define JESD_RF_ON_GAP 8000
#define JESD_RF_OFF_GAP 2000
//#define JESD_TX_ADVANCE_SAMPLE 0 // 500 // sample
//#define JESD_RX_ADVANCE_SAMPLE 1600 // sample
//#define JESD_RRU_TD 0 // 480 // sample
#define JESD_TX_ADVANCE_NS 0
#define JESD_RX_ADVANCE_NS 13000
#define JESD_RRU_TD 0 // ns
typedef enum _tagJesdSndRcvMode
{
JESD_IO_CTRL = 0,
JESD_CSU_CTRL = 1
}numJesdSndRcvMode;
typedef enum _tagJesdTestMode
{
JESD_NORMAL_MODE = 0,
JESD_NORMAL_TO_TEST = 1,
JESD_TEST_MODE = 2,
JESD_TEST_TO_NORMAL = 3
}numJesdTestMode;
typedef enum _tagJesdInitStep
{
JESD_NO_INIT = 0,
JESD_CLK_INIT = 1,
JESD_TRANS_INIT = 2,
JESD_INIT_STEP_MAX = 3
}numJesdInitStep;
typedef struct _tagJesdDelay
{
uint32_t txOffset;
uint32_t rxOffset;
uint32_t tddOffset;
}stJesdDelay;
void jesd_init(uint8_t option);
int32_t jesd_mtimer_init(int32_t nTmrId, int32_t nScsId, int32_t nTddSlotNum);
int32_t jesd_timer_init(int32_t nTmrId, int32_t nScsId, int32_t nTddSlotNum);
// Э<><D0AD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>NR<4E><52>ǰ13us<75><73>LTE<54><45><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>LTEģʽ<C4A3>£<EFBFBD><C2A3><EFBFBD><EFBFBD>ڽ<EFBFBD>С<EFBFBD><D0A1>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD>øýӿڣ<D3BF><DAA3>޸<EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>
void jesd_set_protocol_rx_advance(uint32_t rxAdvance);
int32_t jesd_timer_reconfig(int32_t nTmrId, phy_timer_config_ind_t *my_jesdtmr);
int32_t jesd_timer_clear_cell(int32_t nTmrId, uint8_t scsId);
void jesd_timer_rcfg_act(int32_t nTmrId);
int32_t jesd_pin_ctrl(int32_t nTmrId);
void set_jesd_tmr_period(int32_t nTmrId);
void jesd_1pps_src_init(uint8_t srcId);
void set_jesd_1pps_scratch(int32_t nTmrId);
void set_jesd_sfn_offset(int32_t nTmrId);
void set_jesd_tdd_offset(int32_t nTmrId);
void clear_jesd_tdd_offset(int32_t nTmrId);
void set_jesd_tx_slot_offset(int32_t nTmrId);
void clear_jesd_tx_slot_offset(int32_t nTmrId);
void set_jesd_rx_slot_offset(int32_t nTmrId);
void clear_jesd_rx_slot_offset(int32_t nTmrId);
//void set_jesd_lte_fapi_offset(void);
//void clear_jesd_lte_fapi_offset(void);
int32_t set_jesd_ape_slot_offset(int32_t nTmrId, uint32_t apeCoreId);
int32_t clear_jesd_ape_slot_offset(int32_t nTmrId, uint32_t apeCoreId);
//int32_t set_jesd_csu_point(int32_t nTmrId, uint8_t nPointId);
int32_t set_jesd_csuon_point(int32_t nTmrId, uint8_t nPointId);
int32_t set_jesd_csuoff_point(int32_t nTmrId, uint8_t nPointId);
void set_jesd_txon_point(int32_t nTmrId, uint8_t nPointId);
void clear_jesd_txon_point(int32_t nTmrId);
void set_jesd_txoff_point(int32_t nTmrId, uint8_t nPointId);
void clear_jesd_txoff_point(int32_t nTmrId);
void set_jesd_rxon_point(int32_t nTmrId, uint8_t nPointId);
void clear_jesd_rxon_point(int32_t nTmrId);
void set_jesd_rxoff_point(int32_t nTmrId, uint8_t nPointId);
void clear_jesd_rxoff_point(int32_t nTmrId);
void start_jesd_timer(int32_t nTmrId);
void stop_jesd_timer(int32_t nTmrId);
uint64_t get_jesd_scr_value(int32_t nTmrId);
int32_t set_jesd_timer_int(int32_t nTmrId);
void isr_jesd_10ms_rx0(void);
void isr_jesd_10ms_rx1(void);
void isr_jesd_tdd_offset_rx0(void);
void isr_jesd_slot_rx0(void);
void isr_jesd_slot_rx1(void);
//void jesd_1pps_resync();
//void jesd_1pps_sfn_cal();
//void jesd_tdd_start_csu();
#endif