AM263Px MCU+ SDK  10.01.00

Introduction

The CPSW CPTS module provides additional IOCTL commands than those supported by the generic Enet Time Synchronization API set.

CPSW CPTS clocks:

Interrupts:

SoC parameters:

Errata:

Compile-time configuration:

Data Structures

struct  CpswCpts_Event
 CPTS event. More...
 
struct  CpswCpts_EstEventMatchParams
 CPTS EST event match params. More...
 
struct  CpswCpts_EstEvent
 CPTS EST timestamp. More...
 
struct  CpswCpts_RegisterStackInArgs
 Input args for CPSW_CPTS_IOCTL_REGISTER_STACK command. More...
 
struct  CpswCpts_RegisterHwPushCbInArgs
 Input args for CPSW_CPTS_IOCTL_REGISTER_HWPUSH_CALLBACK command. More...
 
struct  CpswCpts_SetCompValInArgs
 Input args for CPSW_CPTS_IOCTL_SET_COMP command. More...
 
struct  CpswCpts_SetFxnGenInArgs
 Input args for CPSW_CPTS_IOCTL_SET_GENF and CPSW_CPTS_IOCTL_SET_ESTF commands. More...
 
struct  CpswCpts_SetFxnGenNudgeInArgs
 Input args for CPSW_CPTS_IOCTL_SET_GENF_NUDGE and CPSW_CPTS_IOCTL_SET_ESTF_NUDGE commands. More...
 
struct  CpswCpts_Cfg
 CPTS configuration. More...
 

Functions

void CpswCpts_initCfg (CpswCpts_Cfg *cptsCfg)
 Initialize CPSW CPTS configuration parameters. More...
 

Typedefs

typedef void(* CpswCpts_EventNotifyCb) (void *eventNotifyCbArg, CpswCpts_Event *eventInfo)
 CPTS event notify callback. More...
 
typedef void(* CpswCpts_HwPushNotifyCb) (void *hwPushNotifyCbArg, CpswCpts_HwPush hwPushNum)
 CPTS hardware push notify callback/. More...
 

Enumerations

enum  CpswCpts_Ioctl {
  CPSW_CPTS_IOCTL_REGISTER_STACK = CPSW_CPTS_PUBLIC_IOCTL(0U), CPSW_CPTS_IOCTL_UNREGISTER_STACK = CPSW_CPTS_PUBLIC_IOCTL(1U), CPSW_CPTS_IOCTL_REGISTER_HWPUSH_CALLBACK = CPSW_CPTS_PUBLIC_IOCTL(2U), CPSW_CPTS_IOCTL_UNREGISTER_HWPUSH_CALLBACK = CPSW_CPTS_PUBLIC_IOCTL(3U),
  CPSW_CPTS_IOCTL_SET_TS_NUDGE = CPSW_CPTS_PUBLIC_IOCTL(4U), CPSW_CPTS_IOCTL_SET_COMP = CPSW_CPTS_PUBLIC_IOCTL(5U), CPSW_CPTS_IOCTL_SET_COMP_NUDGE = CPSW_CPTS_PUBLIC_IOCTL(6U), CPSW_CPTS_IOCTL_SET_GENF = CPSW_CPTS_PUBLIC_IOCTL(7U),
  CPSW_CPTS_IOCTL_SET_GENF_NUDGE = CPSW_CPTS_PUBLIC_IOCTL(8U), CPSW_CPTS_IOCTL_SET_ESTF = CPSW_CPTS_PUBLIC_IOCTL(9U), CPSW_CPTS_IOCTL_SET_ESTF_NUDGE = CPSW_CPTS_PUBLIC_IOCTL(10U), CPSW_CPTS_IOCTL_SELECT_TS_OUTPUT_BIT = CPSW_CPTS_PUBLIC_IOCTL(11U),
  CPSW_CPTS_IOCTL_LOOKUP_EVENT = CPSW_CPTS_PUBLIC_IOCTL(12U), CPSW_CPTS_IOCTL_LOOKUP_EST_EVENT = CPSW_CPTS_PUBLIC_IOCTL(13U)
}
 CPSW CPTS 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. More...
 
enum  CpswCpts_EventType {
  CPSW_CPTS_EVENTTYPE_TS_PUSH = 0U, CPSW_CPTS_EVENTTYPE_TS_ROLLOVER, CPSW_CPTS_EVENTTYPE_TS_HALFROLLOVER, CPSW_CPTS_EVENTTYPE_HW_TS_PUSH,
  CPSW_CPTS_EVENTTYPE_ETH_RECEIVE, CPSW_CPTS_EVENTTYPE_ETH_TRANSMIT, CPSW_CPTS_EVENTTYPE_TS_COMP, CPSW_CPTS_EVENTTYPE_TS_HOST_TX,
  CPSW_CPTS_EVENTTYPE_INVALID = -1
}
 CPTS event type. More...
 
enum  CpswCpts_OutputBitSel {
  CPSW_CPTS_TS_OUTPUT_BIT_DISABLED = 0U, CPSW_CPTS_TS_OUTPUT_BIT_17, CPSW_CPTS_TS_OUTPUT_BIT_18, CPSW_CPTS_TS_OUTPUT_BIT_19,
  CPSW_CPTS_TS_OUTPUT_BIT_20, CPSW_CPTS_TS_OUTPUT_BIT_21, CPSW_CPTS_TS_OUTPUT_BIT_22, CPSW_CPTS_TS_OUTPUT_BIT_23,
  CPSW_CPTS_TS_OUTPUT_BIT_24, CPSW_CPTS_TS_OUTPUT_BIT_25, CPSW_CPTS_TS_OUTPUT_BIT_26, CPSW_CPTS_TS_OUTPUT_BIT_27,
  CPSW_CPTS_TS_OUTPUT_BIT_28, CPSW_CPTS_TS_OUTPUT_BIT_29, CPSW_CPTS_TS_OUTPUT_BIT_30, CPSW_CPTS_TS_OUTPUT_BIT_31
}
 CPTS time stamp output bit. More...
 
enum  CpswCpts_HwPush {
  CPSW_CPTS_HWPUSH_FIRST = 1U, CPSW_CPTS_HWPUSH_1 = CPSW_CPTS_HWPUSH_FIRST, CPSW_CPTS_HWPUSH_2, CPSW_CPTS_HWPUSH_3,
  CPSW_CPTS_HWPUSH_4, CPSW_CPTS_HWPUSH_5, CPSW_CPTS_HWPUSH_6, CPSW_CPTS_HWPUSH_7,
  CPSW_CPTS_HWPUSH_8, CPSW_CPTS_HWPUSH_LAST = CPSW_CPTS_HWPUSH_8, CPSW_CPTS_HWPUSH_INVALID = -1
}
 CPTS Hardware push instances. More...
 
enum  CpswCpts_FxnGenAdjDir { CPSW_CPTS_GENF_PPM_ADJDIR_DECREASE = 0U, CPSW_CPTS_GENF_PPM_ADJDIR_INCREASE }
 Genf adjustment direction. More...
 

Macros

#define CPSW_CPTS_PUBLIC_IOCTL(x)
 Helper macro to create IOCTL commands for CPSW CPTS module. More...
 
#define CPSW_CPTS_NUDGE_MIN_VAL   (-128)
 Minimum nudge value. More...
 
#define CPSW_CPTS_NUDGE_MAX_VAL   (127)
 Maximum nudge value. More...
 
#define CPSW_CPTS_HWPUSH_COUNT_MAX   ((uint32_t)CPSW_CPTS_HWPUSH_LAST)
 Max number of hardware push instances. More...
 
#define CPSW_CPTS_HWPUSH_NORM(x)   ((uint32_t)((x) - CPSW_CPTS_HWPUSH_FIRST))
 Helper macro to normalize CpswCpts_HwPush values. More...
 

Macro Definition Documentation

◆ CPSW_CPTS_PUBLIC_IOCTL

#define CPSW_CPTS_PUBLIC_IOCTL (   x)
Value:
ENET_IOCTL_TIMESYNC_BASE | \
ENET_IOCTL_PER_CPSW | \
ENET_IOCTL_MIN(x))

Helper macro to create IOCTL commands for CPSW CPTS module.

◆ CPSW_CPTS_NUDGE_MIN_VAL

#define CPSW_CPTS_NUDGE_MIN_VAL   (-128)

Minimum nudge value.

◆ CPSW_CPTS_NUDGE_MAX_VAL

#define CPSW_CPTS_NUDGE_MAX_VAL   (127)

Maximum nudge value.

◆ CPSW_CPTS_HWPUSH_COUNT_MAX

#define CPSW_CPTS_HWPUSH_COUNT_MAX   ((uint32_t)CPSW_CPTS_HWPUSH_LAST)

Max number of hardware push instances.

◆ CPSW_CPTS_HWPUSH_NORM

#define CPSW_CPTS_HWPUSH_NORM (   x)    ((uint32_t)((x) - CPSW_CPTS_HWPUSH_FIRST))

Helper macro to normalize CpswCpts_HwPush values.

Typedef Documentation

◆ CpswCpts_EventNotifyCb

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

CPTS event notify callback.

Parameters
eventNotifyCbArgCallback argument
eventInfoCPTS event information

◆ CpswCpts_HwPushNotifyCb

typedef void(* CpswCpts_HwPushNotifyCb) (void *hwPushNotifyCbArg, CpswCpts_HwPush hwPushNum)

CPTS hardware push notify callback/.

Parameters
hwPushNotifyCbArgCallback argument
hwPushNumCPTS hardware push instance number

Enumeration Type Documentation

◆ CpswCpts_Ioctl

CPSW CPTS IOCTL commands.

Enumerator
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_HWPUSH_CALLBACK 

CPTS register hardware push event callback.

IOCTL parameters:

CPSW_CPTS_IOCTL_UNREGISTER_HWPUSH_CALLBACK 

CPTS unregister hardware push event callback.

IOCTL parameters:

CPSW_CPTS_IOCTL_SET_TS_NUDGE 

CPTS set timestamp nudge.

Sets time nudge value. Nudge value must be within the range of CPSW_CPTS_NUDGE_MIN_VAL and CPSW_CPTS_NUDGE_MAX_VAL.

IOCTL parameters:

  • inArgs: int32_t
  • outArgs: None
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
  • 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_LOOKUP_EST_EVENT 

CPTS lookup EST event/.

IOCTL parameters:

◆ CpswCpts_RftClkFreq

CPTS clock frequency add value.

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

◆ CpswCpts_EventType

CPTS event type.

Enumerator
CPSW_CPTS_EVENTTYPE_TS_PUSH 

CPTS software time stamp push event

CPSW_CPTS_EVENTTYPE_TS_ROLLOVER 

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

CPSW_CPTS_EVENTTYPE_TS_HALFROLLOVER 

CPTS time stamp half rollover event (32-bit 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

◆ CpswCpts_OutputBitSel

CPTS time stamp output bit.

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

◆ CpswCpts_HwPush

CPTS Hardware push instances.

Enumerator
CPSW_CPTS_HWPUSH_FIRST 

First hardware push instance

CPSW_CPTS_HWPUSH_1 

Hardware push instance 1

CPSW_CPTS_HWPUSH_2 

Hardware push instance 2

CPSW_CPTS_HWPUSH_3 

Hardware push instance 3

CPSW_CPTS_HWPUSH_4 

Hardware push instance 4

CPSW_CPTS_HWPUSH_5 

Hardware push instance 5

CPSW_CPTS_HWPUSH_6 

Hardware push instance 6

CPSW_CPTS_HWPUSH_7 

Hardware push instance 7

CPSW_CPTS_HWPUSH_8 

Hardware push instance 8

CPSW_CPTS_HWPUSH_LAST 

Last hardware push instance

CPSW_CPTS_HWPUSH_INVALID 

Invalid hardware push instance

◆ CpswCpts_FxnGenAdjDir

Genf adjustment direction.

Enumerator
CPSW_CPTS_GENF_PPM_ADJDIR_DECREASE 

Decrease the Genf frequency with adjustment value

CPSW_CPTS_GENF_PPM_ADJDIR_INCREASE 

Increase the Genf frequency with adjustment value

Function Documentation

◆ CpswCpts_initCfg()

void CpswCpts_initCfg ( CpswCpts_Cfg cptsCfg)

Initialize CPSW CPTS configuration parameters.

Parameters
cptsCfgConfiguration parameters to be initialized
ENET_IOCTL_TYPE_PUBLIC
@ ENET_IOCTL_TYPE_PUBLIC
Definition: enet_ioctl.h:216