Go to the documentation of this file.
54 #define ADXCVR_SYS_CLK_CPLL 0x00
55 #define ADXCVR_SYS_CLK_QPLL1 0x02
56 #define ADXCVR_SYS_CLK_QPLL0 0x03
59 #define ADXCVR_OUTCLK_PCS 1
60 #define ADXCVR_OUTCLK_PMA 2
61 #define ADXCVR_REFCLK 3
62 #define ADXCVR_REFCLK_DIV2 4
63 #define ADXCVR_PROGDIV_CLK 5
140 unsigned int drp_port,
145 unsigned int drp_port,
162 unsigned long parent_rate);
int adxcvr_clk_enable(struct adxcvr *xcvr)
AXI ADXCVR Clock Enable.
Definition: axi_adxcvr.c:485
enum axi_fpga_speed_grade speed_grade
Definition: xilinx_transceiver.h:180
#define AXI_INFO_FPGA_DEV_PACKAGE(info)
Definition: clk_axi_clkgen.c:73
uint32_t timeout
Definition: ad413x.c:55
uint32_t lane_rate_khz
Definition: altera_adxcvr.h:103
bool export_no_os_clk
Definition: axi_adxcvr.h:127
#define AXI_PCORE_VER_MAJOR(version)
Definition: axi_sysid.h:65
Driver for the Xilinx High-speed transceiver dynamic reconfiguration.
int32_t adxcvr_remove(struct adxcvr *xcvr)
adxcvr_remove
Definition: altera_adxcvr.c:495
const char * name
Definition: altera_adxcvr.h:96
int xilinx_xcvr_calc_qpll_config(struct xilinx_xcvr *xcvr, uint32_t sys_clk_sel, uint32_t refclk_khz, uint32_t lane_rate_khz, struct xilinx_xcvr_qpll_config *conf, uint32_t *out_div)
Definition: xilinx_transceiver.c:674
bool qpll_enable
Definition: axi_adxcvr.h:77
const struct no_os_clk_platform_ops adxcvr_clk_ops
adxcvr clock ops
Definition: axi_adxcvr.c:761
const struct no_os_clk_platform_ops * platform_ops
Definition: no_os_clk.h:56
int adxcvr_clk_set_rate(struct adxcvr *xcvr, unsigned long rate, unsigned long parent_rate)
AXI ADXCVR Clock Set Rate.
Definition: axi_adxcvr.c:315
int32_t adxcvr_status_error(struct adxcvr *xcvr)
AXI ADXCVR Status Read.
Definition: axi_adxcvr.c:439
enum axi_fpga_family family
Definition: xilinx_transceiver.h:179
#define ADXCVR_DRP_PORT_ADDR_COMMON
Definition: axi_adxcvr.c:90
ADI JESD204B/C AXI_ADXCVR Highspeed Transceiver Device structure.
Definition: altera_adxcvr.h:95
int adxcvr_drp_write(struct adxcvr *xcvr, unsigned int drp_port, unsigned int reg, unsigned int val)
AXI ADXCVR DPR Port Write.
Definition: axi_adxcvr.c:205
uint32_t ref_rate_khz
Definition: axi_adxcvr.h:87
#define ADXCVR_PROGDIV_CLK
Definition: axi_adxcvr.h:63
#define pr_err(fmt, args...)
Definition: no_os_print_log.h:94
Header file of Delay functions.
#define ADXCVR_REG_DRP_SEL(x)
Definition: axi_adxcvr.c:79
#define ADXCVR_BUFSTATUS_RST
Definition: axi_adxcvr.c:61
int32_t adxcvr_no_os_clk_set_rate(struct no_os_clk_desc *desc, uint64_t rate)
Definition: axi_adxcvr.c:748
@ XILINX_XCVR_LEGACY_TYPE_S7_GTX2
Definition: xilinx_transceiver.h:87
const char * name
Definition: no_os_clk.h:52
#define pr_info(fmt, args...)
Definition: no_os_print_log.h:121
uint32_t base
Definition: altera_adxcvr.h:97
int32_t no_os_clk_init(struct no_os_clk_desc **desc, const struct no_os_clk_init_param *param)
enum xilinx_xcvr_type type
Definition: xilinx_transceiver.h:173
int adxcvr_clk_disable(struct adxcvr *xcvr)
AXI ADXCVR Clock Disable.
Definition: axi_adxcvr.c:535
struct adxcvr * ad_xcvr
Definition: xilinx_transceiver.h:176
#define ADXCVR_BUFSTATUS_UNDERFLOW
Definition: axi_adxcvr.c:65
@ XILINX_XCVR_TYPE_US_GTY4
Definition: xilinx_transceiver.h:79
int xilinx_xcvr_calc_cpll_config(struct xilinx_xcvr *xcvr, uint32_t refclk_khz, uint32_t lane_rate_khz, struct xilinx_xcvr_cpll_config *conf, uint32_t *out_div)
Definition: xilinx_transceiver.c:545
@ PM_200
Definition: xilinx_transceiver.h:98
uint32_t version
Definition: xilinx_transceiver.h:177
#define ADXCVR_204C
Definition: axi_adxcvr.c:77
int xilinx_xcvr_configure_cdr(struct xilinx_xcvr *xcvr, uint32_t drp_port, uint32_t lane_rate, uint32_t out_div, bool lpm_enable)
Definition: xilinx_transceiver.c:363
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:60
bool lpm_enable
Definition: axi_adxcvr.h:121
#define ADXCVR_OUTCLK_SEL(x)
Definition: axi_adxcvr.c:72
int xilinx_xcvr_write_prog_div(struct xilinx_xcvr *xcvr, uint32_t drp_port, int32_t rx_prog_div, int32_t tx_prog_div)
Definition: xilinx_transceiver.c:1869
Definition: xilinx_transceiver.h:191
int32_t adxcvr_init(struct adxcvr **ad_xcvr, const struct adxcvr_init *init)
AXI ADXCVR Device Initialization.
Definition: axi_adxcvr.c:568
Header file of Clock Driver.
int32_t adxcvr_status_error(struct adxcvr *xcvr)
AXI ADXCVR Status Read.
Definition: axi_adxcvr.c:439
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:132
enum xilinx_xcvr_refclk_ppm refclk_ppm
Definition: xilinx_transceiver.h:174
enum axi_fgpa_technology tech
Definition: xilinx_transceiver.h:178
#define AXI_REG_FPGA_INFO
Definition: clk_axi_clkgen.c:67
Driver for the ADI AXI-ADXCVR Module.
int xilinx_xcvr_qpll_calc_lane_rate(struct xilinx_xcvr *xcvr, uint32_t refclk_hz, const struct xilinx_xcvr_qpll_config *conf, uint32_t out_div)
Definition: xilinx_transceiver.c:1476
#define ADXCVR_DRP_CTRL_ADDR(x)
Definition: axi_adxcvr.c:83
#define pr_debug(fmt, args...)
Definition: no_os_print_log.h:135
uint32_t sys_clk_sel
Definition: axi_adxcvr.h:91
uint32_t num_lanes
Definition: axi_adxcvr.h:83
#define ADXCVR_DRP_STATUS_BUSY
Definition: axi_adxcvr.c:87
int xilinx_xcvr_read_out_div(struct xilinx_xcvr *xcvr, uint32_t drp_port, uint32_t *rx_out_div, uint32_t *tx_out_div)
Definition: xilinx_transceiver.c:1566
@ XILINX_XCVR_LEGACY_TYPE_US_GTH3
Definition: xilinx_transceiver.h:88
int32_t adxcvr_write(struct adxcvr *xcvr, uint32_t reg_addr, uint32_t reg_val)
adxcvr_write
Definition: altera_adxcvr.c:88
int32_t adxcvr_no_os_clk_disable(struct no_os_clk_desc *desc)
Definition: axi_adxcvr.c:711
int32_t adxcvr_remove(struct adxcvr *xcvr)
Free resoulces allocated for AXI_ADXCVR.
Definition: axi_adxcvr.c:693
#define ADXCVR_REG_DRP_CTRL(x)
Definition: axi_adxcvr.c:81
Structure holding CLK descriptor.
Definition: no_os_clk.h:81
#define AXI_REG_VERSION
Definition: clk_axi_clkgen.c:62
enum axi_fpga_dev_pack dev_package
Definition: xilinx_transceiver.h:181
Definition: altera_adxcvr.h:108
int xilinx_xcvr_qpll_write_config(struct xilinx_xcvr *xcvr, uint32_t sys_clk_sel, uint32_t drp_port, const struct xilinx_xcvr_qpll_config *conf)
Definition: xilinx_transceiver.c:1448
#define ADXCVR_DRP_CTRL_WDATA(x)
Definition: axi_adxcvr.c:84
const char * name
Definition: altera_adxcvr.h:109
int32_t adxcvr_read(struct adxcvr *xcvr, uint32_t reg_addr, uint32_t *reg_val)
adxcvr_read
Definition: altera_adxcvr.c:100
int32_t no_os_axi_io_read(uint32_t base, uint32_t offset, uint32_t *data)
AXI IO Altera specific read function.
Definition: altera_axi_io.c:59
void * dev_desc
Definition: no_os_clk.h:58
uint32_t out_clk_sel
Definition: axi_adxcvr.h:119
#define ADXCVR_SYSCLK_SEL(x)
Definition: axi_adxcvr.c:71
int32_t adxcvr_init(struct adxcvr **ad_xcvr, const struct adxcvr_init *init)
adxcvr_init
Definition: altera_adxcvr.c:444
uint32_t base
Definition: altera_adxcvr.h:110
int adxcvr_clk_enable(struct adxcvr *xcvr)
AXI ADXCVR Clock Enable.
Definition: axi_adxcvr.c:485
Definition: no_os_clk.h:50
int adxcvr_drp_read(struct adxcvr *xcvr, unsigned int drp_port, unsigned int reg, unsigned int *val)
AXI ADXCVR DPR Port Read.
Definition: axi_adxcvr.c:170
#define ADXCVR_DRP_PORT_ADDR_CHANNEL
Definition: axi_adxcvr.c:91
int32_t adxcvr_no_os_clk_enable(struct no_os_clk_desc *desc)
Definition: axi_adxcvr.c:701
uint32_t encoding
Definition: xilinx_transceiver.h:175
#define AXI_REG_FPGA_VOLTAGE
Definition: clk_axi_clkgen.c:68
#define ADXCVR_REG_CONTROL
Definition: axi_adxcvr.c:68
struct xilinx_xcvr xlx_xcvr
Definition: axi_adxcvr.h:97
#define ADXCVR_REG_SYNTH
Definition: axi_adxcvr.c:74
int(* read)(struct adxcvr *xcvr, unsigned int drp_port, unsigned int reg, unsigned int *val)
Definition: xilinx_transceiver.h:194
int adxcvr_clk_disable(struct adxcvr *xcvr)
AXI ADXCVR Clock Disable.
Definition: axi_adxcvr.c:535
#define ADXCVR_REG_RESETN
Definition: axi_adxcvr.c:59
#define ENC_66B64B
Definition: xilinx_transceiver.h:274
@ XILINX_XCVR_TYPE_US_GTH3
Definition: xilinx_transceiver.h:77
int xilinx_xcvr_qpll_read_config(struct xilinx_xcvr *xcvr, uint32_t drp_port, uint32_t sys_clk_sel, struct xilinx_xcvr_qpll_config *conf)
Definition: xilinx_transceiver.c:1266
uint32_t ref_rate_khz
Definition: axi_adxcvr.h:125
Structure holding CPLL configuration.
Definition: xilinx_transceiver.h:255
int xilinx_xcvr_write_rx_clk25_div(struct xilinx_xcvr *xcvr, uint32_t drp_port, uint32_t div)
Definition: xilinx_transceiver.c:2019
uint32_t lane_rate_khz
Definition: altera_adxcvr.h:113
int xilinx_xcvr_write_out_div(struct xilinx_xcvr *xcvr, uint32_t drp_port, int32_t rx_out_div, int32_t tx_out_div)
Definition: xilinx_transceiver.c:1679
int32_t adxcvr_read(struct adxcvr *xcvr, uint32_t reg_addr, uint32_t *reg_val)
AXI ADXCVR Read.
Definition: axi_adxcvr.c:128
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:75
#define ADXCVR_SYS_CLK_CPLL
Definition: axi_adxcvr.h:54
int adxcvr_clk_set_rate(struct adxcvr *xcvr, unsigned long rate, unsigned long parent_rate)
AXI ADXCVR Clock Set Rate.
Definition: axi_adxcvr.c:315
uint32_t voltage
Definition: xilinx_transceiver.h:182
int xilinx_xcvr_cpll_calc_lane_rate(struct xilinx_xcvr *xcvr, uint32_t refclk_hz, const struct xilinx_xcvr_cpll_config *conf, uint32_t out_div)
Definition: xilinx_transceiver.c:1102
#define ADXCVR_STATUS
Definition: axi_adxcvr.c:64
int xilinx_xcvr_write_prog_div_rate(struct xilinx_xcvr *xcvr, uint32_t drp_port, int32_t rx_rate, int32_t tx_rate)
Definition: xilinx_transceiver.c:1948
void no_os_udelay(uint32_t usecs)
Wait until usecs microseconds passed.
Definition: aducm3029_delay.c:120
int adxcvr_drp_read(struct adxcvr *xcvr, unsigned int drp_port, unsigned int reg, unsigned int *val)
AXI ADXCVR DPR Port Read.
Definition: axi_adxcvr.c:170
#define NULL
Definition: wrapper.h:64
#define ADXCVR_LINK_MODE(x)
Definition: axi_adxcvr.c:75
uint32_t out_clk_sel
Definition: axi_adxcvr.h:95
xilinx_xcvr parameters structure.
Definition: xilinx_transceiver.h:172
#define ADXCVR_REG_STATUS
Definition: axi_adxcvr.c:63
void * dev_desc
Definition: no_os_clk.h:89
int32_t adxcvr_no_os_clk_recalc_rate(struct no_os_clk_desc *desc, uint64_t *rate)
Definition: axi_adxcvr.c:721
#define ADXCVR_BUFSTATUS_OVERFLOW
Definition: axi_adxcvr.c:66
int xilinx_xcvr_configure_lpm_dfe_mode(struct xilinx_xcvr *xcvr, uint32_t drp_port, bool lpm)
Definition: xilinx_transceiver.c:390
#define ADXCVR_DRP_PORT_COMMON(x)
Definition: axi_adxcvr.c:93
int32_t no_os_axi_io_write(uint32_t base, uint32_t offset, uint32_t data)
AXI IO Altera specific write function.
Definition: altera_axi_io.c:73
Structure holding QPLL configuration.
Definition: xilinx_transceiver.h:265
#define ADXCVR_REG_DRP_STATUS(x)
Definition: axi_adxcvr.c:86
#define AXI_INFO_FPGA_TECH(info)
Definition: clk_axi_clkgen.c:70
uint32_t sys_clk_sel
Definition: axi_adxcvr.h:115
int32_t adxcvr_no_os_clk_round_rate(struct no_os_clk_desc *desc, uint64_t rate, uint64_t *rounded_rate)
Definition: axi_adxcvr.c:734
unsigned long(* recalc_rate)(struct adxcvr *xcvr, unsigned long parent_rate)
Definition: xilinx_transceiver.h:241
bool tx_enable
Definition: axi_adxcvr.h:79
struct no_os_clk_desc * clk_out
Definition: axi_adxcvr.h:99
Definition: xilinx_transceiver.h:238
int32_t adxcvr_write(struct adxcvr *xcvr, uint32_t reg_addr, uint32_t reg_val)
AXI ADXCVR Write.
Definition: axi_adxcvr.c:112
#define ADXCVR_DRP_STATUS_RDATA(x)
Definition: axi_adxcvr.c:88
Header file of utility functions.
@ XILINX_XCVR_LEGACY_TYPE_US_GTY4
Definition: xilinx_transceiver.h:90
int32_t adxcvr_drp_wait_idle(struct adxcvr *xcvr, uint32_t drp_addr)
Read AXI ADXCVR DRP status.
Definition: axi_adxcvr.c:143
#define ADI_AXI_PCORE_VER(major, minor, patch)
Definition: axi_adxcvr.c:98
#define ADXCVR_DRP_PORT_CHANNEL(x)
Definition: axi_adxcvr.c:94
@ XILINX_XCVR_TYPE_US_GTH4
Definition: xilinx_transceiver.h:78
bool cpll_enable
Definition: axi_adxcvr.h:75
@ XILINX_XCVR_LEGACY_TYPE_US_GTH4
Definition: xilinx_transceiver.h:89
int xilinx_xcvr_write_tx_clk25_div(struct xilinx_xcvr *xcvr, uint32_t drp_port, uint32_t div)
Definition: xilinx_transceiver.c:2061
#define ADXCVR_LPM_DFE_N
Definition: axi_adxcvr.c:69
int adxcvr_drp_write(struct adxcvr *xcvr, unsigned int drp_port, unsigned int reg, unsigned int val)
AXI ADXCVR DPR Port Write.
Definition: axi_adxcvr.c:205
#define ENC_8B10B
Definition: xilinx_transceiver.h:273
const struct no_os_clk_platform_ops adxcvr_clk_ops
adxcvr clock ops
Definition: axi_adxcvr.c:761
#define AXI_INFO_FPGA_FAMILY(info)
Definition: clk_axi_clkgen.c:71
int xilinx_xcvr_cpll_write_config(struct xilinx_xcvr *xcvr, uint32_t drp_port, const struct xilinx_xcvr_cpll_config *conf)
Definition: xilinx_transceiver.c:1076
#define NO_OS_DIV_ROUND_CLOSEST(x, y)
Definition: no_os_util.h:58
#define AXI_INFO_FPGA_VOLTAGE(val)
Definition: clk_axi_clkgen.c:74
int xilinx_xcvr_cpll_read_config(struct xilinx_xcvr *xcvr, uint32_t drp_port, struct xilinx_xcvr_cpll_config *conf)
Definition: xilinx_transceiver.c:921
#define AXI_INFO_FPGA_SPEED_GRADE(info)
Definition: clk_axi_clkgen.c:72
bool lpm_enable
Definition: axi_adxcvr.h:81
#define ADXCVR_RESETN
Definition: axi_adxcvr.c:60
@ XILINX_XCVR_TYPE_S7_GTX2
Definition: xilinx_transceiver.h:76
#define ADXCVR_DRP_CTRL_WR
Definition: axi_adxcvr.c:82