📄 csl_mcasp.h
字号:
CSLAPI void MCASP_setupHclk(MCASP_Handle hMcasp,MCASP_SetupHclk *setuphclk, Uint32 direction);CSLAPI void MCASP_setupFsync(MCASP_Handle hMcasp,MCASP_SetupFsync *setupfsync, Uint32 direction);CSLAPI void MCASP_setupFormat(MCASP_Handle hMcasp,MCASP_SetupFormat *setupFormat, Uint32 direction);/* Configuration of DIT mode */CSLAPI void MCASP_configDit(MCASP_Handle hMcasp,MCASP_Dsprep dsprep, Uint32 datalen); /******************************************************************************\* inline function declarations\******************************************************************************/IDECL Uint32 MCASP_getXbufAddrCfg(MCASP_Handle hMcasp, Uint32 xbufNum); IDECL Uint32 MCASP_getXbufAddr(MCASP_Handle hMcasp);IDECL Uint32 MCASP_getRbufAddrCfg(MCASP_Handle hMcasp, Uint32 rbufNum); IDECL Uint32 MCASP_getRbufAddr(MCASP_Handle hMcasp);IDECL Uint32 MCASP_getXmtEventId(MCASP_Handle hMcasp);IDECL Uint32 MCASP_getRcvEventId(MCASP_Handle hMcasp);IDECL Uint32 MCASP_read32Cfg(MCASP_Handle hMcasp, Uint32 rbufNum);IDECL void MCASP_write32Cfg(MCASP_Handle hMcasp, Uint32 xbufNum, Uint32 val);/* uses EDMA addresses */IDECL Uint32 MCASP_read32(MCASP_Handle hMcasp);IDECL void MCASP_write32(MCASP_Handle hMcasp,Uint32 val);IDECL Uint32 MCASP_rstat(MCASP_Handle hMcasp);/******* Not documented ************************/IDECL Uint32 MCASP_rovrn(MCASP_Handle hMcasp);IDECL Uint32 MCASP_rsyncerr(MCASP_Handle hMcasp);IDECL Uint32 MCASP_rckfail(MCASP_Handle hMcasp);IDECL Uint32 MCASP_revenslot(MCASP_Handle hMcasp);IDECL Uint32 MCASP_rlast(MCASP_Handle hMcasp);IDECL Uint32 MCASP_rdata(MCASP_Handle hMcasp);IDECL Uint32 MCASP_rstafrm(MCASP_Handle hMcasp);IDECL Uint32 MCASP_rerr(MCASP_Handle hMcasp);IDECL Uint32 MCASP_xstat(MCASP_Handle hMcasp);/******* Not documented ************************/IDECL Uint32 MCASP_xundrn(MCASP_Handle hMcasp);IDECL Uint32 MCASP_xsyncerr(MCASP_Handle hMcasp);IDECL Uint32 MCASP_xckfail(MCASP_Handle hMcasp);IDECL Uint32 MCASP_xevenslot(MCASP_Handle hMcasp);IDECL Uint32 MCASP_xlast(MCASP_Handle hMcasp);IDECL Uint32 MCASP_xdata(MCASP_Handle hMcasp);IDECL Uint32 MCASP_xstafrm(MCASP_Handle hMcasp);IDECL Uint32 MCASP_xerr(MCASP_Handle hMcasp);IDECL Uint32 MCASP_getRslotcnt(MCASP_Handle hMcasp);IDECL Uint32 MCASP_getXslotcnt(MCASP_Handle hMcasp);IDECL Uint32 MCASP_getRclkcnt(MCASP_Handle hMcasp);IDECL Uint32 MCASP_getXclkcnt(MCASP_Handle hMcasp);IDECL Uint32 MCASP_getMutin(MCASP_Handle hMcasp);/*****************************************************/IDECL void MCASP_clearRcvStat(MCASP_Handle hMcasp,Uint32 fieldnum);IDECL void MCASP_clearXmtStat(MCASP_Handle hMcasp,Uint32 fieldnum);IDECL Uint32 MCASP_getChanStatusAddr(MCASP_Handle hMcasp, Uint32 chSide, Uint32 chNum);IDECL Uint32 MCASP_getUserDataAddr(MCASP_Handle hMcasp, Uint32 chSide, Uint32 chNum);IDECL void MCASP_config(MCASP_Handle hMcasp, MCASP_Config *config);IDECL void MCASP_configGbl(MCASP_Handle hMcasp, MCASP_ConfigGbl *config);IDECL void MCASP_configRcv(MCASP_Handle hMcasp, MCASP_ConfigRcv *config);IDECL void MCASP_configXmt(MCASP_Handle hMcasp, MCASP_ConfigXmt *config);IDECL void MCASP_configSrctl(MCASP_Handle hMcasp, MCASP_ConfigSrctl *config);/************** Not documented ****************************************/#if (_MCASP_CHANNEL_CNT == 16)IDECL void MCASP_configArgs(MCASP_Handle hMcasp, Uint32 pfunc, Uint32 pdir, Uint32 amute, Uint32 dlbctl, Uint32 ditctl, Uint32 rmask, Uint32 rfmt, Uint32 afsrctl, Uint32 aclkrctl, Uint32 ahclkrctl, Uint32 rtdm, Uint32 rintctl, Uint32 rclkchk, Uint32 xmask, Uint32 xfmt, Uint32 afsxctl, Uint32 aclkxctl, Uint32 ahclkxctl, Uint32 xtdm, Uint32 xintctl, Uint32 xclkchk, Uint32 srctl0, Uint32 srctl1, Uint32 srctl2, Uint32 srctl3, Uint32 srctl4, Uint32 srctl5, Uint32 srctl6, Uint32 srctl7, Uint32 srctl8, Uint32 srctl9, Uint32 srctl10, Uint32 srctl11, Uint32 srctl12, Uint32 srctl13, Uint32 srctl14, Uint32 srctl15 );#endif /* _MCASP_CHANNEL_CNT == 16 */#if (_MCASP_CHANNEL_CNT == 8)IDECL void MCASP_configArgs(MCASP_Handle hMcasp, Uint32 pfunc, Uint32 pdir, Uint32 amute, Uint32 dlbctl, Uint32 ditctl, Uint32 rmask, Uint32 rfmt, Uint32 afsrctl, Uint32 aclkrctl, Uint32 ahclkrctl, Uint32 rtdm, Uint32 rintctl, Uint32 rclkchk, Uint32 xmask, Uint32 xfmt, Uint32 afsxctl, Uint32 aclkxctl, Uint32 ahclkxctl, Uint32 xtdm, Uint32 xintctl, Uint32 xclkchk, Uint32 srctl0, Uint32 srctl1, Uint32 srctl2, Uint32 srctl3, Uint32 srctl4, Uint32 srctl5, Uint32 srctl6, Uint32 srctl7);#endif /* _MCASP_CHANNEL_CNT == 8 */#if (_MCASP_CHANNEL_CNT == 6)IDECL void MCASP_configArgs(MCASP_Handle hMcasp, Uint32 pfunc, Uint32 pdir, Uint32 amute, Uint32 dlbctl, Uint32 ditctl, Uint32 rmask, Uint32 rfmt, Uint32 afsrctl, Uint32 aclkrctl, Uint32 ahclkrctl, Uint32 rtdm, Uint32 rintctl, Uint32 rclkchk, Uint32 xmask, Uint32 xfmt, Uint32 afsxctl, Uint32 aclkxctl, Uint32 ahclkxctl, Uint32 xtdm, Uint32 xintctl, Uint32 xclkchk, Uint32 srctl0, Uint32 srctl1, Uint32 srctl2, Uint32 srctl3, Uint32 srctl4, Uint32 srctl5);#endif /* _MCASP_CHANNEL_CNT == 6 *//**********************************************************************/IDECL void MCASP_getConfig(MCASP_Handle hMcasp, MCASP_Config *config);IDECL void MCASP_resetXmt(MCASP_Handle hMcasp);IDECL void MCASP_resetRcv(MCASP_Handle hMcasp);/** read GBLCTL register with the right value **/IDECL Uint32 MCASP_getGblctl(MCASP_Handle hMcasp, Uint32 direction);/******************************************************************************\* inline function definitions\******************************************************************************/#ifdef USEDEFS/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getXbufAddr(MCASP_Handle hMcasp) { return (Uint32)(hMcasp->xbufAddr);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getXbufAddrCfg(MCASP_Handle hMcasp, Uint32 xbufNum) { return (Uint32)(hMcasp->xbufAddrCfg + (xbufNum*MCASP_XBUF_BUFSIZE));}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getRbufAddr(MCASP_Handle hMcasp) { return (Uint32)(hMcasp->rbufAddr);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getRbufAddrCfg(MCASP_Handle hMcasp, Uint32 rbufNum) { return (Uint32)(hMcasp->rbufAddrCfg + (rbufNum*MCASP_RBUF_BUFSIZE));}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getGblctl(MCASP_Handle hMcasp,Uint32 direction) { if (direction == MCASP_XMT) { return (MCASP_RGETH(hMcasp,XGBLCTL)& 0x0001F00); } else { if (direction == MCASP_RCV) { return (MCASP_RGETH(hMcasp,RGBLCTL)& 0x000001F); } else { return (MCASP_RGETH(hMcasp,GBLCTL)); } }}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getXmtEventId(MCASP_Handle hMcasp) { return (hMcasp->xmtEventId);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getRcvEventId(MCASP_Handle hMcasp) { return (hMcasp->rcvEventId);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_read32Cfg(MCASP_Handle hMcasp, Uint32 rbufNum) { return (*(volatile Uint32 *)(hMcasp->rbufAddrCfg + (rbufNum*MCASP_RBUF_BUFSIZE)));}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_read32(MCASP_Handle hMcasp) { return (*(volatile Uint32 *)(hMcasp->rbufAddr));}/*----------------------------------------------------------------------------*/IDEF void MCASP_write32Cfg(MCASP_Handle hMcasp, Uint32 xbufNum, Uint32 val) { (*(volatile Uint32 *)(hMcasp->xbufAddrCfg + (xbufNum*MCASP_XBUF_BUFSIZE))) = val;}/*----------------------------------------------------------------------------*/IDEF void MCASP_write32(MCASP_Handle hMcasp, Uint32 val) { (*(volatile Uint32 *)(hMcasp->xbufAddr)) = val;}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_rstat(MCASP_Handle hMcasp) { return MCASP_RGETH(hMcasp,RSTAT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_rovrn(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSTAT,ROVRN);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_rsyncerr(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSTAT,RSYNCERR);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_rckfail(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSTAT,RCKFAIL);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_revenslot(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSTAT,RTDMSLOT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_rlast(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSTAT,RLAST);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_rdata(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSTAT,RDATA);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_rstafrm(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSTAT,RSTAFRM);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_rerr(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSTAT,RERR);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xstat(MCASP_Handle hMcasp) { return MCASP_RGETH(hMcasp,XSTAT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xundrn(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSTAT,XUNDRN);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xsyncerr(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSTAT,XSYNCERR);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xckfail(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSTAT,XCKFAIL);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xevenslot(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSTAT,XTDMSLOT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xlast(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSTAT,XLAST);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xdata(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSTAT,XDATA);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xstafrm(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSTAT,XSTAFRM);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_xerr(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSTAT,XERR);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getRslotcnt(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RSLOT,RSLOTCNT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getXslotcnt(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XSLOT,XSLOTCNT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getRclkcnt(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,RCLKCHK,RCNT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getXclkcnt(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,XCLKCHK,XCNT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getMutin(MCASP_Handle hMcasp) { return MCASP_FGETH(hMcasp,AMUTE,INSTAT);}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getChanStatusAddr(MCASP_Handle hMcasp, Uint32 chSide, Uint32 chNum) { return (Uint32)(hMcasp->ditcsrAddr + (chSide*MCASP_DITCSR_RIGHT_OFFSET)+ (chNum*MCASP_DITCSR_BUFSIZE));}/*----------------------------------------------------------------------------*/IDEF Uint32 MCASP_getUserDataAddr(MCASP_Handle hMcasp, Uint32 chSide, Uint32 chNum) { return (Uint32)(hMcasp->ditudrAddr + (chSide*MCASP_DITUDR_RIGHT_OFFSET)+ (chNum*MCASP_DITUDR_BUFSIZE));}/*----------------------------------------------------------------------------*/IDEF void MCASP_clearXmtStat(MCASP_Handle hMcasp, Uint32 fieldnum){ MCASP_RSETH(hMcasp,XSTAT,1<<fieldnum);}/*----------------------------------------------------------------------------*/IDEF void MCASP_clearRcvStat(MCASP_Handle hMcasp, Uint32 fieldnum){ MCASP_RSETH(hMcasp,RSTAT,1<<fieldnum);}/*----------------------------------------------------------------------------*/IDEF void MCASP_resetRcv(MCASP_Handle hMcasp) {/* reset State Machine = clear serial buffer = reset frame sync generator reset Clock */ MCASP_RSETH(hMcasp,GBLCTL, MCASP_RGETH(hMcasp,RGBLCTL) &\ MCASP_FMKS(GBLCTL,RSRCLR,CLEAR) \ | MCASP_FMKS(GBLCTL,RSMRST,RESET) \ | MCASP_FMKS(GBLCTL,RFRST,RESET) \ | MCASP_FMKS(GBLCTL,RCLKRST,RESET) \ | MCASP_FMKS(GBLCTL,RHCLKRST,RESET) \ );}/*----------------------------------------------------------------------------*/IDEF void MCASP_resetXmt(MCASP_Handle hMcasp) {/* reset State Machine = clear serial buffer = reset frame sync generator reset Clock */ MCASP_RSETH(hMcasp,GBLCTL, MCASP_RGETH(hMcasp,XGBLCTL) &\ MCASP_FMKS(GBLCTL,XSRCLR,CLEAR) \ | MCASP_FMKS(GBLCTL,XSMRST,RESET) \ | MCASP_FMKS(GBLCTL,XFRST,RESET) \ | MCASP_FMKS(GBLCTL,XCLKRST,RESET) \ | MCASP_FMKS(GBLCTL,XHCLKRST,RESET) );}/*----------------------------------------------------------------------------*/#if (_MCASP_CHANNEL_CNT == 16)IDEF void MCASP_config(MCASP_Handle hMcasp, MCASP_Config *config) { Uint32 gie; volatile Uint32 *base = (volatile Uint32 *)(hMcasp->baseAddr); register int x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19; register int x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36; gie = IRQ_globalDisable(); /* the compiler generates more efficient code if the loads */ /* and stores are grouped together rather than intermixed */ x0 = config->global->pfunc; x1 = config->global->pdir; x2 = config->global->amute; x3 = config->global->dlbctl; x4 = config->global->ditctl; x5 = config->receive->rmask; x6 = config->receive->rfmt; x7 = config->receive->afsrctl; x8 = config->receive->aclkrctl; x9 = config->receive->ahclkrctl; x10 = config->receive->rtdm; x11 = config->receive->rintctl; x12 = config->receive->rclkchk; x13 = config->transmit->xmask; x14 = config->transmit->xfmt; x15 = config->transmit->afsxctl; x16 = config->transmit->aclkxctl; x17 = config->transmit->ahclkxctl; x18 = config->transmit->xtdm; x19 = config->transmit->xintctl; x20 = config->transmit->xclkchk; x21 = config->srctl->srctl0; x22 = config->srctl->srctl1; x23 = config->srctl->srctl2; x24 = config->srctl->srctl3; x25 = config->srctl->srctl4; x26 = config->srctl->srctl5; x27 = config->srctl->srctl6; x28 = config->srctl->srctl7; x29 = config->srctl->srctl8; x30 = config->srctl->srctl9; x31 = config->srctl->srctl10; x32 = config->srctl->srctl11; x33 = config->srctl->srctl12; x34 = config->srctl->srctl13; x35 = config->srctl->srctl14; x36 = config->srctl->srctl15; base[_MCASP_RMASK_OFFSET] = x5; base[_MCASP_RFMT_OFFSET] = x6; base[_MCASP_AFSRCTL_OFFSET] = x7; base[_MCASP_ACLKRCTL_OFFSET]= x8; base[_MCASP_AHCLKRCTL_OFFSET]= x9; base[_MCASP_RTDM_OFFSET] = x10; base[_MCASP_RINTCTL_OFFSET] = x11; base[_MCASP_RCLKCHK_OFFSET] = x12; base[_MCASP_XMASK_OFFSET] = x13; base[_MCASP_XFMT_OFFSET] = x14; base[_MCASP_AFSXCTL_OFFSET] = x15; base[_MCASP_ACLKXCTL_OFFSET]= x16; base[_MCASP_AHCLKXCTL_OFFSET]= x17; base[_MCASP_XTDM_OFFSET] = x18; base[_MCASP_XINTCTL_OFFSET] = x19; base[_MCASP_XCLKCHK_OFFSET] = x20; base[_MCASP_SRCTL0_OFFSET] = x21; base[_MCASP_SRCTL1_OFFSET] = x22; base[_MCASP_SRCTL2_OFFSET] = x23; base[_MCASP_SRCTL3_OFFSET] = x24; base[_MCASP_SRCTL4_OFFSET] = x25; base[_MCASP_SRCTL5_OFFSET] = x26; base[_MCASP_SRCTL6_OFFSET] = x27; base[_MCASP_SRCTL7_OFFSET] = x28; base[_MCASP_SRCTL8_OFFSET] = x29; base[_MCASP_SRCTL9_OFFSET] = x30; base[_MCASP_SRCTL10_OFFSET] = x31; base[_MCASP_SRCTL11_OFFSET] = x32; base[_MCASP_SRCTL12_OFFSET] = x33; base[_MCASP_SRCTL13_OFFSET] = x34; base[_MCASP_SRCTL14_OFFSET] = x35; base[_MCASP_SRCTL15_OFFSET] = x36; base[_MCASP_AMUTE_OFFSET] = x2; base[_MCASP_DLBCTL_OFFSET] = x3; base[_MCASP_DITCTL_OFFSET] = x4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -