no-OS
Loading...
Searching...
No Matches
altera_adxcvr.c File Reference

Driver for the Altera ADXCVR Configuration. More...

#include <stdlib.h>
#include <stdio.h>
#include <inttypes.h>
#include "io.h"
#include "no_os_error.h"
#include "no_os_util.h"
#include "no_os_alloc.h"
#include "altera_a10_atx_pll.h"
#include "altera_a10_cdr_pll.h"
#include "altera_adxcvr.h"
Include dependency graph for altera_adxcvr.c:

Macros

#define ADXCVR_REG_VERSION   0x0000
 
#define VERSION(major, minor, letter)
 
#define VERSION_MAJOR(version)
 
#define VERSION_MINOR(version)
 
#define VERSION_LETTER(version)
 
#define ADXCVR_REG_ID   0x0004
 
#define ADXCVR_REG_SCRATCH   0x0008
 
#define ADXCVR_REG_RESETN   0x0010
 
#define ADXCVR_RESETN   (1 << 0)
 
#define ADXCVR_REG_STATUS   0x0014
 
#define ADXCVR_STATUS   (1 << 0)
 
#define ADXCVR_REG_STATUS2   0x0018
 
#define ADXCVR_STATUS2_XCVR(x)
 
#define ADXCVR_REG_SYNTH_CONF   0x0024
 

Functions

int32_t adxcvr_write (struct adxcvr *xcvr, uint32_t reg_addr, uint32_t reg_val)
 adxcvr_write
 
int32_t adxcvr_read (struct adxcvr *xcvr, uint32_t reg_addr, uint32_t *reg_val)
 adxcvr_read
 
void adxcvr_acquire_arbitration (struct adxcvr *xcvr, uint32_t addr, uint32_t status_reg)
 adxcvr_acquire_arbitration
 
void adxcvr_release_arbitration (uint32_t addr, bool calibrate)
 adxcvr_release_arbitration
 
int32_t atx_pll_write (struct adxcvr *xcvr, uint32_t reg, uint32_t val)
 atx_pll_write
 
int32_t atx_pll_read (struct adxcvr *xcvr, uint32_t reg, uint32_t *val)
 atx_pll_read
 
void atx_pll_update (struct adxcvr *xcvr, uint32_t reg, uint32_t mask, uint32_t val)
 atx_pll_update
 
void atx_pll_acquire_arbitration (struct adxcvr *xcvr)
 atx_pll_acquire_arbitration
 
void atx_pll_release_arbitration (struct adxcvr *xcvr, bool calibrate)
 atx_pll_release_arbitration
 
int32_t adxcfg_write (struct adxcvr *xcvr, uint32_t lane, uint32_t reg, uint32_t val)
 adxcfg_write
 
int32_t adxcfg_read (struct adxcvr *xcvr, uint32_t lane, uint32_t reg, uint32_t *val)
 adxcfg_read
 
void adxcfg_update (struct adxcvr *xcvr, uint32_t lane, uint32_t reg, uint32_t mask, uint32_t val)
 adxcfg_update
 
void adxcfg_acquire_arbitration (struct adxcvr *xcvr, uint32_t lane)
 adxcfg_acquire_arbitration
 
void adxcfg_release_arbitration (struct adxcvr *xcvr, uint32_t lane, bool calibrate)
 adxcfg_release_arbitration
 
int32_t atx_pll_calibration_check (struct adxcvr *xcvr)
 atx_pll_calibration_check
 
int32_t adxcfg_calibration_check (struct adxcvr *xcvr, uint32_t lane, bool tx)
 adxcfg_calibration_check
 
int32_t xcvr_calib_tx (struct adxcvr *xcvr)
 xcvr_calib_tx
 
void adxcvr_pre_lane_rate_change (struct adxcvr *xcvr)
 adxcvr_pre_lane_rate_change
 
void adxcvr_finalize_lane_rate_change (struct adxcvr *xcvr)
 adxcvr_finalize_lane_rate_change
 
void adxcvr_post_lane_rate_change (struct adxcvr *xcvr, unsigned int lane_rate_khz)
 adxcvr_post_lane_rate_change
 
int32_t adxcvr_round_rate (struct adxcvr *xcvr, uint32_t rate_khz)
 adxcvr_round_rate
 
int32_t adxcvr_set_rate (struct adxcvr *xcvr, uint32_t rate_khz)
 adxcvr_init
 
uint32_t adxcvr_recalc_rate (struct adxcvr *xcvr)
 adxcvr_recalc_rate
 
int32_t adxcvr_init (struct adxcvr **ad_xcvr, const struct adxcvr_init *init)
 adxcvr_init
 
int32_t adxcvr_remove (struct adxcvr *xcvr)
 adxcvr_remove
 

Detailed Description

Driver for the Altera ADXCVR Configuration.

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.

SPDX-License-Identifier: BSD-3-Clause

Macro Definition Documentation

◆ ADXCVR_REG_ID

#define ADXCVR_REG_ID   0x0004

◆ ADXCVR_REG_RESETN

#define ADXCVR_REG_RESETN   0x0010

◆ ADXCVR_REG_SCRATCH

#define ADXCVR_REG_SCRATCH   0x0008

◆ ADXCVR_REG_STATUS

#define ADXCVR_REG_STATUS   0x0014

◆ ADXCVR_REG_STATUS2

#define ADXCVR_REG_STATUS2   0x0018

◆ ADXCVR_REG_SYNTH_CONF

#define ADXCVR_REG_SYNTH_CONF   0x0024

◆ ADXCVR_REG_VERSION

#define ADXCVR_REG_VERSION   0x0000

◆ ADXCVR_RESETN

#define ADXCVR_RESETN   (1 << 0)

◆ ADXCVR_STATUS

#define ADXCVR_STATUS   (1 << 0)

◆ ADXCVR_STATUS2_XCVR

#define ADXCVR_STATUS2_XCVR ( x)
Value:
#define NO_OS_BIT(x)
Definition no_os_util.h:23

◆ VERSION

#define VERSION ( major,
minor,
letter )
Value:
((major << 16) | (minor << 8) | letter)

◆ VERSION_LETTER

#define VERSION_LETTER ( version)
Value:
(version & 0xff)

◆ VERSION_MAJOR

#define VERSION_MAJOR ( version)
Value:
(version >> 16)

◆ VERSION_MINOR

#define VERSION_MINOR ( version)
Value:
((version >> 8) & 0xff)

Function Documentation

◆ adxcfg_acquire_arbitration()

void adxcfg_acquire_arbitration ( struct adxcvr * xcvr,
uint32_t lane )

adxcfg_acquire_arbitration

◆ adxcfg_calibration_check()

int32_t adxcfg_calibration_check ( struct adxcvr * xcvr,
uint32_t lane,
bool tx )

adxcfg_calibration_check

◆ adxcfg_read()

int32_t adxcfg_read ( struct adxcvr * xcvr,
uint32_t lane,
uint32_t reg,
uint32_t * val )

adxcfg_read

◆ adxcfg_release_arbitration()

void adxcfg_release_arbitration ( struct adxcvr * xcvr,
uint32_t lane,
bool calibrate )

adxcfg_release_arbitration

◆ adxcfg_update()

void adxcfg_update ( struct adxcvr * xcvr,
uint32_t lane,
uint32_t reg,
uint32_t mask,
uint32_t val )

adxcfg_update

◆ adxcfg_write()

int32_t adxcfg_write ( struct adxcvr * xcvr,
uint32_t lane,
uint32_t reg,
uint32_t val )

adxcfg_write

◆ adxcvr_acquire_arbitration()

void adxcvr_acquire_arbitration ( struct adxcvr * xcvr,
uint32_t addr,
uint32_t status_reg )

adxcvr_acquire_arbitration

◆ adxcvr_finalize_lane_rate_change()

void adxcvr_finalize_lane_rate_change ( struct adxcvr * xcvr)

adxcvr_finalize_lane_rate_change

◆ adxcvr_init()

int32_t adxcvr_init ( struct adxcvr ** ad_xcvr,
const struct adxcvr_init * init )

adxcvr_init

AXI ADXCVR Device Initialization

◆ adxcvr_post_lane_rate_change()

void adxcvr_post_lane_rate_change ( struct adxcvr * xcvr,
unsigned int lane_rate_khz )

adxcvr_post_lane_rate_change

◆ adxcvr_pre_lane_rate_change()

void adxcvr_pre_lane_rate_change ( struct adxcvr * xcvr)

adxcvr_pre_lane_rate_change

◆ adxcvr_read()

int32_t adxcvr_read ( struct adxcvr * xcvr,
uint32_t reg_addr,
uint32_t * reg_val )

adxcvr_read

AXI ADXCVR Read

◆ adxcvr_recalc_rate()

uint32_t adxcvr_recalc_rate ( struct adxcvr * xcvr)

adxcvr_recalc_rate

◆ adxcvr_release_arbitration()

void adxcvr_release_arbitration ( uint32_t addr,
bool calibrate )

adxcvr_release_arbitration

◆ adxcvr_remove()

int32_t adxcvr_remove ( struct adxcvr * xcvr)

adxcvr_remove

AXI ADXCVR Resources Deallocation

◆ adxcvr_round_rate()

int32_t adxcvr_round_rate ( struct adxcvr * xcvr,
uint32_t rate_khz )

adxcvr_round_rate

◆ adxcvr_set_rate()

int32_t adxcvr_set_rate ( struct adxcvr * xcvr,
uint32_t rate_khz )

◆ adxcvr_write()

int32_t adxcvr_write ( struct adxcvr * xcvr,
uint32_t reg_addr,
uint32_t reg_val )

adxcvr_write

AXI ADXCVR Write

◆ atx_pll_acquire_arbitration()

void atx_pll_acquire_arbitration ( struct adxcvr * xcvr)

atx_pll_acquire_arbitration

◆ atx_pll_calibration_check()

int32_t atx_pll_calibration_check ( struct adxcvr * xcvr)

atx_pll_calibration_check

◆ atx_pll_read()

int32_t atx_pll_read ( struct adxcvr * xcvr,
uint32_t reg,
uint32_t * val )

atx_pll_read

◆ atx_pll_release_arbitration()

void atx_pll_release_arbitration ( struct adxcvr * xcvr,
bool calibrate )

atx_pll_release_arbitration

◆ atx_pll_update()

void atx_pll_update ( struct adxcvr * xcvr,
uint32_t reg,
uint32_t mask,
uint32_t val )

atx_pll_update

◆ atx_pll_write()

int32_t atx_pll_write ( struct adxcvr * xcvr,
uint32_t reg,
uint32_t val )

atx_pll_write

◆ xcvr_calib_tx()

int32_t xcvr_calib_tx ( struct adxcvr * xcvr)

xcvr_calib_tx