Functions
PLL Functions
PLL

Functions

CSL_Status PLL_init (PLL_Obj *pllObj, Uint32 pllInstId)
CSL_Status PLL_config (PLL_Handle hPll, PLL_Config *pconfigInfo)
CSL_Status PLL_enable (PLL_Handle hPll)
CSL_Status PLL_bypass (PLL_Handle hPll)
CSL_Status PLL_reset (PLL_Handle hPll)
static Bool PLL_getTestLockMonStatus (PLL_Handle hPll)
static CSL_Status PLL_getConfig (PLL_Handle hPll, PLL_Config *pConfig)

Function Documentation

CSL_Status PLL_bypass ( PLL_Handle  hPll)

============================================================================
PLL_bypass

Description
This API is used to Bypass the PLL.

Arguments

            hPll        Handle to the pll
     

Return Value CSL_Status

  • CSL_SOK - Bypassing the PLL is successful
  • CSL_ESYS_BADHANDLE - The handle passed is invalid

Pre Condition
PLL_init and PLL_config should be called successfully.

Post Condition
Pll is bypassed

Modifies
hPll variable

Example

         CSL_Status              status;
         PLL_Obj                 pllObj;
         PLL_Config              configInfo;
         PLL_Handle              hPll;
         Uint32                  pllInstId;
         pllInstId = 0;
         status = PLL_init(&pllObj,pllInstId);
         hPll = &pllObj;
	     .......
         Configure the PLL for 12.288MHz
         configInfo.PLLCNTL1 = 0x82ed;
         configInfo.PLLINCNTL = 0x8000;
         configInfo.PLLCNTL2 = 0x0806;
         configInfo.PLLOUTCNTL = 0x0200;
         status = PLL_config(hPll, &configInfo);
         status = PLL_bypass(hPll);
     

============================================================================

References PLL_Obj::sysAddr.

CSL_Status PLL_config ( PLL_Handle  hPll,
PLL_Config pconfigInfo 
)

============================================================================
PLL_config

Description
This API is used to configure the PLL

Arguments

            hPll            Handle to the pll
            pconfigInfo     pointer to PLL_config structure.
     

Return Value CSL_Status

  • CSL_SOK - Configuring the pll is successful
  • CSL_ESYS_BADHANDLE - The handle passed is invalid
  • CSL_ESYS_INVPARAMS - The pconfigInfo is NULL

Pre Condition
PLL_init should be successfully called.

Post Condition
Configures the PLL registers.

Modifies
hPll variable

Example

         CSL_Status              status;
         PLL_Obj                 pllObj;
         PLL_Config              configInfo;
         PLL_Handle              hPll;
         Uint32                  pllInstId;
         pllInstId = 0;
         status = PLL_init(&pllObj,pllInstId);
         hPll = &pllObj;
	     .......
         Configure the PLL for 12.288MHz
         configInfo.PLLCNTL1 = 0x82ed;
         configInfo.PLLINCNTL = 0x8000;
         configInfo.PLLCNTL2 = 0x0806;
         configInfo.PLLOUTCNTL = 0x0200;
         status = PLL_config(hPll, &configInfo);
     

============================================================================

References PLL_getTestLockMonStatus(), PLL_Config::PLLCNTL1, PLL_Config::PLLCNTL2, PLL_Obj::pllConfig, PLL_Config::PLLINCNTL, PLL_Config::PLLOUTCNTL, PLL_Obj::sysAddr, and TIMEOUT.

CSL_Status PLL_enable ( PLL_Handle  hPll)

============================================================================
PLL_enable

Description
This API is used to enable the PLL

Arguments

            hPll        Handle to the pll
     

Return Value CSL_Status

  • CSL_SOK - Enabling the PLL is successful
  • CSL_ESYS_BADHANDLE - The handle passed is invalid

Pre Condition
PLL_init and PLL_config should be called successfully.

Post Condition
Pll is enabled

Modifies
hPll variable

Example

         CSL_Status              status;
         PLL_Obj                 pllObj;
         PLL_Config              configInfo;
         PLL_Handle              hPll;
         Uint32                  pllInstId;
         pllInstId = 0;
         status = PLL_init(&pllObj,pllInstId);
         hPll = &pllObj;
	     .......
         Configure the PLL for 12.288MHz
         configInfo.PLLCNTL1 = 0x82ed;
         configInfo.PLLINCNTL = 0x8000;
         configInfo.PLLCNTL2 = 0x0806;
         configInfo.PLLOUTCNTL = 0x0200;
         status = PLL_config(hPll, &configInfo);
         status = PLL_enable(hPll);

     

============================================================================

References PLL_getTestLockMonStatus(), PLL_Obj::sysAddr, and TIMEOUT.

static CSL_Status PLL_getConfig ( PLL_Handle  hPll,
PLL_Config pConfig 
) [inline, static]

============================================================================
PLL_getConfig

Description
This API is used to retrieve the current configuration of the pll.

Arguments

        hPll        Handle to the pll
     

Return Value CSL_Status

  • CSL_SOK - PLL config information is available
  • CSL_ESYS_BADHANDLE - Handle is invalid
  • CSL_ESYS_INVPARAMS - Pointer to the config structure is NULL

Pre Condition
PLL_init and PLL_config should be called successfully.

Post Condition
None

Modifies
pConfig variable

Example

         CSL_Status              status;
         Bool                    bStatus;
         PLL_Obj                 pllObj;
         PLL_Config              configInfo;
         PLL_Config              gconfig;
         PLL_Handle              hPll;
         Uint32                  pllInstId;
         pllInstId = 0;
         status = PLL_init(&pllObj,pllInstId);
         hPll = &pllObj;
	     .......
         Configure the PLL for 12.288MHz
         configInfo.PLLCNTL1 = 0x82ed;
         configInfo.PLLINCNTL = 0x8000;
         configInfo.PLLCNTL2 = 0x0806;
         configInfo.PLLOUTCNTL = 0x0200;
         status = PLL_config(hPll, &configInfo);
         status = PLL_getConfig(hPll,&gconfig);
     

============================================================================

References PLL_Config::PLLCNTL1, PLL_Config::PLLCNTL2, PLL_Config::PLLINCNTL, PLL_Config::PLLOUTCNTL, and PLL_Obj::sysAddr.

static Bool PLL_getTestLockMonStatus ( PLL_Handle  hPll) [inline, static]

============================================================================
PLL_getTestLockMonStatus

Description
This API is used to get the status of TEST LOCK bit in PLL CNTL2 reg

Arguments

        hPll        Handle to the pll
     

Return Value Bool

  • TRUE - Test lock bit is set
  • FALSE - Test lock bit is not set.

Pre Condition
PLL_init and PLL_config should be called successfully.

Post Condition
None

Modifies
hPll variable

Example

         CSL_Status              status;
         Bool                    bStatus;
         PLL_Obj                 pllObj;
         PLL_Config              configInfo;
         PLL_Handle              hPll;
         Uint32                  pllInstId;
         pllInstId = 0;
         status = PLL_init(&pllObj,pllInstId);
         hPll = &pllObj;
	     .......
         Configure the PLL for 12.288MHz
         configInfo.PLLCNTL1  = 0x82ed; //Give proper value
         configInfo.PLLCNTL2  = 0x8000;
         configInfo.PLLINCNTL = 0x0806;
         configInfo.PLLOUTCNTL = 0x0200;
         status = PLL_config(hPll, &configInfo);
         bStatus = PLL_getTestLockMonStatus(hPll);
     

============================================================================

References PLL_Obj::sysAddr.

Referenced by PLL_config(), and PLL_enable().

CSL_Status PLL_init ( PLL_Obj pllObj,
Uint32  pllInstId 
)

============================================================================
PLL_init Description
This is the initialization function for the pll CSL. The function must be called before calling any other API from this CSL. This will initialize the PLL object.

Arguments

            pllObj          Pointer to PLL object.
            pllInstId       Instance number of the PLL.
    

Return Value CSL_Status

  • CSL_SOK - Init call is successful
  • CSL_ESYS_INVPARAMS- Invalid parameter

Pre Condition
None

Post Condition
PLL object structure is populated

Modifies
Handle is modified

Example

         PLL_Obj                 pllObj;
         CSL_Status              status;
         Uint32                  pllInstId;
         pllInstId = 0;
         status = PLL_init(&pllObj,pllInstId);
     

============================================================================

References CSL_PLL_INST_0, PLL_Obj::instId, and PLL_Obj::sysAddr.

CSL_Status PLL_reset ( PLL_Handle  hPll)

============================================================================
PLL_reset

Description
Resets all the PLL registers.

Arguments

            hPll        Handle to the pll
     

Return Value CSL_Status

  • CSL_SOK - Resetting the PLL is successful.
  • CSL_ESYS_BADHANDLE - The handle passed is invalid

Pre Condition
PLL_init should be called successfully.

Post Condition
PLL registers are resetted.

Modifies
hPll variable

Example

            CSL_Status              status;
            PLL_Obj                 pllObj;
            Uint32                  pllInstId;
            PLL_Handle              hPll;
            pllInstId = 0;
            status = PLL_init(&pllObj,pllInstId);
          	.....
            hPll = &pllObj;
            status = PLL_reset(&pllObj);
     

============================================================================

============================================================================
PLL_reset

Description
Resets all the PLL registers.

Arguments

            hPll        Handle to the pll
     

Return Value CSL_Status

  • CSL_SOK - Resetting the PLL is successful.
  • CSL_ESYS_BADHANDLE - The handle passed is invalid

Pre Condition
PLL_init should be called successfully.

Post Condition
PLL registers are resetted.

Modifies
hPll variable

Example

            CSL_Status              status;
 	        PLL_Obj                 pllObj;
            Uint32                  pllInstId;
            PLL_Handle              hPll;
            pllInstId = 0;
            status = PLL_init(&pllObj,pllInstId);
          	.....
            hPll = &pllObj;
            status = PLL_reset(hPll);
     

============================================================================

References PLL_Obj::sysAddr.