Go to the documentation of this file.
39 #ifndef AXI_JESD204_RX_H_
40 #define AXI_JESD204_RX_H_
#define JESD204_RX_REG_MAGIC
Definition: axi_jesd204_rx.c:56
#define JESD204_RX_REG_LINK_CONF2
Definition: axi_jesd204_rx.c:78
#define JESD204_RX_REG_ILAS(x, y)
Definition: axi_jesd204_rx.c:89
#define JESD204_EMB_STATE_GET(x)
Definition: axi_jesd204_rx.c:85
#define ADI_AXI_PCORE_VER(major, minor, patch)
Definition: axi_jesd204_rx.c:102
uint8_t subclass_version
Definition: axi_jesd204_rx.h:54
uint32_t num_lanes
Definition: axi_jesd204_rx.h:77
bool axi_jesd204_rx_check_lane_status(struct axi_jesd204_rx *jesd, uint32_t lane)
Check JESD204 RX Lane Status.
Definition: axi_jesd204_rx.c:439
int32_t axi_jesd204_rx_lane_clk_disable(struct axi_jesd204_rx *jesd)
JESD204 RX Lane Clock Disable.
Definition: axi_jesd204_rx.c:198
uint16_t frames_per_multiframe
Definition: axi_jesd204_rx.h:104
uint32_t lane_clk_khz
Definition: axi_jesd204_rx.h:110
uint32_t data_path_width
Definition: axi_jesd204_rx.h:79
uint32_t base
Definition: axi_jesd204_rx.h:73
Header file of Delay functions.
uint32_t axi_jesd204_rx_status_read(struct axi_jesd204_rx *jesd)
Read status of the JESD204 Receive Peripherial.
Definition: axi_jesd204_rx.c:208
#define JESD204_RX_REG_SYNTH_NUM_LANES
Definition: axi_jesd204_rx.c:58
#define NO_OS_DIV_ROUND_CLOSEST_ULL(x, y)
Definition: no_os_util.h:60
#define JESD204_RX_REG_LINK_DISABLE
Definition: axi_jesd204_rx.c:65
#define JESD204_RX_REG_LANE_ERRORS(x)
Definition: axi_jesd204_rx.c:88
const char * axi_jesd204_rx_link_status_label[]
Definition: axi_jesd204_rx.c:115
@ JESD204_EMB_STATE_INIT
Definition: axi_jesd204_rx.c:110
uint32_t axi_jesd204_rx_status_read(struct axi_jesd204_rx *jesd)
Read status of the JESD204 Receive Peripherial.
Definition: axi_jesd204_rx.c:208
#define JESD204_RX_ENCODER_GET(x)
Definition: axi_jesd204_rx.c:63
@ JESD204_RX_ENCODER_64B66B
Definition: axi_jesd204_rx.h:61
uint8_t octets_per_frame
Definition: axi_jesd204_rx.h:52
uint32_t tpl_data_path_width
Definition: axi_jesd204_rx.h:81
const char * axi_jesd204_rx_link_status_64b66b_l[]
Definition: axi_jesd204_rx.c:129
int32_t axi_jesd204_rx_init(struct axi_jesd204_rx **jesd204, const struct jesd204_rx_init *init)
Device initialization.
Definition: axi_jesd204_rx.c:559
int32_t axi_jesd204_rx_remove(struct axi_jesd204_rx *jesd)
Free resoulces allocated for JESD204 RX peripheral.
Definition: axi_jesd204_rx.c:634
const char * name
Definition: axi_jesd204_rx.h:98
uint32_t version
Definition: axi_jesd204_rx.h:75
#define JESD204_RX_REG_SYSREF_CONF_SYSREF_DISABLE
Definition: axi_jesd204_rx.c:70
uint8_t octets_per_frame
Definition: axi_jesd204_rx.h:102
#define JESD204_RX_LINK_CONF2_BUFFER_EARLY_RELEASE
Definition: axi_jesd204_rx.c:79
int32_t axi_jesd204_rx_init(struct axi_jesd204_rx **jesd204, const struct jesd204_rx_init *init)
Device initialization.
Definition: axi_jesd204_rx.c:559
Definition: axi_jesd204_rx.h:51
enum jesd204_rx_encoder encoder
Definition: axi_jesd204_rx.h:89
#define JESD204_RX_REG_SYNTH_REG_1
Definition: axi_jesd204_rx.c:61
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: delay.c:130
int32_t axi_jesd204_rx_lane_clk_enable(struct axi_jesd204_rx *jesd)
JESD204 RX Lane Clock Enable.
Definition: axi_jesd204_rx.c:185
#define JESD204_RX_REG_LINK_CONF0
Definition: axi_jesd204_rx.c:74
uint32_t device_clk_khz
Definition: axi_jesd204_rx.h:85
jesd204_rx_encoder
Definition: axi_jesd204_rx.h:58
uint8_t subclass
Definition: axi_jesd204_rx.h:106
int32_t axi_jesd204_rx_remove(struct axi_jesd204_rx *jesd)
Free resoulces allocated for JESD204 RX peripheral.
Definition: axi_jesd204_rx.c:634
#define JESD204_RX_REG_LINK_CONF4
Definition: axi_jesd204_rx.c:76
#define JESD204_RX_REG_LINK_STATE
Definition: axi_jesd204_rx.c:66
#define JESD204_RX_REG_LANE_LATENCY(x)
Definition: axi_jesd204_rx.c:87
uint16_t frames_per_multiframe
Definition: axi_jesd204_rx.h:53
uint32_t device_clk_khz
Definition: axi_jesd204_rx.h:108
int32_t axi_jesd204_rx_read(struct axi_jesd204_rx *jesd, uint32_t reg_addr, uint32_t *reg_val)
JESD204 RX AXI Data Read.
Definition: axi_jesd204_rx.c:172
#define JESD204_RX_REG_SYNTH_DATA_PATH_WIDTH
Definition: axi_jesd204_rx.c:59
#define PCORE_VERSION_MAJOR(x)
Definition: axi_jesd204_rx.c:105
const char * axi_jesd204_rx_emb_state_label[]
Definition: axi_jesd204_rx.c:136
int32_t no_os_axi_io_read(uint32_t base, uint32_t offset, uint32_t *data)
AXI IO Altera specific read function.
Definition: axi_io.c:59
int32_t axi_jesd204_rx_apply_config(struct axi_jesd204_rx *jesd, struct jesd204_rx_config *config)
Apply the JESD204 RX configuration.
Definition: axi_jesd204_rx.c:507
#define JESD204_SYNTH_DATA_PATH_WIDTH_GET(x)
Definition: axi_jesd204_rx.c:98
#define PCORE_VERSION_PATCH(x)
Definition: axi_jesd204_rx.c:107
struct jesd204_rx_config config
Definition: axi_jesd204_rx.h:83
int32_t axi_jesd204_rx_watchdog(struct axi_jesd204_rx *jesd)
JESD204 RX Watchdog.
Definition: axi_jesd204_rx.c:475
@ JESD204_RX_ENCODER_UNKNOWN
Definition: axi_jesd204_rx.h:59
#define JESD204_RX_REG_SYSREF_STATUS
Definition: axi_jesd204_rx.c:72
@ JESD204_EMB_STATE_LOCK
Definition: axi_jesd204_rx.c:112
const char * axi_jesd204_rx_lane_status_label[]
Definition: axi_jesd204_rx.c:122
int32_t axi_jesd204_rx_watchdog(struct axi_jesd204_rx *jesd)
JESD204 RX Watchdog.
Definition: axi_jesd204_rx.c:475
#define NO_OS_BIT(x)
Definition: no_os_util.h:51
#define JESD204_RX_REG_LINK_STATUS
Definition: axi_jesd204_rx.c:81
int32_t axi_jesd204_rx_laneinfo_read(struct axi_jesd204_rx *jesd, uint32_t lane)
Read JESD204 RX Lane Info.
Definition: axi_jesd204_rx.c:411
#define JESD204_TPL_DATA_PATH_WIDTH_GET(x)
Definition: axi_jesd204_rx.c:100
@ JESD204_EMB_STATE_HUNT
Definition: axi_jesd204_rx.c:111
int32_t axi_jesd204_rx_laneinfo_read(struct axi_jesd204_rx *jesd, uint32_t lane)
Read JESD204 RX Lane Info.
Definition: axi_jesd204_rx.c:411
Definition: axi_jesd204_rx.h:69
#define JESD204_RX_REG_VERSION
Definition: axi_jesd204_rx.c:55
@ JESD204_RX_ENCODER_8B10B
Definition: axi_jesd204_rx.h:60
Driver for the Analog Devices AXI-JESD204-RX peripheral.
int32_t no_os_axi_io_write(uint32_t base, uint32_t offset, uint32_t data)
AXI IO Altera specific write function.
Definition: axi_io.c:73
uint32_t base
Definition: axi_jesd204_rx.h:100
#define JESD204_RX_MAGIC
Definition: axi_jesd204_rx.c:94
JESD204B/C Receive Peripheral Initialization Structure.
Definition: axi_jesd204_rx.h:96
int32_t axi_jesd204_rx_write(struct axi_jesd204_rx *jesd, uint32_t reg_addr, uint32_t reg_val)
JESD204 RX AXI Data Write.
Definition: axi_jesd204_rx.c:157
int32_t axi_jesd204_rx_get_lane_errors(struct axi_jesd204_rx *jesd, uint32_t lane, uint32_t *errors)
Read the JESD204 RX Lane Errors.
Definition: axi_jesd204_rx.c:293
uint32_t lane_clk_khz
Definition: axi_jesd204_rx.h:87
const char * name
Definition: axi_jesd204_rx.h:71
Implementation of utility functions.
#define PCORE_VERSION_MINOR(x)
Definition: axi_jesd204_rx.c:106
#define JESD204_RX_REG_SYSREF_CONF
Definition: axi_jesd204_rx.c:69
int32_t axi_jesd204_rx_lane_clk_disable(struct axi_jesd204_rx *jesd)
JESD204 RX Lane Clock Disable.
Definition: axi_jesd204_rx.c:198
@ JESD204_RX_ENCODER_MAX
Definition: axi_jesd204_rx.h:62
int32_t axi_jesd204_rx_lane_clk_enable(struct axi_jesd204_rx *jesd)
JESD204 RX Lane Clock Enable.
Definition: axi_jesd204_rx.c:185
#define JESD204_RX_REG_LANE_STATUS(x)
Definition: axi_jesd204_rx.c:83
#define NO_OS_DIV_ROUND_CLOSEST(x, y)
Definition: no_os_util.h:58
#define JESD204_RX_REG_LINK_CLK_RATIO
Definition: axi_jesd204_rx.c:67