PDK API Guide for J721E
csl_cpts.h
Go to the documentation of this file.
1 
41 #ifndef CSL_CPTS_H_
42 #define CSL_CPTS_H_
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 #include <stdint.h>
49 #include <ti/csl/cslr_cpts.h>
50 
77 typedef uint32_t CSL_CPTS_TS_OUTPUT_BIT;
78 #define CPTS_TS_OUTPUT_BIT_DISABLED ((uint32_t) 0U)
79 #define CPTS_TS_OUTPUT_BIT_17 ((uint32_t) 1U)
80 #define CPTS_TS_OUTPUT_BIT_18 ((uint32_t) 2U)
81 #define CPTS_TS_OUTPUT_BIT_19 ((uint32_t) 3U)
82 #define CPTS_TS_OUTPUT_BIT_20 ((uint32_t) 4U)
83 #define CPTS_TS_OUTPUT_BIT_21 ((uint32_t) 5U)
84 #define CPTS_TS_OUTPUT_BIT_22 ((uint32_t) 6U)
85 #define CPTS_TS_OUTPUT_BIT_23 ((uint32_t) 7U)
86 #define CPTS_TS_OUTPUT_BIT_24 ((uint32_t) 8U)
87 #define CPTS_TS_OUTPUT_BIT_25 ((uint32_t) 9U)
88 #define CPTS_TS_OUTPUT_BIT_26 ((uint32_t) 10U)
89 #define CPTS_TS_OUTPUT_BIT_27 ((uint32_t) 11U)
90 #define CPTS_TS_OUTPUT_BIT_28 ((uint32_t) 12U)
91 #define CPTS_TS_OUTPUT_BIT_29 ((uint32_t) 13U)
92 #define CPTS_TS_OUTPUT_BIT_30 ((uint32_t) 14U)
93 #define CPTS_TS_OUTPUT_BIT_31 ((uint32_t) 15U)
94 
99 typedef uint32_t CSL_CPTS_TS_PPM_DIR;
100 #define CSL_CPTS_TS_PPM_DIR_INCREASE ((uint32_t) 0U)
101 #define CSL_CPTS_TS_PPM_DIR_DECREASE ((uint32_t) 1U)
102 
107 typedef struct {
110  uint32_t cptsEn;
111 
114  uint32_t intTest;
115 
117  uint32_t tsCompPolarity;
118 
120  uint32_t tstampEn;
121 
126  uint32_t seqEn;
127 
132  uint32_t ts64bMode;
133 
135  uint32_t tsCompToggle;
136 
138  uint32_t tsHwPushEn[8];
139 
142 
148 
153  uint32_t tsGenfClrEn;
154 
156 
164 /********************************************************************************
165 ********************** Time Synchronization (CPTS) Submodule ********************
166 ********************************************************************************/
167 
168 
206 extern void CSL_CPTS_getCptsVersionInfo (
207  const CSL_cptsRegs *pCptsRegs,
208  CSL_CPTS_VERSION* pVersionInfo
209 );
210 
248 extern uint32_t CSL_CPTS_isCptsEnabled (
249  const CSL_cptsRegs *pCptsRegs
250 );
251 
283 extern void CSL_CPTS_enableCpts (
284  CSL_cptsRegs *pCptsRegs
285 );
286 
318 extern void CSL_CPTS_disableCpts (
319  CSL_cptsRegs *pCptsRegs
320 );
321 
373 extern void CSL_CPTS_getCntlReg (
374  const CSL_cptsRegs *pCptsRegs,
375  CSL_CPTS_CONTROL* pCntlCfg
376 );
377 
429 extern void CSL_CPTS_setCntlReg (
430  CSL_cptsRegs *pCptsRegs,
431  const CSL_CPTS_CONTROL* pCntlCfg
432 );
433 
467 extern void CSL_CPTS_getRFTCLKSelectReg (
468  const CSL_cptsRegs *pCptsRegs,
469  uint32_t* pRefClockSelect
470 );
471 
509 extern void CSL_CPTS_setRFTCLKSelectReg (
510  CSL_cptsRegs *pCptsRegs,
511  uint32_t refClockSetVal
512 );
513 
551 extern void CSL_CPTS_TSEventPush (
552  CSL_cptsRegs *pCptsRegs
553 );
554 
591 extern void CSL_CPTS_getTSLoadValReg (
592  const CSL_cptsRegs *pCptsRegs,
593  uint32_t* pTSLoadVal
594 );
595 
632 extern void CSL_CPTS_setTSLoadValReg (
633  CSL_cptsRegs *pCptsRegs,
634  uint32_t tsLoadValLo,
635  uint32_t tsLoadValHi
636 );
637 
675 extern void CSL_CPTS_setTSVal (
676  CSL_cptsRegs *pCptsRegs,
677  uint32_t tsValLo,
678  uint32_t tsValHi
679 );
680 
724 extern void CSL_CPTS_setTSCompVal (
725  CSL_cptsRegs *pCptsRegs,
726  uint32_t tsCompValLo,
727  uint32_t tsCompValHi,
728  uint32_t tsCompLen
729 );
730 
770 extern void CSL_CPTS_setTSCompNudge (
771  CSL_cptsRegs *pCptsRegs,
772  int32_t tsCompNudge
773 );
774 
807 extern uint32_t CSL_CPTS_getTSAddVal (
808  CSL_cptsRegs *pCptsRegs
809 );
810 
852 extern void CSL_CPTS_setTSAddVal (
853  CSL_cptsRegs *pCptsRegs,
854  uint32_t tsAddVal
855 );
856 
899 extern void CSL_CPTS_setTSNudge (
900  CSL_cptsRegs *pCptsRegs,
901  int32_t tsNudge
902 );
903 
937 extern void CSL_CPTS_getTSPpm (
938  const CSL_cptsRegs *pCptsRegs,
939  uint32_t tsPpmVal[2]
940 );
941 
992 extern void CSL_CPTS_setTSPpm (
993  CSL_cptsRegs *pCptsRegs,
994  uint32_t tsPpmValLo,
995  uint32_t tsPpmValHi,
996  CSL_CPTS_TS_PPM_DIR tsPpmDir
997 );
998 
1038 extern uint32_t CSL_CPTS_isRawInterruptStatusBitSet (
1039  const CSL_cptsRegs *pCptsRegs
1040 );
1041 
1082  const CSL_cptsRegs *pCptsRegs
1083 );
1084 
1122 extern uint32_t CSL_CPTS_isInterruptEnabled (
1123  const CSL_cptsRegs *pCptsRegs
1124 );
1125 
1157 extern void CSL_CPTS_enableInterrupt (
1158  CSL_cptsRegs *pCptsRegs
1159 );
1160 
1192 extern void CSL_CPTS_disableInterrupt (
1193  CSL_cptsRegs *pCptsRegs
1194 );
1195 
1230 extern void CSL_CPTS_popEvent (
1231  CSL_cptsRegs *pCptsRegs
1232 );
1233 
1273 extern void CSL_CPTS_getEventInfo (
1274  const CSL_cptsRegs *pCptsRegs,
1275  CSL_CPTS_EVENTINFO* pEventInfo
1276 );
1277 
1314 extern int32_t CSL_CPTS_getGENFnLength (
1315  CSL_cptsRegs *pCptsRegs,
1316  uint32_t genfIndex,
1317  uint32_t* pGenfLength
1318 );
1319 
1378 extern int32_t CSL_CPTS_setupGENFn(
1379  CSL_cptsRegs *pCptsRegs,
1380  uint32_t genfIndex,
1381  uint32_t length,
1382  uint64_t compare,
1383  uint32_t polarityInv,
1384  uint64_t ppmAdjust,
1385  CSL_CPTS_TS_PPM_DIR ppmDir
1386 );
1387 
1425 extern int32_t CSL_CPTS_setGENFnNudge (
1426  CSL_cptsRegs *pCptsRegs,
1427  uint32_t genfIndex,
1428  int32_t tsNudge
1429 );
1430 
1467 extern int32_t CSL_CPTS_getESTFnLength (
1468  CSL_cptsRegs *pCptsRegs,
1469  uint32_t estfIndex,
1470  uint32_t* pEstfLength
1471 );
1472 
1531 extern int32_t CSL_CPTS_setupESTFn(
1532  CSL_cptsRegs *pCptsRegs,
1533  uint32_t estfIndex,
1534  uint32_t length,
1535  uint64_t compare,
1536  uint32_t polarityInv,
1537  uint64_t ppmAdjust,
1538  CSL_CPTS_TS_PPM_DIR ppmDir
1539 );
1540 
1578 extern int32_t CSL_CPTS_setESTFnNudge (
1579  CSL_cptsRegs *pCptsRegs,
1580  uint32_t estfIndex,
1581  int32_t tsNudge
1582 );
1583 
1588 #ifdef __cplusplus
1589 }
1590 #endif
1591 
1592 #endif
void CSL_CPTS_setCntlReg(CSL_cptsRegs *pCptsRegs, const CSL_CPTS_CONTROL *pCntlCfg)
void CSL_CPTS_enableCpts(CSL_cptsRegs *pCptsRegs)
void CSL_CPTS_getTSPpm(const CSL_cptsRegs *pCptsRegs, uint32_t tsPpmVal[2])
void CSL_CPTS_setRFTCLKSelectReg(CSL_cptsRegs *pCptsRegs, uint32_t refClockSetVal)
CSL_CPTS_TS_OUTPUT_BIT tsOutputBitSel
Definition: csl_cpts.h:141
uint32_t tsGenfClrEn
Definition: csl_cpts.h:153
uint32_t seqEn
Definition: csl_cpts.h:126
uint32_t tsCompToggle
Definition: csl_cpts.h:135
void CSL_CPTS_disableInterrupt(CSL_cptsRegs *pCptsRegs)
int32_t CSL_CPTS_setGENFnNudge(CSL_cptsRegs *pCptsRegs, uint32_t genfIndex, int32_t tsNudge)
void CSL_CPTS_setTSCompNudge(CSL_cptsRegs *pCptsRegs, int32_t tsCompNudge)
void CSL_CPTS_enableInterrupt(CSL_cptsRegs *pCptsRegs)
int32_t CSL_CPTS_setupGENFn(CSL_cptsRegs *pCptsRegs, uint32_t genfIndex, uint32_t length, uint64_t compare, uint32_t polarityInv, uint64_t ppmAdjust, CSL_CPTS_TS_PPM_DIR ppmDir)
void CSL_CPTS_setTSVal(CSL_cptsRegs *pCptsRegs, uint32_t tsValLo, uint32_t tsValHi)
uint32_t tsCompPolarity
Definition: csl_cpts.h:117
void CSL_CPTS_getCptsVersionInfo(const CSL_cptsRegs *pCptsRegs, CSL_CPTS_VERSION *pVersionInfo)
uint32_t tsDisableRxEvents
Definition: csl_cpts.h:147
uint32_t ts64bMode
Definition: csl_cpts.h:132
uint32_t CSL_CPTS_TS_PPM_DIR
Defines PPM Correction Direction.
Definition: csl_cpts.h:99
void CSL_CPTS_setTSAddVal(CSL_cptsRegs *pCptsRegs, uint32_t tsAddVal)
void CSL_CPTS_setTSNudge(CSL_cptsRegs *pCptsRegs, int32_t tsNudge)
void CSL_CPTS_setTSPpm(CSL_cptsRegs *pCptsRegs, uint32_t tsPpmValLo, uint32_t tsPpmValHi, CSL_CPTS_TS_PPM_DIR tsPpmDir)
void CSL_CPTS_disableCpts(CSL_cptsRegs *pCptsRegs)
uint32_t tstampEn
Definition: csl_cpts.h:120
uint32_t CSL_CPTS_isInterruptEnabled(const CSL_cptsRegs *pCptsRegs)
uint32_t CSL_CPTS_isMaskedInterruptStatusBitSet(const CSL_cptsRegs *pCptsRegs)
void CSL_CPTS_getRFTCLKSelectReg(const CSL_cptsRegs *pCptsRegs, uint32_t *pRefClockSelect)
void CSL_CPTS_getCntlReg(const CSL_cptsRegs *pCptsRegs, CSL_CPTS_CONTROL *pCntlCfg)
int32_t CSL_CPTS_getGENFnLength(CSL_cptsRegs *pCptsRegs, uint32_t genfIndex, uint32_t *pGenfLength)
Holds the CPTS control register info.
Definition: csl_cpts.h:107
uint32_t CSL_CPTS_isRawInterruptStatusBitSet(const CSL_cptsRegs *pCptsRegs)
void CSL_CPTS_setTSCompVal(CSL_cptsRegs *pCptsRegs, uint32_t tsCompValLo, uint32_t tsCompValHi, uint32_t tsCompLen)
void CSL_CPTS_getEventInfo(const CSL_cptsRegs *pCptsRegs, CSL_CPTS_EVENTINFO *pEventInfo)
Holds Time sync event info contents.
Definition: csl_cpswitch.h:162
Holds the Time sync submodule's version info.
Definition: csl_cpswitch.h:144
int32_t CSL_CPTS_setupESTFn(CSL_cptsRegs *pCptsRegs, uint32_t estfIndex, uint32_t length, uint64_t compare, uint32_t polarityInv, uint64_t ppmAdjust, CSL_CPTS_TS_PPM_DIR ppmDir)
uint32_t intTest
Definition: csl_cpts.h:114
uint32_t CSL_CPTS_isCptsEnabled(const CSL_cptsRegs *pCptsRegs)
void CSL_CPTS_setTSLoadValReg(CSL_cptsRegs *pCptsRegs, uint32_t tsLoadValLo, uint32_t tsLoadValHi)
void CSL_CPTS_popEvent(CSL_cptsRegs *pCptsRegs)
int32_t CSL_CPTS_getESTFnLength(CSL_cptsRegs *pCptsRegs, uint32_t estfIndex, uint32_t *pEstfLength)
uint32_t CSL_CPTS_TS_OUTPUT_BIT
Defines CPTS timestamp output bits.
Definition: csl_cpts.h:77
void CSL_CPTS_TSEventPush(CSL_cptsRegs *pCptsRegs)
void CSL_CPTS_getTSLoadValReg(const CSL_cptsRegs *pCptsRegs, uint32_t *pTSLoadVal)
uint32_t CSL_CPTS_getTSAddVal(CSL_cptsRegs *pCptsRegs)
int32_t CSL_CPTS_setESTFnNudge(CSL_cptsRegs *pCptsRegs, uint32_t estfIndex, int32_t tsNudge)
uint32_t cptsEn
Definition: csl_cpts.h:110