|
#define | JESD204_RX_REG_VERSION 0x00 |
|
#define | JESD204_RX_REG_MAGIC 0x0c |
|
#define | JESD204_RX_REG_SYNTH_NUM_LANES 0x10 |
|
#define | JESD204_RX_REG_SYNTH_DATA_PATH_WIDTH 0x14 |
|
#define | JESD204_RX_REG_SYNTH_REG_1 0x18 |
|
#define | JESD204_RX_ENCODER_MASK NO_OS_GENMASK(9, 8) |
|
#define | JESD204_RX_ENCODER_GET(x) no_os_field_get(JESD204_RX_ENCODER_MASK, x) |
|
#define | JESD204_RX_REG_LINK_DISABLE 0xc0 |
|
#define | JESD204_RX_REG_LINK_STATE 0xc4 |
|
#define | JESD204_RX_REG_LINK_CLK_RATIO 0xc8 |
|
#define | JESD204_RX_REG_SYSREF_CONF 0x100 |
|
#define | JESD204_RX_REG_SYSREF_CONF_SYSREF_DISABLE NO_OS_BIT(0) |
|
#define | JESD204_RX_REG_SYSREF_LMFC_OFFSET 0x104 |
|
#define | JESD204_RX_REG_SYSREF_STATUS 0x108 |
|
#define | JESD204_RX_REG_LINK_CONF0 0x210 |
|
#define | JESD204_RX_REG_LINK_CONF4 0x21C |
|
#define | JESD204_RX_REG_LINK_CONF2 0x240 |
|
#define | JESD204_RX_LINK_CONF2_BUFFER_EARLY_RELEASE NO_OS_BIT(16) |
|
#define | JESD204_RX_REG_LINK_STATUS 0x280 |
|
#define | JESD204_LINK_STATUS_DATA 3 |
|
#define | JESD204_RX_REG_LANE_STATUS(x) (((x) * 32) + 0x300) |
|
#define | JESD204_EMB_STATE_MASK NO_OS_GENMASK(10, 8) |
|
#define | JESD204_EMB_STATE_GET(x) no_os_field_get(JESD204_EMB_STATE_MASK, x) |
|
#define | JESD204_RX_REG_LANE_LATENCY(x) (((x) * 32) + 0x304) |
|
#define | JESD204_RX_REG_LANE_ERRORS(x) (((x) * 32) + 0x308) |
|
#define | JESD204_RX_REG_ILAS(x, y) (((x) * 32 + (y) * 4) + 0x310) |
|
#define | JESD204_TX_REG_ILAS(x, y) (((x) * 32 + (y) * 4) + 0x310) |
|
#define | JESD204_RX_MAGIC (('2' << 24) | ('0' << 16) | ('4' << 8) | ('R')) |
|
#define | JESD204_SYNTH_DATA_PATH_WIDTH_MASK NO_OS_GENMASK(7, 0) |
|
#define | JESD204_SYNTH_DATA_PATH_WIDTH_GET(x) no_os_field_get(JESD204_SYNTH_DATA_PATH_WIDTH_MASK, x) |
|
#define | JESD204_TPL_DATA_PATH_WIDTH_MASK NO_OS_GENMASK(15, 8) |
|
#define | JESD204_TPL_DATA_PATH_WIDTH_GET(x) no_os_field_get(JESD204_TPL_DATA_PATH_WIDTH_MASK, x) |
|
#define | ADI_AXI_PCORE_VER(major, minor, patch) (((major) << 16) | ((minor) << 8) | (patch)) |
|
#define | PCORE_VERSION_MAJOR(x) ((x) >> 16) |
|
#define | PCORE_VERSION_MINOR(x) (((x) >> 8) & 0xff) |
|
#define | PCORE_VERSION_PATCH(x) ((x) & 0xff) |
|
|
int32_t | axi_jesd204_rx_write (struct axi_jesd204_rx *jesd, uint32_t reg_addr, uint32_t reg_val) |
| JESD204 RX AXI Data Write. More...
|
|
int32_t | axi_jesd204_rx_read (struct axi_jesd204_rx *jesd, uint32_t reg_addr, uint32_t *reg_val) |
| JESD204 RX AXI Data Read. More...
|
|
int32_t | axi_jesd204_rx_lane_clk_enable (struct axi_jesd204_rx *jesd) |
| JESD204 RX Lane Clock Enable. More...
|
|
int32_t | axi_jesd204_rx_lane_clk_disable (struct axi_jesd204_rx *jesd) |
| JESD204 RX Lane Clock Disable. More...
|
|
uint32_t | axi_jesd204_rx_status_read (struct axi_jesd204_rx *jesd) |
| Read status of the JESD204 Receive Peripherial. More...
|
|
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. More...
|
|
int32_t | axi_jesd204_rx_laneinfo_read (struct axi_jesd204_rx *jesd, uint32_t lane) |
| Read JESD204 RX Lane Info. More...
|
|
bool | axi_jesd204_rx_check_lane_status (struct axi_jesd204_rx *jesd, uint32_t lane) |
| Check JESD204 RX Lane Status. More...
|
|
int32_t | axi_jesd204_rx_watchdog (struct axi_jesd204_rx *jesd) |
| JESD204 RX Watchdog. More...
|
|
int32_t | axi_jesd204_rx_apply_config_legacy (struct axi_jesd204_rx *jesd, struct jesd204_rx_config *config) |
| Apply the JESD204 RX configuration. More...
|
|
int32_t | axi_jesd204_rx_init_legacy (struct axi_jesd204_rx **jesd204, const struct jesd204_rx_init *init) |
| Device initialization. More...
|
|
int32_t | axi_jesd204_rx_init (struct axi_jesd204_rx **jesd204, const struct jesd204_rx_init *init) |
| Device initialization, JESD FSM ON. More...
|
|
int32_t | axi_jesd204_rx_remove (struct axi_jesd204_rx *jesd) |
| Free resoulces allocated for JESD204 RX peripheral. More...
|
|
Driver for the Analog Devices AXI-JESD204-RX peripheral.
- Author
- DBogdan (drago.nosp@m.s.bo.nosp@m.gdan@.nosp@m.anal.nosp@m.og.co.nosp@m.m)
Copyright 2018(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.