⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zl5011xpac.h

📁 Zalink50114----TDMoIP芯片驱动源码
💻 H
字号:
/*******************************************************************************
*
*  File name:              zl5011xPac.h
*
*  Version:                27
*
*  Author:                 MRC
*
*  Date created:           27/03/2002
*
*  Copyright 2002, 2003, 2004, 2005, Zarlink Semiconductor Limited.
*  All rights reserved.
*
*  Module Description:
*
*  This is the header file for the PAC block. It contains the function prototypes
*  and any definitions.
*
*  Revision History:
*
*  Rev:  Date:       Author:  Comments:
*  1     27/03/2002  MRC      Creation
*  2     28/03/2002  MRC      Added async functions
*  3     03/04/2002  MRC      Added more async functions
*  4     17/04/2002  MRC      Changed Authur to Author in the header
*  5     22/04/2002  MRC      Changed streamNum to 8 bit from 32 bit in a
*                             few places.
*  6     23/05/2002  MRC      Async reference had changed in the PAC
*  7     28/05/2002  MRC      Number of frames setting is no longer used for
*                             RTP timestamp
*  8     17/06/2002  LCW      Update
*  9     19/06/2002  MRC      PAC block changed
*  10    16/09/2002  MRC      Added in fns for setting inverse DCO value
*  11    19/09/2002  MRC      Added extra dpll control fns
*  12    11/10/2002  MRC      Redefined fn prototype zl5011xPacSetAsyncRefFreq
*  13    24/10/2002  PJE      API tidy up
*  14    31/10/2002  MRC      Added variants + minor fixes
*  15    11/11/2002  MRC      Added zl5011xPacDpllRefEnableLimits, to enable
*                             the DPLL engine when the limits have been set.
*  16    18/11/2002  PJE      additions for CET
*  17    28/01/2003  MRC      Added functions for CET data collection
*  18    06/02/2003  MRC      Modified async DCO functions
*  19    14/02/2003  MRC      Tidied up old prototype
*  20    24/03/2003  MRC      Parameter for zl5011xPacDpllSetLockDetectThreshold
*                             changed to 32 bits
*  21    07/05/2003  MRC      Changed args to checkRef fn
*  22    22/05/2003  NJF      Add TAD interrupt bit
*  23    27/05/2003  MRC      Tidied up PAC changes and added jitter fn
*  24    20/10/2004  MRC      Added PRS variable to async configure function
*  25    16/11/2004  MRC      Added individual stream frequency control
*  26    16/12/2004  MRC      Added clock reference mux functions
*  27    21/07/2005  MRC      Added PLL status bits - moved from Map.h file
*
*******************************************************************************/

#ifndef _ZL5011X_PAC_H
#define _ZL5011X_PAC_H

#ifdef __cplusplus
extern "C" {
#endif

/*****************   # DEFINES   **********************************************/

/* defines for the PAC interrupt bit positions */
#define ZL5011X_PAC_TAD_INT              17
#define ZL5011X_PAC_ASYNC_INT            16
#define ZL5011X_DPLL_LOCK_INT            3
#define ZL5011X_DPLL_REF_CHANGE_INT      2
#define ZL5011X_DPLL_HOLDOVER_INT        1
#define ZL5011X_DPLL_SLEW_RATE_INT       0

#define ZL5011X_PAC_ENABLE_ALL_INTRS (ZL5011X_4BIT_MASK<<ZL5011X_DPLL_SLEW_RATE_INT)|\
                                   (ZL5011X_1BIT_MASK<<ZL5011X_PAC_ASYNC_INT)|\
                                   (ZL5011X_1BIT_MASK<<ZL5011X_PAC_TAD_INT)

/* defines for the PLL status bit positions */
#define ZL5011X_DPLL_STATUS_LOCK_BIT     3
#define ZL5011X_DPLL_STATUS_REF_BIT      2
#define ZL5011X_DPLL_STATUS_MODE_BITS    0

#define ZL5011X_DPLL_STATUS_MODE_MASK    (Uint32T)0x3

/*****************   DATA TYPES   *********************************************/

typedef struct
{
   zl5011xDpllOperationE dpllMode;
   zl5011xBooleanE primaryRefInUse;
   zl5011xBooleanE locked;
} zl5011xDpllStatusS;

/*****************   FUNCTION DECLARATIONS   *************************/

zlStatusE zl5011xPacInit(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacSetJitterReductionMode(zl5011xParamsS *zl5011xParams, zl5011xBooleanE enable,
      Uint8T avgMode);

zlStatusE zl5011xPacConfigureSync(zl5011xParamsS *zl5011xParams,
      zl5011xDpllConnectionE config, zl5011xBooleanE masterOutputEnable,
      zl5011xRefClkConfigS primaryRefConfig, zl5011xRefClkConfigS secondaryRefConfig,
      zl5011xDpllRefPriorityE priority);
zlStatusE zl5011xPacDpllOutputEnable(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE enable);
zlStatusE zl5011xPacDpllInitialise(zl5011xParamsS *zl5011xParams,
      zl5011xDpllRefInputFreqE refFreq);
zlStatusE zl5011xPacDpllDisable(zl5011xParamsS *zl5011xParams);

zlStatusE zl5011xPacDpllSetCentreFreq(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacDpllSetCentreInverseFreq(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacDpllSetJ2InverseFreq(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacDpllSetT1InverseFreq(zl5011xParamsS *zl5011xParams);

zlStatusE zl5011xPacDpllSetLockRange(zl5011xParamsS *zl5011xParams, Uint32T maxOffsetPpm);
zlStatusE zl5011xPacDpllSetSlewRate(zl5011xParamsS *zl5011xParams, Uint32T slewRate,
      Uint8T dpllBandwidth);
zlStatusE zl5011xPacDpllSetLockDetectThreshold(zl5011xParamsS *zl5011xParams,
   Uint16T detectThreshold, Uint32T detectTimeUs);
zlStatusE zl5011xPacDpllRefSetSingleLimit(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE secondaryRef, Uint16T highLimit, Uint16T lowLimit);
zlStatusE zl5011xPacDpllRefSetHighLimit(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE secondaryRef, Uint32T highLimit);
zlStatusE zl5011xPacDpllRefSetLowLimit(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE secondaryRef, Uint32T lowLimit);
zlStatusE zl5011xPacDpllRefSetCycleCount(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE secondaryRef, Uint16T cycleCount);
zlStatusE zl5011xPacDpllRefSetLimits(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE secondaryRef, Uint16T cycleCount,
      Uint16T singlePercentTolerance_x_10, Uint16T multiPercentTolerance_x_10);
zlStatusE zl5011xPacDpllRefEnableLimits(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE secondaryRef);

zlStatusE zl5011xPacDpllSetClockMode(zl5011xParamsS *zl5011xParams,
      zl5011xDpllOperationE mode);
zlStatusE zl5011xPacDpllSetMtieMode(zl5011xParamsS *zl5011xParams, zl5011xBooleanE mtie);

zlStatusE zl5011xPacDpllGetStatus(zl5011xParamsS *zl5011xParams, zl5011xDpllStatusS *dpllStatus);
zlStatusE zl5011xPacDpllGetStatusValue(zl5011xParamsS *zl5011xParams, Uint32T *dpllStatus);

zlStatusE zl5011xPacDpllSetRef(zl5011xParamsS *zl5011xParams, AddressT registerAddress,
      zl5011xRefClkConfigS ref);
zlStatusE zl5011xPacDpllSetPrimaryRef(zl5011xParamsS *zl5011xParams,
      zl5011xRefClkConfigS ref);
zlStatusE zl5011xPacDpllSetSecondaryRef(zl5011xParamsS *zl5011xParams,
      zl5011xRefClkConfigS ref);
zlStatusE zl5011xPacDpllSetRefPriority(zl5011xParamsS *zl5011xParams,
      zl5011xDpllRefPriorityE priority);

zlStatusE zl5011xPacConfigSecondaryRef(zl5011xParamsS *zl5011xParams, zl5011xRefClkConfigS ref, Uint32T divider);
zlStatusE zl5011xPacConfigPrimaryRef(zl5011xParamsS *zl5011xParams, zl5011xRefClkConfigS ref, Uint32T divider);

zlStatusE zl5011xPacCheckRef(zl5011xParamsS *zl5011xParams,
      zl5011xRefClkConfigS *ref, Uint32T *refFreqHz);
zlStatusE zl5011xPacCheckDpllRef(zl5011xParamsS *zl5011xParams,
      zl5011xDpllRefInputFreqE refFreq, Uint32T *refFreqHz);

zlStatusE zl5011xPacSetAsyncIntFreq(zl5011xParamsS *zl5011xParams,
      zl5011xWanAsyncIntFreqE freq);
zlStatusE zl5011xPacSetAsyncRef(zl5011xParamsS *zl5011xParams,
      zl5011xRefClkConfigS ref);
zlStatusE zl5011xPacSetAsyncRefFreq(zl5011xParamsS *zl5011xParams,
      Uint32T refFreqHz, zl5011xBooleanE forceStdFreq);
zlStatusE zl5011xPacSetAsyncRefToRtpDivider(zl5011xParamsS *zl5011xParams,
      Uint32T refFreqHz);

zlStatusE zl5011xPacEnableInterrupts(zl5011xParamsS *zl5011xParams, Uint32T bits);
zlStatusE zl5011xPacDisableInterrupts(zl5011xParamsS *zl5011xParams, Uint32T bits);
zlStatusE zl5011xPacClearInterrupts(zl5011xParamsS *zl5011xParams, Uint32T bits);
zlStatusE zl5011xPacGetStatus(zl5011xParamsS *zl5011xParams, Uint32T *statusBits);

zlStatusE zl5011xPacGetWanRxBitCount(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
   Uint64S *cnt);
zlStatusE zl5011xPacSetRtpTimestampIncrement(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
      zl5011xWanRtpIncrementTypeE incrementType);
zlStatusE zl5011xPacGetRtpTimestamp(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
      Uint32T *timestamp);
zlStatusE zl5011xPacSetDcoOffset(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
      Sint32T ppmOffset_x_1000);
zlStatusE zl5011xPacDisableDco(zl5011xParamsS *zl5011xParams, Uint8T streamNum);
zlStatusE zl5011xPacDcoSetInverseFreq(zl5011xParamsS *zl5011xParams, Uint8T streamNum);
zlStatusE zl5011xPacSetAsyncMode(zl5011xParamsS *zl5011xParams);

zlStatusE zl5011xPacCalculateDcoValues(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacCalculateStreamValues(zl5011xParamsS *zl5011xParams, Uint8T streamNum, Uint32T freqHz);
zlStatusE zl5011xPacDcoInit(zl5011xParamsS *zl5011xParams);

zlStatusE zl5011xPacConfigureAsync(zl5011xParamsS *zl5011xParams,
      zl5011xWanAsyncIntFreqE asyncIntFreq, zl5011xRefClkConfigS ref,
      zl5011xBooleanE forceStdFreq);

zlStatusE zl5011xPacConfigurePacket(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
      zl5011xWanTxTimestampSizeE timestampSize, zl5011xWanTxQueueOperationE sequenceSize,
      zl5011xBooleanE ignoreLatePackets, Uint8T averageMode);
zlStatusE zl5011xPacConfigureAsyncStream(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
      zl5011xWanAsyncDataCollectionE clockDataMode);
zlStatusE zl5011xPacSetTxClockMode(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
      zl5011xWanAsyncClockTxModeE clockMode);

zlStatusE zl5011xPacGetInterruptStatus(zl5011xParamsS *zl5011xParams,
      Uint32T *interruptStatusBits);
zlStatusE zl5011xPacGetDifferentialStats(zl5011xParamsS *zl5011xParams,
      Uint32T streamNum, zl5011xPacDiffStatsS *zl5011xPacDiffStats);
zlStatusE zl5011xPacGetTxDifferentialCount(zl5011xParamsS *zl5011xParams,
      Uint32T streamNumber, Uint32T *wanTxDiffCount,
      Uint32T *sequenceNumber);
zlStatusE zl5011xPacGetRxDifferentialCount(zl5011xParamsS *zl5011xParams,
      Uint32T streamNumber, Uint32T *wanTxDiffCount,
      Uint32T *sequenceNumber);
zlStatusE zl5011xPacGetInBandDifferentialCount(zl5011xParamsS *zl5011xParams,
      Uint32T streamNumber, Uint16T *prsCount, Uint16T *seqNum);
zlStatusE zl5011xPacGetTransitTimeCount(zl5011xParamsS *zl5011xParams,
      Uint32T streamNumber, Sint32T *transitTime);
zlStatusE zl5011xPacGetInterarrivalJitter(zl5011xParamsS *zl5011xParams,
      Uint32T stream, Uint32T *jitter);

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -