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

Driver for the Altera FPLL. More...

#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>
#include <inttypes.h>
#include <limits.h>
#include "io.h"
#include "no_os_util.h"
#include "no_os_error.h"
#include "no_os_alloc.h"
#include "clk_altera_a10_fpll.h"
Include dependency graph for clk_altera_a10_fpll.c:

Macros

#define FPLL_REG_C_COUNTER0   0x10D
 
#define FPLL_REG_C_COUNTER1   0x10E
 
#define FPLL_REG_C_COUNTER2   0x10F
 
#define FPLL_REG_C_COUNTER3   0x110
 
#define FPLL_REG_C_COUNTER4   0x111
 
#define FPLL_REG_DIV_COUNTER0   0x12B
 
#define FPLL_REG_DIV_COUNTER1   0x12C
 
#define A10_FPLL_PFD_MIN   25000 /* 25.000 MHz */
 
#define A10_FPLL_PFD_MAX   60000 /* 60.000 MHz */
 
#define A10_FPLL_VCO_MIN   4800000 /* 4.800 GHz */
 
#define A10_FPLL_VCO_MAX   14025000 /* 14.025 GHz */
 

Functions

uint32_t altera_a10_fpll_read (struct altera_a10_fpll *fpll, uint32_t addr)
 altera_a10_fpll_read
 
void altera_a10_fpll_write (struct altera_a10_fpll *fpll, uint32_t addr, uint32_t val)
 altera_a10_fpll_write
 
void altera_a10_fpll_update (struct altera_a10_fpll *fpll, uint32_t addr, uint32_t mask, uint32_t val)
 altera_a10_fpll_update
 
uint32_t altera_a10_acquire_arbitration (struct altera_a10_fpll *fpll)
 altera_a10_acquire_arbitration
 
void altera_a10_release_arbitration (struct altera_a10_fpll *fpll, bool run_calibration)
 altera_a10_release_arbitration
 
uint32_t altera_a10_fpll_lookup_lf_resistance (uint32_t fvco, uint32_t m)
 altera_a10_fpll_lookup_lf_resistance
 
int32_t altera_a10_fpll_lookup_cp_current (uint32_t fvco, uint32_t m)
 altera_a10_fpll_lookup_cp_current
 
int32_t altera_a10_fpll_calc_params (uint32_t fref, uint32_t fout, uint32_t *best_n, uint32_t *best_m, uint32_t *best_c0, uint32_t *best_fvco)
 altera_a10_fpll_calc_params
 
int32_t altera_a10_fpll_round_rate (struct altera_a10_fpll *fpll, uint32_t rate)
 altera_a10_fpll_round_rate
 
int32_t altera_a10_fpll_pll_calibration_check (struct altera_a10_fpll *fpll)
 altera_a10_fpll_pll_calibration_check
 
int32_t altera_a10_fpll_set_rate (struct altera_a10_fpll *fpll, uint32_t rate)
 altera_a10_fpll_set_rate
 
uint32_t altera_a10_fpll_recalc_rate (struct altera_a10_fpll *fpll)
 altera_a10_fpll_recalc_rate
 
int32_t altera_a10_fpll_is_enabled (struct altera_a10_fpll *fpll)
 altera_a10_fpll_is_enabled
 
int32_t altera_a10_fpll_enable (struct altera_a10_fpll *fpll)
 altera_a10_fpll_enable
 
void altera_a10_fpll_disable (struct altera_a10_fpll *fpll)
 altera_a10_fpll_disable
 
int32_t altera_a10_fpll_init (struct altera_a10_fpll **a10_fpll, const struct altera_a10_fpll_init *init)
 altera_a10_fpll_init
 
int32_t altera_a10_fpll_remove (struct altera_a10_fpll *fpll)
 altera_a10_fpll_remove
 

Detailed Description

Driver for the Altera FPLL.

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

◆ A10_FPLL_PFD_MAX

#define A10_FPLL_PFD_MAX   60000 /* 60.000 MHz */

◆ A10_FPLL_PFD_MIN

#define A10_FPLL_PFD_MIN   25000 /* 25.000 MHz */

◆ A10_FPLL_VCO_MAX

#define A10_FPLL_VCO_MAX   14025000 /* 14.025 GHz */

◆ A10_FPLL_VCO_MIN

#define A10_FPLL_VCO_MIN   4800000 /* 4.800 GHz */

◆ FPLL_REG_C_COUNTER0

#define FPLL_REG_C_COUNTER0   0x10D

◆ FPLL_REG_C_COUNTER1

#define FPLL_REG_C_COUNTER1   0x10E

◆ FPLL_REG_C_COUNTER2

#define FPLL_REG_C_COUNTER2   0x10F

◆ FPLL_REG_C_COUNTER3

#define FPLL_REG_C_COUNTER3   0x110

◆ FPLL_REG_C_COUNTER4

#define FPLL_REG_C_COUNTER4   0x111

◆ FPLL_REG_DIV_COUNTER0

#define FPLL_REG_DIV_COUNTER0   0x12B

◆ FPLL_REG_DIV_COUNTER1

#define FPLL_REG_DIV_COUNTER1   0x12C

Function Documentation

◆ altera_a10_acquire_arbitration()

uint32_t altera_a10_acquire_arbitration ( struct altera_a10_fpll * fpll)

altera_a10_acquire_arbitration

◆ altera_a10_fpll_calc_params()

int32_t altera_a10_fpll_calc_params ( uint32_t fref,
uint32_t fout,
uint32_t * best_n,
uint32_t * best_m,
uint32_t * best_c0,
uint32_t * best_fvco )

altera_a10_fpll_calc_params

◆ altera_a10_fpll_disable()

void altera_a10_fpll_disable ( struct altera_a10_fpll * fpll)

altera_a10_fpll_disable

◆ altera_a10_fpll_enable()

int32_t altera_a10_fpll_enable ( struct altera_a10_fpll * fpll)

altera_a10_fpll_enable

◆ altera_a10_fpll_init()

int32_t altera_a10_fpll_init ( struct altera_a10_fpll ** a10_fpll,
const struct altera_a10_fpll_init * init )

◆ altera_a10_fpll_is_enabled()

int32_t altera_a10_fpll_is_enabled ( struct altera_a10_fpll * fpll)

altera_a10_fpll_is_enabled

◆ altera_a10_fpll_lookup_cp_current()

int32_t altera_a10_fpll_lookup_cp_current ( uint32_t fvco,
uint32_t m )

altera_a10_fpll_lookup_cp_current

◆ altera_a10_fpll_lookup_lf_resistance()

uint32_t altera_a10_fpll_lookup_lf_resistance ( uint32_t fvco,
uint32_t m )

altera_a10_fpll_lookup_lf_resistance

◆ altera_a10_fpll_pll_calibration_check()

int32_t altera_a10_fpll_pll_calibration_check ( struct altera_a10_fpll * fpll)

altera_a10_fpll_pll_calibration_check

◆ altera_a10_fpll_read()

uint32_t altera_a10_fpll_read ( struct altera_a10_fpll * fpll,
uint32_t addr )

altera_a10_fpll_read

◆ altera_a10_fpll_recalc_rate()

uint32_t altera_a10_fpll_recalc_rate ( struct altera_a10_fpll * fpll)

altera_a10_fpll_recalc_rate

◆ altera_a10_fpll_remove()

int32_t altera_a10_fpll_remove ( struct altera_a10_fpll * fpll)

altera_a10_fpll_remove

◆ altera_a10_fpll_round_rate()

int32_t altera_a10_fpll_round_rate ( struct altera_a10_fpll * fpll,
uint32_t rate )

altera_a10_fpll_round_rate

◆ altera_a10_fpll_set_rate()

int32_t altera_a10_fpll_set_rate ( struct altera_a10_fpll * fpll,
uint32_t rate )

altera_a10_fpll_set_rate

◆ altera_a10_fpll_update()

void altera_a10_fpll_update ( struct altera_a10_fpll * fpll,
uint32_t addr,
uint32_t mask,
uint32_t val )

altera_a10_fpll_update

◆ altera_a10_fpll_write()

void altera_a10_fpll_write ( struct altera_a10_fpll * fpll,
uint32_t addr,
uint32_t val )

altera_a10_fpll_write

◆ altera_a10_release_arbitration()

void altera_a10_release_arbitration ( struct altera_a10_fpll * fpll,
bool run_calibration )

altera_a10_release_arbitration