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

📄 csl_pllcaux.h

📁 Dm6455 driver,magbe useful to you!
💻 H
字号:
/*  ============================================================================ *   Copyright (c) Texas Instruments Inc 2002, 2003, 2004, 2005 * *   Use of this software is controlled by the terms and conditions found in the *   license agreement under which this software has been supplied. *  ============================================================================ *//** @file csl_pllcAux.h * *  @brief API Auxilary header file for PLLC CSL. * *  Path: \(CSLPATH)\inc *//*  ============================================================================ *  Revision History *  =============== *  10-Feb-2004 kpn  File Created.  *  25-Aug-2005 Tej File Modified. *  27-oct-2005 sd  changes for multiplier configuration *  18-Jan-2006 sd  Changes according to spec changes *  ============================================================================ */#ifndef _CSL_PPLCAUX_H_#define _CSL_PLLCAUX_H_#include <csl_pllc.h>#ifdef __cplusplusextern "C" {#endif/* *  Status command functions of the pllc *//** ============================================================================ *   @n@b CSL_pllcGetStatus * *   @b Description *   @n Gets the Status of the pll controller. * *   @b Arguments *   @verbatim            hPllc           Handle to the PLLC instance     @endverbatim * *   <b> Return Value </b> *   @n  CSL_BitMask32 * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  None * *   @b Modifies *   @n None * *   @b Example *   @verbatim        CSL_PllcHandle    hPllc;        CSL_BitMask32     response;        ...        response = CSL_pllcGetStatus (hPllc);     @endverbatim *  ============================================================================ */CSL_IDEF_INLINECSL_BitMask32 CSL_pllcGetStatus (    CSL_PllcHandle                hPllc){    CSL_BitMask32 response;    response = (CSL_BitMask32) hPllc->regs->PLLSTAT;    return response;}/* *  Status command functions of the pllc */ /** ============================================================================ *   @n@b CSL_pllcGetSysClkStatus * *   @b Description *   @n Gets the System Clock ON/OFF Status of the pllc. * *   @b Arguments *   @verbatim            hPllc           Handle to the PLLC instance     @endverbatim * *   <b> Return Value </b> *   @n  CSL_BitMask32 * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  None * *   @b Modifies *   @n None * *   @b Example *   @verbatim        CSL_PllcHandle    hPllc;        CSL_BitMask32     response;        ...        response = CSL_pllcGetSysClkStatus (hPllc);     @endverbatim *  ============================================================================ */CSL_IDEF_INLINECSL_BitMask32 CSL_pllcGetSysClkStatus (    CSL_PllcHandle                      hPllc){    CSL_BitMask32 response;    response = (CSL_BitMask32) hPllc->regs->SYSTAT;    return response;}/* *  Status command functions of the pllc */ /** ============================================================================ *   @n@b CSL_pllcGetResetStatus * *   @b Description *   @n Gets the Reset Type Status of the pllc. * *   @b Arguments *   @verbatim            hPllc           Handle to the PLLC instance     @endverbatim * *   <b> Return Value </b> *   @n  CSL_BitMask32 * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  None * *   @b Modifies *   @n None * *   @b Example *   @verbatim        CSL_PllcHandle    hPllc;        CSL_BitMask32     response;        ...        response = CSL_pllcGetResetStatus (hPllc);     @endverbatim *  ============================================================================ */CSL_IDEF_INLINECSL_BitMask32 CSL_pllcGetResetStatus (    CSL_PllcHandle         hPllc){
    CSL_BitMask32 response;   	response = (Uint32) hPllc->regs->RSTYPE;    return response;}/* *  Control command functions of the pllc *//** ============================================================================ *   @n@b CSL_pllcCommandCtrl * *   @b Description *      Controls the pllc operation. * *   @b Arguments *   @verbatim        hPllc        Handle to the PLLC instance        loadVal      Value to be loaded to pllc PLLCMD register
		status 		 Status variable     @endverbatim * *   <b> Return Value </b> *   @n  None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  pllc operation is controlled according to value set. * *   @b Modifies *   @n pllc PLLCMD register. * *   @b Example *   @verbatim        CSL_PllcHandle      hPllc;        CSL_BitMask32       loadVal;	    CSL_Status          status        ...        CSL_pllcCommandCtrl (hPllc, loadVal, &status);     @endverbatim *  ============================================================================ */CSL_IDEF_INLINEvoid CSL_pllcCommandCtrl (    CSL_PllcHandle         hPllc,    CSL_BitMask32          loadVal,    CSL_Status             *status){    if (hPllc->pllcNum == CSL_PLLC_1) {	    hPllc->regs->PLLCTL = (loadVal & 0xFFFF);	    loadVal = (loadVal & 0xFFFF0000)>>16;	    if (loadVal)	        hPllc->regs->PLLCMD = loadVal;
	}    else if (hPllc->pllcNum == CSL_PLLC_2) {	    loadVal = (loadVal & 0xFFFF0000)>>16;	    if (loadVal)	        hPllc->regs->PLLCMD = loadVal;
	}    else        *status = CSL_ESYS_INVPARAMS;}/** ============================================================================ *   @n@b CSL_pllcMultiplierCtrl * *   @b Description *      Controls the pllc Multiplier. * *   @b Arguments *   @verbatim        hPllc        Handle to the PLLC instance        loadVal      Value to be loaded to pllc PLLM register
		status 	     Status variable		     @endverbatim * *   <b> Return Value </b> *   @n  None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  pllc multiplier is controlled accordingly. * *   @b Modifies *   @n pllc PLLM register. * *   @b Example *   @verbatim        CSL_PllcHandle      hPllc;        Uint32              loadVal;	    CSL_Status          status        ...        CSL_pllcMultiplierCtrl (hPllc, loadVal, &status);     @endverbatim *  ============================================================================ */CSL_IDEF_INLINEvoid CSL_pllcMultiplierCtrl (    CSL_PllcHandle            hPllc,    Uint32                    loadVal,    CSL_Status                *status){    if (hPllc->pllcNum == CSL_PLLC_1) 	    CSL_FINS (hPllc->regs->PLLM, PLLC_PLLM_PLLM, loadVal - 1);    else        *status = CSL_ESYS_INVPARAMS;}/** ============================================================================ *   @n@b CSL_pllcSetPLLDivRatio * *   @b Description *      Sets the pllc Dividers ratios. * *   @b Arguments *   @verbatim        hPllc        Handle to the PLLC instance        loadVal      Value to be loaded to pllc divider registers        status       Status variable     @endverbatim * *   <b> Return Value </b> *   @n  None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  pllc dividers ratios are set. * *   @b Modifies *   @n pllc divider registers. * *   @b Example *   @verbatim        CSL_PllcHandle      hPllc;        CSL_PllcDivRatio    loadVal;        CSL_Status          status;        ...        CSL_pllcSetPLLDivRatio (hPllc, loadVal, &status);     @endverbatim *  ============================================================================ */CSL_IDEF_INLINEvoid CSL_pllcSetPLLDivRatio (    CSL_PllcHandle             hPllc,    CSL_PllcDivRatio           loadVal,    CSL_Status                *status){    switch (loadVal.divNum) {        case CSL_PLLC_DIVSEL_PLLDIV1:            if (hPllc->pllcNum == CSL_PLLC_2) {                CSL_FINS (hPllc->regs->PLLDIV1, PLLC_PLLDIV1_RATIO,                          (Uint32)loadVal.divRatio - 1);            }            else                *status = CSL_ESYS_INVPARAMS;            break;        case CSL_PLLC_DIVSEL_PLLDIV4:            if (hPllc->pllcNum == CSL_PLLC_1) {                CSL_FINS (hPllc->regs->PLLDIV4, PLLC_PLLDIV4_RATIO,                          (Uint32)loadVal.divRatio - 1);            }            else                *status = CSL_ESYS_INVPARAMS;            break;        case CSL_PLLC_DIVSEL_PLLDIV5:            if (hPllc->pllcNum == CSL_PLLC_1) {                CSL_FINS (hPllc->regs->PLLDIV5, PLLC_PLLDIV5_RATIO,                          (Uint32)loadVal.divRatio - 1);            }            else                *status = CSL_ESYS_INVPARAMS;            break;        default:            *status = CSL_ESYS_INVPARAMS;            break;    }}/** ============================================================================ *   @n@b CSL_pllcPLLDivCtrl * *   @b Description *      Controls the pllc dividers. * *   @b Arguments *   @verbatim        hPllc        Handle to the PLLC instance        loadVal      Value to be loaded to pllc dividers register.        status       Status variable     @endverbatim * *   <b> Return Value </b> *   @n  None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  pllc dividers are controlled. * *   @b Modifies *   @n pllc dividers register. * *   @b Example *   @verbatim        CSL_PllcHandle              hPllc;        CSL_PllcDivideControl       loadVal;        CSL_Status                  status;        ...        CSL_pllcPLLDivCtrl (hPllc, loadVal, &status);     @endverbatim *  ============================================================================ */CSL_IDEF_INLINEvoid CSL_pllcPLLDivCtrl (    CSL_PllcHandle         hPllc,    CSL_PllcDivideControl  loadVal,    CSL_Status            *status){    switch (loadVal.divNum) {        case CSL_PLLC_DIVSEL_PLLDIV1:            if (hPllc->pllcNum == CSL_PLLC_2) {                CSL_FINS (hPllc->regs->PLLDIV1, PLLC_PLLDIV1_D1EN,                          (CSL_PllcDivCtrl)loadVal.divCtrl);            }            else                *status = CSL_ESYS_INVPARAMS;            break;        case CSL_PLLC_DIVSEL_PLLDIV4:            if (hPllc->pllcNum == CSL_PLLC_1) {                CSL_FINS (hPllc->regs->PLLDIV4, PLLC_PLLDIV4_D4EN,                          (CSL_PllcDivCtrl)loadVal.divCtrl);            }            else                *status = CSL_ESYS_INVPARAMS;            break;        case CSL_PLLC_DIVSEL_PLLDIV5:            if (hPllc->pllcNum == CSL_PLLC_1) {                CSL_FINS (hPllc->regs->PLLDIV5, PLLC_PLLDIV5_D5EN,                          (CSL_PllcDivCtrl)loadVal.divCtrl);            }            else                *status = CSL_ESYS_INVPARAMS;            break;        default:            *status = CSL_ESYS_INVPARAMS;            break;    }}#ifdef __cplusplus}#endif#endif /* _CSL_PLLCAUX_H_ */

⌨️ 快捷键说明

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