📄 csl_mcaspaux.h
字号:
/** ===========================================================================
* @n@b CSL_mcaspResetRcvFSRst
*
* @b Description
* @n This function resets the receive frame sync generator reset enable bit
* of receive global control register
*
* @b Arguments
* @verbatim
hMcasp Handle to the McASP instance
@endverbatim
*
* <b> Return Value </b> None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n RGBLCTL register will be loaded with the specified value
*
* @b Modifies
* @n RGBLCTL register
*
* @b Example
* @verbatim
CSL_mcaspResetRcvFSRst (hMcasp);
@endverbatim
* ============================================================================
*/
static inline
void CSL_mcaspResetRcvFSRst (
CSL_McaspHandle hMcasp
)
{
CSL_FINST (hMcasp->regs->RGBLCTL, MCASP_RGBLCTL_RFRST, RESET);
}
/** ===========================================================================
* @n@b CSL_mcaspConfigAudioMute
*
* @b Description
* @n This function configures the AMUTE register with specified values
*
* @b Arguments
* @verbatim
hMcasp Handle to the McASP instance
audioMute Value to be loaded to the register
@endverbatim
*
* <b> Return Value </b> None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n AMUTE register will be loaded with the specified value
*
* @b Modifies
* @n AMUTE register
*
* @b Example
* @verbatim
Uint32 audioMute;
audioMute = 0x00000010;
CSL_mcaspConfigAudioMute (hMcasp, audioMute);
@endverbatim
* ============================================================================
*/
static inline
void CSL_mcaspConfigAudioMute (
CSL_McaspHandle hMcasp,
Uint32 audioMute
)
{
/* Configure AMUTE register */
hMcasp->regs->AMUTE = (Uint16) audioMute;
}
/** ===========================================================================
* @n@b CSL_mcaspConfigLoopBack
*
* @b Description
* @n This function sets the digital loopback mode
*
* @b Arguments
* @verbatim
hMcasp Handle to the McASP instance
loopBack Value to be loaded into the bit filed
@endverbatim
*
* <b> Return Value </b> None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n GBLCTL and DLBCTL register will be loaded with the specified value
*
* @b Modifies
* @n GBLCTL, DLBCTL register
*
* @b Example
* @verbatim
Bool loopBack;
loopBack = TRUE;
CSL_mcaspConfigLoopBack (hMcasp, loopBack);
@endverbatim
* ============================================================================
*/
static inline
void CSL_mcaspConfigLoopBack (
CSL_McaspHandle hMcasp,
Bool loopBack
)
{
Bool loopBackEnable;
Bool orderBit;
Uint32 serNum = 0;
/* Reset the RSRCLR and XSRCLR registers in GBLCTL */
CSL_FINST (hMcasp->regs->GBLCTL, MCASP_GBLCTL_RSRCLR, CLEAR);
CSL_FINST (hMcasp->regs->GBLCTL, MCASP_GBLCTL_XSRCLR, CLEAR);
/* Reset the RSMRST and XSMRST registers in GBLCTL */
CSL_FINST (hMcasp->regs->GBLCTL, MCASP_GBLCTL_RSMRST, RESET);
CSL_FINST (hMcasp->regs->GBLCTL, MCASP_GBLCTL_XSMRST, RESET);
/* Reset the RFRST and XFRST registers in GBLCTL */
CSL_FINST (hMcasp->regs->GBLCTL, MCASP_GBLCTL_RFRST, RESET);
CSL_FINST (hMcasp->regs->GBLCTL, MCASP_GBLCTL_XFRST, RESET);
/* configure loop back mode */
CSL_FINS (hMcasp->regs->DLBCTL, MCASP_DLBCTL_DLBEN, loopBack);
loopBackEnable = CSL_FEXT (hMcasp->regs->DLBCTL, MCASP_DLBCTL_DLBEN);
if (loopBackEnable == TRUE) {
CSL_FINST (hMcasp->regs->DLBCTL, MCASP_DLBCTL_MODE, XMTCLK);
}
orderBit = CSL_FEXT (hMcasp->regs->DLBCTL, MCASP_DLBCTL_ORD);
if (orderBit == TRUE) {
while (serNum < hMcasp->numOfSerializers) {
CSL_FINST (hMcasp->regs->SRCTL0, MCASP_SRCTL0_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR0, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL1, MCASP_SRCTL1_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR1, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL2, MCASP_SRCTL2_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR2, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL3, MCASP_SRCTL3_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR3, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL4, MCASP_SRCTL4_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR4, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL5, MCASP_SRCTL5_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR5, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL6, MCASP_SRCTL6_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR6, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL7, MCASP_SRCTL7_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR7, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL8, MCASP_SRCTL8_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR8, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL9, MCASP_SRCTL9_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR9, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL10, MCASP_SRCTL10_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR10, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL11, MCASP_SRCTL11_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR11, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL12, MCASP_SRCTL12_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR12, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL13, MCASP_SRCTL13_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR13, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL14, MCASP_SRCTL14_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR14, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL15, MCASP_SRCTL15_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR15, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
}
}
else {
while (serNum < hMcasp->numOfSerializers) {
CSL_FINST (hMcasp->regs->SRCTL0, MCASP_SRCTL0_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR0, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL1, MCASP_SRCTL1_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR1, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL2, MCASP_SRCTL2_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR2, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL3, MCASP_SRCTL3_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR3, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL4, MCASP_SRCTL4_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR4, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL5, MCASP_SRCTL5_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR5, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL6, MCASP_SRCTL6_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR6, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL7, MCASP_SRCTL7_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR7, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL8, MCASP_SRCTL8_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR8, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL9, MCASP_SRCTL9_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR9, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL10, MCASP_SRCTL10_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR10, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL11, MCASP_SRCTL11_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR11, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL12, MCASP_SRCTL12_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR12, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL13, MCASP_SRCTL13_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR13, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL14, MCASP_SRCTL14_SRMOD, RCV);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR14, INPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
CSL_FINST (hMcasp->regs->SRCTL15, MCASP_SRCTL15_SRMOD, XMT);
CSL_FINST (hMcasp->regs->PDIR, MCASP_PDIR_AXR15, OUTPUT);
if (++serNum >= hMcasp->numOfSerializers) break;
}
}
}
/** ===========================================================================
* @n@b CSL_mcaspConfigRcvSlot
*
* @b Description
* @n This function configures receive slot with value passed.
*
* @b Arguments
* @verbatim
hMcasp Handle to the McASP instance
rcvSlot Value to be loaded into the bit filed
@endverbatim
*
* <b> Return Value </b> None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n RTDM register will be loaded with the specified value
*
* @b Modifies
* @n RTDM register
*
* @b Example
* @verbatim
Uint32 rcvSlot;
rcvSlot = 0x00000034;
CSL_mcaspConfigRcvSlot (hMcasp, rcvSlot);
@endverbatim
* ============================================================================
*/
static inline
void CSL_mcaspConfigRcvSlot (
CSL_McaspHandle hMcasp,
Uint32 rcvSlot
)
{
/* configure the RTDM register */
hMcasp->regs->RTDM = (Uint32) rcvSlot;
}
/** ===========================================================================
* @n@b CSL_mcaspConfigXmtSlot
*
* @b Description
* @n This function configures transmit slots with value passed.
*
* @b Arguments
* @verbatim
hMcasp Handle to the McASP instance
xmtSlot Value to be loaded into the bit filed
@endverbatim
*
* <b> Return Value </b> None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n XTDM register will be loaded with the specified value
*
* @b Modifies
* @n XTDM register
*
* @b Example
* @verbatim
Uint32 xmtSlot;
xmtSlot = 0x00000034;
CSL_mcaspConfigXmtSlot (hMcasp, xmtSlot);
@endverbatim
* ============================================================================
*/
static inline
void CSL_mcaspConfigXmtSlot (
CSL_McaspHandle hMcasp,
Uint32 xmtSlot
)
{
/* configure the XTDM register */
hMcasp->regs->XTDM = (Uint32) xmtSlot;
}
/** ===========================================================================
* @n@b CSL_mcaspConfigRcvInt
*
* @b Description
* @n This function configures the receiver interrupt control register with
* specified value.
*
* @b Arguments
* @verbatim
hMcasp Handle to the McASP instance
rcvInt Value to be loaded into the RINTCTL register
@endverbatim
*
* <b> Return Value </b> None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n RINTCTL register will be loaded with the specified value
*
* @b Modifies
* @n RINTCTL register
*
* @b Example
* @verbatim
Uint32 rcvInt;
rcvInt = 0x00001234;
CSL_mcaspConfigRcvInt (hMcasp, rcvInt);
@endverbatim
* ============================================================================
*/
static inline
void CSL_mcaspConfigRcvInt (
CSL_McaspHandle hMcasp,
Uint32 rcvInt
)
{
/* configure the RINTCTL register */
hMcasp->regs->RINTCTL = (Uint32) rcvInt;
}
/** ===========================================================================
* @n@b CSL_mcaspConfigXmtInt
*
* @b Description
* @n This function configures the transmitter interrupt control register
* with specified value.
*
* @b Arguments
* @verbatim
hMcasp Handle to the McASP instance
xmtInt Value to be loaded into the XINTCTL register
@endverbatim
*
* <b> Return Value </b> None
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -