PDK API Guide for J721E
CPSW CPTS API

Introduction

Data Structures

struct  CpswCpts_Event
 CPTS Event. More...
 
struct  CpswCpts_EventStats
 CPTS event statistics. More...
 
struct  CpswCpts_RegisterStackInArgs
 CPTS Register Stack InArgs. More...
 
struct  CpswCpts_RegisterHwPushCbInArgs
 CPTS Register hardware push callback InArgs. More...
 
struct  CpswCpts_SetTsPpmInArgs
 Set time stamp PPM IOCTL inArgs. More...
 
struct  CpswCpts_SetCompValInArgs
 Setup Compare Value IOCTL inArgs. More...
 
struct  CpswCpts_SetFxnGenInArgs
 Set Function Generator(same data structure for both Generic and Ethernet) IOCTL inArgs. More...
 
struct  CptsSetFxnGenNudgeInArgs
 Setup Function generator(same data structure for both Generic and Ethernet) Nudge IOCTL inArgs. More...
 
struct  CpswCpts_Config
 CPTS configuration. More...
 

Typedefs

typedef CpswCpts_Event CpswCpts_LookUpEventInArgs
 CPTS Lookup event IOCTL inArgs. More...
 
typedef void(* CpswCpts_EventNotifyCb) (void *hEventNotifyCbArg, CpswCpts_Event *eventInfo)
 CPTS Event notify callback type. More...
 
typedef void(* CpswCpts_HwPushNotifyCb) (void *pHwPushNotifyCbArg, CpswCpts_HwPush hwPushNum)
 CPTS hardware push notify callback type. More...
 
typedef struct CpswCpts_Obj_s * CpswCpts_Handle
 CPTS handle. More...
 

Enumerations

enum  CpswCpts_Ioctl_e {
  CPSW_CPTS_IOCTL_GET_VERSION = CPSW_CPTS_PUBLIC_IOCTL(0U), CPSW_CPTS_IOCTL_REGISTER_STACK = CPSW_CPTS_PUBLIC_IOCTL(1U), CPSW_CPTS_IOCTL_UNREGISTER_STACK = CPSW_CPTS_PUBLIC_IOCTL(2U), CPSW_CPTS_IOCTL_REGISTER_HW_PUSH_CALLBACK = CPSW_CPTS_PUBLIC_IOCTL(3U),
  CPSW_CPTS_IOCTL_UNREGISTER_HW_PUSH_CALLBACK = CPSW_CPTS_PUBLIC_IOCTL(4U), CPSW_CPTS_IOCTL_PUSH_TIMESTAMP_EVENT = CPSW_CPTS_PUBLIC_IOCTL(5U), CPSW_CPTS_IOCTL_LOAD_TIMESTAMP = CPSW_CPTS_PUBLIC_IOCTL(6U), CPSW_CPTS_IOCTL_SET_TS_NUDGE = CPSW_CPTS_PUBLIC_IOCTL(7U),
  CPSW_CPTS_IOCTL_SET_TS_PPM = CPSW_CPTS_PUBLIC_IOCTL(8U), CPSW_CPTS_IOCTL_SET_COMP = CPSW_CPTS_PUBLIC_IOCTL(9U), CPSW_CPTS_IOCTL_SET_COMP_NUDGE = CPSW_CPTS_PUBLIC_IOCTL(10U), CPSW_CPTS_IOCTL_SET_GENF = CPSW_CPTS_PUBLIC_IOCTL(11U),
  CPSW_CPTS_IOCTL_SET_GENF_NUDGE = CPSW_CPTS_PUBLIC_IOCTL(12U), CPSW_CPTS_IOCTL_SET_ESTF = CPSW_CPTS_PUBLIC_IOCTL(13U), CPSW_CPTS_IOCTL_SET_ESTF_NUDGE = CPSW_CPTS_PUBLIC_IOCTL(14U), CPSW_CPTS_IOCTL_SELECT_TS_OUTPUT_BIT = CPSW_CPTS_PUBLIC_IOCTL(15U),
  CPSW_CPTS_IOCTL_LOOKUP_EVENT = CPSW_CPTS_PUBLIC_IOCTL(16U), CPSW_CPTS_IOCTL_CLEAR_ALL_EVENTS = CPSW_CPTS_PUBLIC_IOCTL(17U), CPSW_CPTS_IOCTL_PRINT_REGS = CPSW_CPTS_PUBLIC_IOCTL(18U), CPSW_CPTS_IOCTL_PRINT_STATS = CPSW_CPTS_PUBLIC_IOCTL(19U)
}
 CPTS module IOCTL commands. More...
 
enum  CpswCpts_RftClkFreq {
  CPSW_CPTS_RFTCLK_FREQ_1000MHZ = 0U, CPSW_CPTS_RFTCLK_FREQ_500MHZ = 1U, CPSW_CPTS_RFTCLK_FREQ_333_33MHZ = 2U, CPSW_CPTS_RFTCLK_FREQ_250MHZ = 3U,
  CPSW_CPTS_RFTCLK_FREQ_200MHZ = 4U, CPSW_CPTS_RFTCLK_FREQ_166_66MHZ = 5U, CPSW_CPTS_RFTCLK_FREQ_142_85MHZ = 6U, CPSW_CPTS_RFTCLK_FREQ_125MHZ = 7U
}
 CPTS clock frequency add value enumeration. More...
 
enum  CpswCpts_EventType {
  CPSW_CPTS_EVENTTYPE_TS_PUSH = 0U, CPSW_CPTS_EVENTTYPE_TS_ROLLOVER = 1U, CPSW_CPTS_EVENTTYPE_TS_HALFROLLOVER = 2U, CPSW_CPTS_EVENTTYPE_HW_TS_PUSH = 3U,
  CPSW_CPTS_EVENTTYPE_ETH_RECEIVE = 4U, CPSW_CPTS_EVENTTYPE_ETH_TRANSMIT = 5U, CPSW_CPTS_EVENTTYPE_TS_COMP = 6U, CPSW_CPTS_EVENTTYPE_TS_HOST_TX = 7U,
  CPSW_CPTS_EVENTTYPE_INVALID = -1
}
 CPTS event type enumeration. More...
 
enum  CpswCpts_MsgType {
  CPSW_CPTS_MESSAGE_SYNC = 0x00U, CPSW_CPTS_MESSAGE_DELAY_REQ = 0x01U, CPSW_CPTS_MESSAGE_PDELAY_REQ = 0x02U, CPSW_CPTS_MESSAGE_PDELAY_RESP = 0x03U,
  CPSW_CPTS_MESSAGE_FOLLOW_UP = 0x08U, CPSW_CPTS_MESSAGE_DELAY_RESP = 0x09U, CPSW_CPTS_MESSAGE_PDELAY_RESP_FOLLOW_UP = 0x0AU, CPSW_CPTS_MESSAGE_ANNOUNCE = 0x0BU,
  CPSW_CPTS_MESSAGE_SIGNALING = 0x0CU, CPSW_CPTS_MESSAGE_MANAGEMENT = 0x0DU, CPSW_CPTS_MESSAGE_INVALID = -1
}
 CPTS Ethernet message type enumeration. More...
 
enum  CpswCpts_OutputBitSel {
  CPSW_CPTS_TS_OUTPUT_BIT_DISABLED = 0U, CPSW_CPTS_TS_OUTPUT_BIT_17 = 1U, CPSW_CPTS_TS_OUTPUT_BIT_18 = 2U, CPSW_CPTS_TS_OUTPUT_BIT_19 = 3U,
  CPSW_CPTS_TS_OUTPUT_BIT_20 = 4U, CPSW_CPTS_TS_OUTPUT_BIT_21 = 5U, CPSW_CPTS_TS_OUTPUT_BIT_22 = 6U, CPSW_CPTS_TS_OUTPUT_BIT_23 = 7U,
  CPSW_CPTS_TS_OUTPUT_BIT_24 = 8U, CPSW_CPTS_TS_OUTPUT_BIT_25 = 9U, CPSW_CPTS_TS_OUTPUT_BIT_26 = 10U, CPSW_CPTS_TS_OUTPUT_BIT_27 = 11U,
  CPSW_CPTS_TS_OUTPUT_BIT_28 = 12U, CPSW_CPTS_TS_OUTPUT_BIT_29 = 13U, CPSW_CPTS_TS_OUTPUT_BIT_30 = 14U, CPSW_CPTS_TS_OUTPUT_BIT_31 = 15U
}
 CPTS time stamp output bit enumeration. More...
 
enum  CpswCpts_PpmMode { CPSW_CPTS_PPM_DISABLE = 0U, CPSW_CPTS_PPM_PARTS_PER_MILLION = 1U, CPSW_CPTS_PPM_PARTS_PER_HOUR = 2U }
 CPTS PPM mode enumeration. More...
 
enum  CpswCpts_PpmDir { CPSW_CPTS_PPM_DIR_INCREASE = 0U, CPSW_CPTS_PPM_DIR_DECREASE = 1U }
 CPTS PPM direction Enumeration. More...
 
enum  CpswCpts_HwPush {
  CPSW_CPTS_HW_PUSH_FIRST = 1U, CPSW_CPTS_HW_PUSH_1 = CPSW_CPTS_HW_PUSH_FIRST, CPSW_CPTS_HW_PUSH_2 = 2U, CPSW_CPTS_HW_PUSH_3 = 3U,
  CPSW_CPTS_HW_PUSH_4 = 4U, CPSW_CPTS_HW_PUSH_5 = 5U, CPSW_CPTS_HW_PUSH_6 = 6U, CPSW_CPTS_HW_PUSH_7 = 7U,
  CPSW_CPTS_HW_PUSH_8 = 8U, CPSW_CPTS_HW_PUSH_LAST = CPSW_CPTS_HW_PUSH_8, CPSW_CPTS_HW_PUSH_INVALID = -1
}
 CPTS Hardware push instances Enumeration. More...
 

Macros

#define CPSW_CPTS_PUBLIC_IOCTL(x)   (CPSW_IOCTL_CPTS_BASE | CPSW_IOCTL_MIN(x))
 Helper macro to create IOCTL commands for CPTS submodule. More...
 
#define CPSW_CPTS_HW_PUSH_NORMALIZE(x)   ((uint32_t)((x) - CPSW_CPTS_HW_PUSH_FIRST))
 Helper macro to normalize CpswCpts_HwPush enum. More...
 
#define CPSW_CPTS_HW_PUSH_COUNT_MAX   ((uint32_t)(CPSW_CPTS_HW_PUSH_LAST))
 Max number of hardware push instances. More...
 

Macro Definition Documentation

#define CPSW_CPTS_PUBLIC_IOCTL (   x)    (CPSW_IOCTL_CPTS_BASE | CPSW_IOCTL_MIN(x))

Helper macro to create IOCTL commands for CPTS submodule.

#define CPSW_CPTS_HW_PUSH_NORMALIZE (   x)    ((uint32_t)((x) - CPSW_CPTS_HW_PUSH_FIRST))

Helper macro to normalize CpswCpts_HwPush enum.

#define CPSW_CPTS_HW_PUSH_COUNT_MAX   ((uint32_t)(CPSW_CPTS_HW_PUSH_LAST))

Max number of hardware push instances.

Typedef Documentation

CPTS Lookup event IOCTL inArgs.

typedef void(* CpswCpts_EventNotifyCb) (void *hEventNotifyCbArg, CpswCpts_Event *eventInfo)

CPTS Event notify callback type.

Parameters
hEventNotifyCbArg[IN] Callback argument
eventInfo[IN] CPTS event information
typedef void(* CpswCpts_HwPushNotifyCb) (void *pHwPushNotifyCbArg, CpswCpts_HwPush hwPushNum)

CPTS hardware push notify callback type.

Parameters
pHwPushNotifyCbArg[IN] Callback argument
hwPushNum[IN] CPTS hardware push instance number
typedef struct CpswCpts_Obj_s* CpswCpts_Handle

CPTS handle.

CPTS submodule opaque handle.

Enumeration Type Documentation

CPTS module IOCTL commands.

Enumerator
CPSW_CPTS_IOCTL_GET_VERSION 

Get the hardware version of the CPTS submodule.

IOCTL parameters:

CPSW_CPTS_IOCTL_REGISTER_STACK 

CPTS register stack.

IOCTL parameters:

CPSW_CPTS_IOCTL_UNREGISTER_STACK 

CPTS unregister stack.

IOCTL parameters:

  • inArgs: None
  • outArgs: None
CPSW_CPTS_IOCTL_REGISTER_HW_PUSH_CALLBACK 

CPTS register hardware push event callback.

IOCTL parameters:

CPSW_CPTS_IOCTL_UNREGISTER_HW_PUSH_CALLBACK 

CPTS unregister stack.

IOCTL parameters:

  • inArgs: CpswCpts_HwPush hwPushNum
  • outArgs: None
CPSW_CPTS_IOCTL_PUSH_TIMESTAMP_EVENT 

CPTS time stamp push.

IOCTL parameters:

  • inArgs: None
  • outArgs: uint64_t tsVal
CPSW_CPTS_IOCTL_LOAD_TIMESTAMP 

CPTS time stamp load.

IOCTL parameters:

  • inArgs: uint64_t tsVal
  • outArgs: None
CPSW_CPTS_IOCTL_SET_TS_NUDGE 

CPTS set time stamp nudge.

IOCTL parameters:

  • inArgs: int32_t nudge
  • outArgs: None
CPSW_CPTS_IOCTL_SET_TS_PPM 

CPTS set time stamp PPM.

IOCTL parameters:

CPSW_CPTS_IOCTL_SET_COMP 

CPTS set compare value.

IOCTL parameters:

CPSW_CPTS_IOCTL_SET_COMP_NUDGE 

CPTS set compare nudge.

IOCTL parameters:

  • inArgs: int32_t nudge
  • outArgs: None
CPSW_CPTS_IOCTL_SET_GENF 

CPTS set function generator.

IOCTL parameters:

CPSW_CPTS_IOCTL_SET_GENF_NUDGE 

CPTS set GenFn stamp nudge.

IOCTL parameters:

CPSW_CPTS_IOCTL_SET_ESTF 

CPTS set EST function generator.

IOCTL parameters:

CPSW_CPTS_IOCTL_SET_ESTF_NUDGE 

CPTS set ESTFn stamp nudge.

IOCTL parameters:

CPSW_CPTS_IOCTL_SELECT_TS_OUTPUT_BIT 

CPTS TS output bit select.

IOCTL parameters:

CPSW_CPTS_IOCTL_LOOKUP_EVENT 

CPTS lookup event.

IOCTL parameters:

CPSW_CPTS_IOCTL_CLEAR_ALL_EVENTS 

CPTS clear all events.

IOCTL parameters:

  • inArgs: None
  • outArgs: None
CPSW_CPTS_IOCTL_PRINT_REGS 

Print CPTS registers.

IOCTL parameters:

  • inArgs: None
  • outArgs: None
CPSW_CPTS_IOCTL_PRINT_STATS 

Print CPTS event statistics.

IOCTL parameters:

  • inArgs: None
  • outArgs: None

CPTS clock frequency add value enumeration.

Enumerator
CPSW_CPTS_RFTCLK_FREQ_1000MHZ 

CPTS reference clock frequency: 1000MHz

CPSW_CPTS_RFTCLK_FREQ_500MHZ 

CPTS reference clock frequency: 500MHz

CPSW_CPTS_RFTCLK_FREQ_333_33MHZ 

CPTS reference clock frequency: 333.33MHz

CPSW_CPTS_RFTCLK_FREQ_250MHZ 

CPTS reference clock frequency: 250MHz

CPSW_CPTS_RFTCLK_FREQ_200MHZ 

CPTS reference clock frequency: 200MHz

CPSW_CPTS_RFTCLK_FREQ_166_66MHZ 

CPTS reference clock frequency: 166.66MHz

CPSW_CPTS_RFTCLK_FREQ_142_85MHZ 

CPTS reference clock frequency: 142.85MHz

CPSW_CPTS_RFTCLK_FREQ_125MHZ 

CPTS reference clock frequency: 125MHz

CPTS event type enumeration.

Enumerator
CPSW_CPTS_EVENTTYPE_TS_PUSH 

CPTS software time stamp push event

CPSW_CPTS_EVENTTYPE_TS_ROLLOVER 

CPTS time stamp rollover event (32bit mode only)

CPSW_CPTS_EVENTTYPE_TS_HALFROLLOVER 

CPTS time stamp half rollover event (32bit mode only)

CPSW_CPTS_EVENTTYPE_HW_TS_PUSH 

CPTS hardware time stamp push event

CPSW_CPTS_EVENTTYPE_ETH_RECEIVE 

CPTS Ethernet receive event

CPSW_CPTS_EVENTTYPE_ETH_TRANSMIT 

CPTS Ethernet transmit event

CPSW_CPTS_EVENTTYPE_TS_COMP 

CPTS time stamp compare event

CPSW_CPTS_EVENTTYPE_TS_HOST_TX 

CPTS time stamp host transmit event

CPSW_CPTS_EVENTTYPE_INVALID 

Invalid event

CPTS Ethernet message type enumeration.

Enumerator
CPSW_CPTS_MESSAGE_SYNC 

CPTS sync message

CPSW_CPTS_MESSAGE_DELAY_REQ 

CPTS delay request message

CPSW_CPTS_MESSAGE_PDELAY_REQ 

CPTS Pdelay request message

CPSW_CPTS_MESSAGE_PDELAY_RESP 

CPTS Pdelay response message

CPSW_CPTS_MESSAGE_FOLLOW_UP 

CPTS follow up message

CPSW_CPTS_MESSAGE_DELAY_RESP 

CPTS delay response message

CPSW_CPTS_MESSAGE_PDELAY_RESP_FOLLOW_UP 

CPTS Pdelay response followup message

CPSW_CPTS_MESSAGE_ANNOUNCE 

CPTS announce message

CPSW_CPTS_MESSAGE_SIGNALING 

CPTS signaling message

CPSW_CPTS_MESSAGE_MANAGEMENT 

CPTS management message

CPSW_CPTS_MESSAGE_INVALID 

CPTS invalid message

CPTS time stamp output bit enumeration.

Enumerator
CPSW_CPTS_TS_OUTPUT_BIT_DISABLED 

CPTS time stamp output bit selection disabled

CPSW_CPTS_TS_OUTPUT_BIT_17 

CPTS select time stamp output bit 17

CPSW_CPTS_TS_OUTPUT_BIT_18 

CPTS select time stamp output bit 18

CPSW_CPTS_TS_OUTPUT_BIT_19 

CPTS select time stamp output bit 19

CPSW_CPTS_TS_OUTPUT_BIT_20 

CPTS select time stamp output bit 20

CPSW_CPTS_TS_OUTPUT_BIT_21 

CPTS select time stamp output bit 21

CPSW_CPTS_TS_OUTPUT_BIT_22 

CPTS select time stamp output bit 22

CPSW_CPTS_TS_OUTPUT_BIT_23 

CPTS select time stamp output bit 23

CPSW_CPTS_TS_OUTPUT_BIT_24 

CPTS select time stamp output bit 24

CPSW_CPTS_TS_OUTPUT_BIT_25 

CPTS select time stamp output bit 25

CPSW_CPTS_TS_OUTPUT_BIT_26 

CPTS select time stamp output bit 26

CPSW_CPTS_TS_OUTPUT_BIT_27 

CPTS select time stamp output bit 27

CPSW_CPTS_TS_OUTPUT_BIT_28 

CPTS select time stamp output bit 28

CPSW_CPTS_TS_OUTPUT_BIT_29 

CPTS select time stamp output bit 29

CPSW_CPTS_TS_OUTPUT_BIT_30 

CPTS select time stamp output bit 30

CPSW_CPTS_TS_OUTPUT_BIT_31 

CPTS select time stamp output bit 31

CPTS PPM mode enumeration.

Enumerator
CPSW_CPTS_PPM_DISABLE 

PPM value is set to zero

CPSW_CPTS_PPM_PARTS_PER_MILLION 

PPM value is calculated for parts per million

CPSW_CPTS_PPM_PARTS_PER_HOUR 

PPM value is calculated for parts per hour

CPTS PPM direction Enumeration.

Enumerator
CPSW_CPTS_PPM_DIR_INCREASE 

Increase time stamp with PPM value

CPSW_CPTS_PPM_DIR_DECREASE 

Decrease time stamp with PPM value

CPTS Hardware push instances Enumeration.

Enumerator
CPSW_CPTS_HW_PUSH_FIRST 

First hardware push instance

CPSW_CPTS_HW_PUSH_1 

Hardware push instance 1

CPSW_CPTS_HW_PUSH_2 

Hardware push instance 2

CPSW_CPTS_HW_PUSH_3 

Hardware push instance 3

CPSW_CPTS_HW_PUSH_4 

Hardware push instance 4

CPSW_CPTS_HW_PUSH_5 

Hardware push instance 5

CPSW_CPTS_HW_PUSH_6 

Hardware push instance 6

CPSW_CPTS_HW_PUSH_7 

Hardware push instance 7

CPSW_CPTS_HW_PUSH_8 

Hardware push instance 8

CPSW_CPTS_HW_PUSH_LAST 

Last hardware push instance

CPSW_CPTS_HW_PUSH_INVALID 

Invalid hardware push instance