Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

Precision Clock. More...

Topics

 Precision Clock PTP Adapter
 Precision Clock PTP Adapter.

Data Structures

struct  precision_clock_api
 Operations implemented by a precision clock adapter. More...
struct  precision_clock
 Protocol-neutral precision clock instance. More...

Macros

#define PRECISION_CLOCK_SCALED_PPM_SHIFT   16
 Number of fractional bits in a scaled parts-per-million rate adjustment.
#define PRECISION_CLOCK_SCALED_PPM_ONE   (INT64_C(1) << PRECISION_CLOCK_SCALED_PPM_SHIFT)
 One part per million in the scaled rate-adjustment representation.

Functions

int precision_clock_read (const struct precision_clock *precision_clk, precision_time_t *time_ns)
 Read a precision clock.
int precision_clock_set (const struct precision_clock *precision_clk, precision_time_t time_ns)
 Set a precision clock.
int precision_clock_adjust_phase (const struct precision_clock *precision_clk, precision_time_t phase_ns)
 Apply a phase adjustment to a precision clock.
int precision_clock_ppb_to_scaled_ppm (double ppb, int64_t *scaled_ppm)
 Convert parts per billion to scaled parts per million.
int precision_clock_adjust_rate (const struct precision_clock *precision_clk, int64_t scaled_ppm)
 Set the rate offset of a precision clock.

Detailed Description

Precision Clock.

Since
4.5
Version
0.1.0

Macro Definition Documentation

◆ PRECISION_CLOCK_SCALED_PPM_ONE

#define PRECISION_CLOCK_SCALED_PPM_ONE   (INT64_C(1) << PRECISION_CLOCK_SCALED_PPM_SHIFT)

#include <zephyr/precision_timing/precision_clock.h>

One part per million in the scaled rate-adjustment representation.

◆ PRECISION_CLOCK_SCALED_PPM_SHIFT

#define PRECISION_CLOCK_SCALED_PPM_SHIFT   16

#include <zephyr/precision_timing/precision_clock.h>

Number of fractional bits in a scaled parts-per-million rate adjustment.

Function Documentation

◆ precision_clock_adjust_phase()

int precision_clock_adjust_phase ( const struct precision_clock * precision_clk,
precision_time_t phase_ns )

#include <zephyr/precision_timing/precision_clock.h>

Apply a phase adjustment to a precision clock.

Parameters
precision_clkClock to adjust.
phase_nsSigned phase adjustment in nanoseconds.
Return values
0on success.
Returns
An adapter-specific negative error code on failure.

◆ precision_clock_adjust_rate()

int precision_clock_adjust_rate ( const struct precision_clock * precision_clk,
int64_t scaled_ppm )

#include <zephyr/precision_timing/precision_clock.h>

Set the rate offset of a precision clock.

Parameters
precision_clkClock to adjust.
scaled_ppmSigned frequency offset from nominal in parts per million with a 16-bit binary fractional field. For example, PRECISION_CLOCK_SCALED_PPM_ONE represents 1 ppm.
Return values
0on success.
Returns
An adapter-specific negative error code on failure.

◆ precision_clock_ppb_to_scaled_ppm()

int precision_clock_ppb_to_scaled_ppm ( double ppb,
int64_t * scaled_ppm )

#include <zephyr/precision_timing/precision_clock.h>

Convert parts per billion to scaled parts per million.

Parameters
ppbSigned frequency offset from nominal in parts per billion.
scaled_ppmDestination for the signed scaled parts-per-million value.
Return values
0on success.
-EINVALif scaled_ppm is null.
-ERANGEif ppb is not finite or the result is not representable.

◆ precision_clock_read()

int precision_clock_read ( const struct precision_clock * precision_clk,
precision_time_t * time_ns )

#include <zephyr/precision_timing/precision_clock.h>

Read a precision clock.

Parameters
precision_clkClock to read.
time_nsDestination for the clock value in nanoseconds.
Return values
0on success.
Returns
An adapter-specific negative error code on failure.

◆ precision_clock_set()

int precision_clock_set ( const struct precision_clock * precision_clk,
precision_time_t time_ns )

#include <zephyr/precision_timing/precision_clock.h>

Set a precision clock.

Parameters
precision_clkClock to set.
time_nsNew clock value in nanoseconds.
Return values
0on success.
Returns
An adapter-specific negative error code on failure.