#ifndef _ECPRI_TIMER_H_
#define _ECPRI_TIMER_H_

#include "typedef.h"
#include "phy_para.h"

//extern stPhyScsPara* phyPara;

//stEcpriTimerPara gEcpriTmrPara;
//stCpriDelayMeasure	cpriDelay;

/*
ecpri的pp1s选择信号;
3’b000:表示选择gmac_pps;
3’b001:表示选择gmac1_pps;
3’b011:表示选择pet_pps;
3’b101:表示选择gnss_pps_in；
3’b110表示选择stc_one_pps_out;
*/
typedef enum _tagEcpriPP1sSrc{
	ECPRI_PP1S_SRC_GMAC	= 0,
	ECPRI_PP1S_SRC_GMAC1 = 1,
	ECPRI_PP1S_SRC_CPRI_AUX_RFP_RX_JESD = 2,
	ECPRI_PP1S_SRC_CPRI_GMAC	= 3,
	ECPRI_PP1S_SRC_PET_PPS = 4,
	ECPRI_PP1S_SRC_GNSS	= 5,
	ECPRI_PP1S_SRC_STC	= 6
}numEcpriPP1sSrc;


void ecpri_init();

void init_ecpri_clk(void);

void init_ecpri_pma_rst(void);

void ecpri_pcs_rst_ctrl();

void ecpri_mtimer_init(int32_t nScsId, int32_t nTddSlotNum);

void ecpri_timer_init(int32_t nScsId, int32_t nTddSlotNum);

void ecpri_timer_clear_all_event();

void ecpri_1pps_src_init(uint8_t srcId);

void set_ecpri_1pps_scratch(void);

void set_ecpri_tmr_period(void);

void ecpri_timer_reconfig(phy_timer_config_ind_t *my_ecpritmr);

void ecpri_timer_clear_cell(uint8_t scsId);

void set_ecpri_tdd_offset(void);

void clear_ecpri_tdd_offset(void);

void set_ecpri_tx_slot_offset();

void clear_ecpri_tx_slot_offset();

void set_ecpri_rx_slot_offset();

void clear_ecpri_rx_slot_offset();

void set_ecpri_lte_fapi_offset(void);

void clear_ecpri_lte_fapi_offset(void);

int32_t set_ecpri_ape_slot_offset(uint32_t apeCoreId);

int32_t clear_ecpri_ape_slot_offset(uint32_t apeCoreId);


void start_ecpri_timer(void);

void stop_ecpri_timer(void);

uint64_t get_ecpri_scr_value();

void set_ecpri_timer_int(void);

void isr_ecpri_timer(void);


#endif

