PDK API Guide for J721E
TIMESYNC PTP API

Introduction

Data Structures

struct  TimeSyncPtp_TimeStamp
 802.1AS-rev Timestamp structure More...
 
struct  TimeSyncPtp_ExtendedTimestamp
 802.1AS-rev ExtendedTimestamp More...
 
struct  TimeSyncPtp_MasterParams
 Master and grand master clock params. More...
 
struct  TimeSyncPtp_Config
 Time synchronization PTP configuration structure. More...
 

Functions

void TimeSyncPtp_setDefaultPtpConfig (TimeSyncPtp_Config *ptpConfig)
 Function to initialize PTP configuration with default values. More...
 
TimeSyncPtp_Handle TimeSyncPtp_init (TimeSyncPtp_Config *ptpConfig)
 Initialize PTP stack. More...
 
void TimeSyncPtp_deInit (TimeSyncPtp_Handle hTimeSyncPtp)
 De-initialize PTP stack. More...
 
void TimeSyncPtp_enable (TimeSyncPtp_Handle hTimeSyncPtp)
 Enable PTP firmware. More...
 
void TimeSyncPtp_disable (TimeSyncPtp_Handle hTimeSyncPtp)
 Disable PTP firmware. More...
 
void TimeSyncPtp_PortLinkResetCallBack (void *arg, uint8_t portNum, uint8_t linkStatus)
 Callback for link status change on Port. More...
 
void TimeSyncPtp_reset (TimeSyncPtp_Handle timeSyncPtpHandle)
 Reset the state machine in firmware to restart synchronization (First adjustment happens again). If Sync interval changes or link break happens or there is a large adjustment in time this function is called. More...
 
uint8_t TimeSyncPtp_isEnabled (TimeSyncPtp_Handle timeSyncPtpHandle)
 Return TRUE/FALSE if timeSync module is enabled/disabled. More...
 
void TimeSyncPtp_enableMaster (TimeSyncPtp_Handle timeSyncPtpHandle)
 Change from Slave to Master if not already. This should be invoked by the BMCA algorithm. More...
 
void TimeSyncPtp_disableMaster (TimeSyncPtp_Handle timeSyncPtpHandle)
 Change from Master mode to slave mode. This should be invoked by the BMCA algorithm. More...
 

Typedefs

typedef void(* TimeSyncPtp_SyncLossNotify) (void)
 TimeSync PTP sync loss callback function. More...
 
typedef struct TimeSyncPtp_Obj_s * TimeSyncPtp_Handle
 

Enumerations

enum  TimeSyncPtp_DelayType { TIMESYNC_PTP_DELAY_E2E = 1U, TIMESYNC_PTP_DELAY_P2P = 2U }
 PTP Delay Mechanism Type. From Table 9 of Standard. More...
 
enum  TimeSyncPtp_TimeSource {
  TIMESYNC_CLKSRC_ATOMIC_CLOCK = 0x10U, TIMESYNC_CLKSRC_GPS = 0x20U, TIMESYNC_CLKSRC_TERRESTRIAL_RADIO = 0x30U, TIMESYNC_CLKSRC_PTP = 0x40U,
  TIMESYNC_CLKSRC_NTP = 0x50U, TIMESYNC_CLKSRC_HAND_SET = 0x60U, TIMESYNC_CLKSRC_OTHER = 0x90U, TIMESYNC_CLKSRC_INTERNAL_OSCILLATOR = 0xA0U
}
 802.1AS-rev Enumeration8 More...
 

Macros

#define TIMESYNC_PTP_MAX_PORTS_SUPPORTED   (8U)
 

Macro Definition Documentation

◆ TIMESYNC_PTP_MAX_PORTS_SUPPORTED

#define TIMESYNC_PTP_MAX_PORTS_SUPPORTED   (8U)

Number of ports supported by this PTP

Typedef Documentation

◆ TimeSyncPtp_SyncLossNotify

typedef void(* TimeSyncPtp_SyncLossNotify) (void)

TimeSync PTP sync loss callback function.

◆ TimeSyncPtp_Handle

typedef struct TimeSyncPtp_Obj_s* TimeSyncPtp_Handle

Enumeration Type Documentation

◆ TimeSyncPtp_DelayType

PTP Delay Mechanism Type. From Table 9 of Standard.

Enumerator
TIMESYNC_PTP_DELAY_E2E 

End to end delay mechanism

TIMESYNC_PTP_DELAY_P2P 

Peer to peer delay mechanism

◆ TimeSyncPtp_TimeSource

802.1AS-rev Enumeration8

Enumerator
TIMESYNC_CLKSRC_ATOMIC_CLOCK 

Atomic clock

TIMESYNC_CLKSRC_GPS 

GPS clock

TIMESYNC_CLKSRC_TERRESTRIAL_RADIO 

Terrestrial radio clock

TIMESYNC_CLKSRC_PTP 

PTP clock

TIMESYNC_CLKSRC_NTP 

NTP clock

TIMESYNC_CLKSRC_HAND_SET 

Handset clock

TIMESYNC_CLKSRC_OTHER 

Other clock

TIMESYNC_CLKSRC_INTERNAL_OSCILLATOR 

Internal oscillator clock

Function Documentation

◆ TimeSyncPtp_setDefaultPtpConfig()

void TimeSyncPtp_setDefaultPtpConfig ( TimeSyncPtp_Config ptpConfig)

Function to initialize PTP configuration with default values.

Parameters
ptpConfigPointer to PTP configuration
Returns
None

◆ TimeSyncPtp_init()

TimeSyncPtp_Handle TimeSyncPtp_init ( TimeSyncPtp_Config ptpConfig)

Initialize PTP stack.

Parameters
ptpConfigPointer to PTP configuration
Returns
SUCCESS: Handle to PTP object, FAILURE: NULL

◆ TimeSyncPtp_deInit()

void TimeSyncPtp_deInit ( TimeSyncPtp_Handle  hTimeSyncPtp)

De-initialize PTP stack.

Parameters
hTimeSyncPtpPointer to PTP Handle structure
Returns
None

◆ TimeSyncPtp_enable()

void TimeSyncPtp_enable ( TimeSyncPtp_Handle  hTimeSyncPtp)

Enable PTP firmware.

Parameters
hTimeSyncPtpPointer to PTP Handle structure
Returns
None

◆ TimeSyncPtp_disable()

void TimeSyncPtp_disable ( TimeSyncPtp_Handle  hTimeSyncPtp)

Disable PTP firmware.

Parameters
hTimeSyncPtppointer to PTP Handle structure
Returns
None

◆ TimeSyncPtp_PortLinkResetCallBack()

void TimeSyncPtp_PortLinkResetCallBack ( void *  arg,
uint8_t  portNum,
uint8_t  linkStatus 
)

Callback for link status change on Port.

Parameters
argcallback argument
portNum
linkStatus1/0 whether up or down
Returns
None

◆ TimeSyncPtp_reset()

void TimeSyncPtp_reset ( TimeSyncPtp_Handle  timeSyncPtpHandle)

Reset the state machine in firmware to restart synchronization (First adjustment happens again). If Sync interval changes or link break happens or there is a large adjustment in time this function is called.

Parameters
timeSyncPtpHandlepointer to PTP Handle structure
Return values
None

◆ TimeSyncPtp_isEnabled()

uint8_t TimeSyncPtp_isEnabled ( TimeSyncPtp_Handle  timeSyncPtpHandle)

Return TRUE/FALSE if timeSync module is enabled/disabled.

Parameters
timeSyncPtpHandlepointer to PTP Handle structure

◆ TimeSyncPtp_enableMaster()

void TimeSyncPtp_enableMaster ( TimeSyncPtp_Handle  timeSyncPtpHandle)

Change from Slave to Master if not already. This should be invoked by the BMCA algorithm.

Parameters
timeSyncPtpHandlepointer to PTP Handle structure
Return values
None

◆ TimeSyncPtp_disableMaster()

void TimeSyncPtp_disableMaster ( TimeSyncPtp_Handle  timeSyncPtpHandle)

Change from Master mode to slave mode. This should be invoked by the BMCA algorithm.

Parameters
timeSyncPtpHandlepointer to PTP Handle structure
Return values
None