📄 csl_mcasphal.h
字号:
/******************************************************************************\
* Step 1. Copyright (C) 2001 Texas Instruments Incorporated.
* All Rights Reserved
*------------------------------------------------------------------------------
* FILENAME...... csl_mcasphal.h
* DATE CREATED.. 06/28/2001
* LAST MODIFIED.
*------------------------------------------------------------------------------
*HISTORY......6/29/01, changed RSLOT to RSLOTCNT, XSLOT to XSLOTCNT
* 7/2/01, XFMT: changed XROT field to 0-2 instead of 0-3
* also added field XDATDLY in bits 17:16 (made appropriate macro changes)
* RFMT: same as above (RROT wasn't specified, but made sense)
* AFSXCTL/AFSRCTL: removed X(R)DATDLY fields and macro entries.
* ACLKRCTL: changed CLKRDIV field to bits 4:0(was 5:0),CLKRM to bit 5(was 6)
* HCLKXDIV/HCLKRDIV: changed field HCLKX(R)DIV to bit 11:0 (was 12:0)
* SCRTL: changed defaults of fields XRDY and RRDY to 0b (was 1b)
* Added register DLBCTL
* Added registers X(R)INTCTL
* 8/6/01 fixed MCASP_RFMT_RPAD_RPBIT; was formerly _XPBIT
* 08/13/01 V.G. Reordered the registers and added OFFSETs
* 08/14/01 V.G. Corrected syntax errors
* 08/20/01 V.G. Added addresses for each register
*
* 11/03/01 F.S CRFAIL -> RCKFAIL / CXFAIL -> XCKFAIL
* 11/15/01 F.S PWREMUMGT -> PWRDEMU
* PFUNC / PDIR /PDSOUT /PDSET /PDCLR -> fields renaming
* 11/20/01 F.S GBLCTL / XGBLCTL / RGBLCTL
* RRST -> RSMRST , RGRST -> RCLKRST , HCLKRRST -> RHCLKRST
* XRST -> XSMRST , XGRST -> XCLKRST , HCLKXRST -> XHCLKRST
*------------------------------------------------------------------------------
* REGISTERS (register list)
*
* PID - Peripheral Identification Register
* PWRDEMU - Power Down and Emulation Management Register
* PFUNC - Pin Function / GPIO Enable Register
* PDIR - Pin Direction Register
* PDAT - Pin Data Register
* PDIN - Pin Data Input Register
* PDOUT - Pin Data Output Register
* PDSET - Pin Data Set Register
* PDCLR - Pin Data Clear Register
* DITCTL - Transmit DIT Control Register
* DLBCTL - Loop Back Control Mode
* XFMT - Transmit Bitstream Format Register
* RFMT - Receive Bitstream Format Register
* XMASK
* RMASK
* AFSXCTL - Transmit Frame Control Register
* AFSRCTL - Receive Frame Control Register
* ACLKXCTL - Transmit Clock Control Register
* ACLKRCTL - Receive Clock Control Register
* AHCLKXCTL - High Frequency Transmit Clock Control Register Description
* AHCLKRCTL - High Frequency Receive Clock Control Register Description
* SRCTL0 - Serializer Control Register 0
* SRCTL1 - Serializer Control Register 1
* SRCTL2 - Serializer Control Register 2
* SRCTL3 - Serializer Control Register 3
* SRCTL4 - Serializer Control Register 4
* SRCTL5 - Serializer Control Register 5
* SRCTL6 - Serializer Control Register 6
* SRCTL7 - Serializer Control Register 7
* SRCTL8 - Serializer Control Register 8 (1)
* SRCTL9 - Serializer Control Register 9 (1)
* SRCTL10 - Serializer Control Register 10 (1)
* SRCTL11 - Serializer Control Register 11 (1)
* SRCTL12 - Serializer Control Register 12 (1)
* SRCTL13 - Serializer Control Register 13 (1)
* SRCTL14 - Serializer Control Register 14 (1)
* SRCTL15 - Serializer Control Register 15 (1)
* XTDM - Transmit TDM Register
* RTDM - Receive TDM Register
* GBLCTL - Global Control Register
* XGBLCTL - Global Control Register
* RGBLCTL - Global Control Register
* AMUTE - Mute Control Register
* XINTCTL - Transmitter Interrupt Control Register
* RINTCTL - Receiver Interrupt Control Register
* RSTAT - Receiver Status Register
* XSTAT - Transmitter Status Register
* RSLOTCNT - Receiver TDM Slot Counter
* XSLOTCNT - Transmitter TDM Slot Counter
* XCLKCHK - Transmit Clock Check Control Register
* RCLKCHK - Receive Clock Check Control Register
* XBUF0 - Transmit Buffer for Serializer 0
* XBUF1 - Transmit Buffer for Serializer 1
* XBUF2 - Transmit Buffer for Serializer 2
* XBUF3 - Transmit Buffer for Serializer 3
* XBUF4 - Transmit Buffer for Serializer 4
* XBUF5 - Transmit Buffer for Serializer 5
* XBUF6 - Transmit Buffer for Serializer 6
* XBUF7 - Transmit Buffer for Serializer 7
* XBUF8 - Transmit Buffer for Serializer 8 (1)
* XBUF9 - Transmit Buffer for Serializer 9 (1)
* XBUF10 - Transmit Buffer for Serializer 10 (1)
* XBUF11 - Transmit Buffer for Serializer 11 (1)
* XBUF12 - Transmit Buffer for Serializer 12 (1)
* XBUF13 - Transmit Buffer for Serializer 13 (1)
* XBUF14 - Transmit Buffer for Serializer 14 (1)
* XBUF15 - Transmit Buffer for Serializer 15 (1)
* RBUF0 - Receive Buffer for Serializer 0
* RBUF1 - Receive Buffer for Serializer 1
* RBUF2 - Receive Buffer for Serializer 2
* RBUF3 - Receive Buffer for Serializer 3
* RBUF4 - Receive Buffer for Serializer 4
* RBUF5 - Receive Buffer for Serializer 5
* RBUF6 - Receive Buffer for Serializer 6
* RBUF7 - Receive Buffer for Serializer 7
* RBUF8 - Receive Buffer for Serializer 8
* RBUF9 - Receive Buffer for Serializer 9
* RBUF10 - Receive Buffer for Serializer 10
* RBUF11 - Receive Buffer for Serializer 11
* RBUF12 - Receive Buffer for Serializer 12
* RBUF13 - Receive Buffer for Serializer 13
* RBUF14 - Receive Buffer for Serializer 14
* RBUF15 - Receive Buffer for Serializer 15
* DITCSRA0n - Left (even TDM Slot) Channel Status Register File
* DITCSRA1n
* DITCSRA2n
* DITCSRA3n
* DITCSRA4n
* DITCSRA5n
* DITCSRB0n - Right (even TDM Slot) Channel Status Register File
* DITCSRB1n
* DITCSRB2n
* DITCSRB3n
* DITCSRB4n
* DITCSRB5n
* DITUDRA0n - Left (even TDM Slot) User Data Register File
* DITUDRA1n
* DITUDRA2n
* DITUDRA3n
* DITUDRA4n
* DITUDRA5n
* DITUDRB0n - Right (even TDM Slot) User Data Register File
* DITUDRB1n
* DITUDRB2n
* DITUDRB3n
* DITUDRB4n
* DITUDRB5n
*
*
\******************************************************************************/
/******************************************************************************\
* Step 2. Private Macros and Include files
\******************************************************************************/
#ifndef _CSL_MCASPHAL_H_
#define _CSL_MCASPHAL_H_
#include <csl_stdinc.h>
#include <csl_chip.h>
#if (MCASP_SUPPORT)
/******************************************************************************\
* Step 3. MISC section
* Example:
* #define _MCASP_BASE_GLOBAL 0xXXXXXXXXu
\******************************************************************************/
#if (CHIP_6713 | CHIP_DA610)
#define _MCASP_PORT_CNT 2
#endif
#if (CHIP_DM642)
#define _MCASP_PORT_CNT 1
#endif
#if (CHIP_DM642 | CHIP_6713)
#define _MCASP_CHANNEL_CNT 8
#endif
#if (CHIP_DA610)
#define _MCASP_CHANNEL_CNT 16
#endif
#define _MCASP_BASE_PORT0 0x01B4C000u
#define _MCASP_BASE_PORT1 0x01B50000u
/******************************************************************************\
* Step 4. Module level register/field access macros
\******************************************************************************/
/* -------------------------- */
/* Step 4.1 FIELD MAKE MACROS */
/* -------------------------- */
#define MCASP_FMK(REG,FIELD,x)\
_PER_FMK(MCASP,##REG,##FIELD,x)
#define MCASP_FMKS(REG,FIELD,SYM)\
_PER_FMKS(MCASP,##REG,##FIELD,##SYM)
/* ----------------------------------------- */
/* Step 4.2 RAW REGISTER/FIELD ACCESS MACROS */
/* ----------------------------------------- */
#define MCASP_ADDR(REG)\
_MCASP_##REG##_ADDR
#define MCASP_RGET(REG)\
_PER_RGET(_MCASP_##REG##_ADDR,MCASP,##REG)
#define MCASP_RSET(REG,x)\
_PER_RSET(_MCASP_##REG##_ADDR,MCASP,##REG,x)
#define MCASP_FGET(REG,FIELD)\
_MCASP_##REG##_FGET(##FIELD)
#define MCASP_FSET(REG,FIELD,x)\
_MCASP_##REG##_FSET(##FIELD,x)
#define MCASP_FSETS(REG,FIELD,SYM)\
_MCASP_##REG##_FSETS(##FIELD,##SYM)
/* --------------------------------------------------- */
/* Step 4.3 ADDRESS BASED REGISTER/FIELD ACCESS MACROS */
/* --------------------------------------------------- */
#define MCASP_RGETA(addr,REG)\
_PER_RGET(addr,MCASP,##REG)
#define MCASP_RSETA(addr,REG,x)\
_PER_RSET(addr,MCASP,##REG,x)
#define MCASP_FGETA(addr,REG,FIELD)\
_PER_FGET(addr,MCASP,##REG,##FIELD)
#define MCASP_FSETA(addr,REG,FIELD,x)\
_PER_FSET(addr,MCASP,##REG,##FIELD,x)
#define MCASP_FSETSA(addr,REG,FIELD,SYM)\
_PER_FSETS(addr,MCASP,##REG,##FIELD,##SYM)
/* -------------------------------------------------- */
/* Step 4.4 HANDLE BASED REGISTER/FIELD ACCESS MACROS */
/* -------------------------------------------------- */
/* For non-handle based Module : remove the following macros (remove me)*/
/* See CDK Chapter 3. Module specification and CSL definitions ( remove me)*/
#define MCASP_ADDRH(h,REG)\
(Uint32)(&((h)->baseAddr[_MCASP_##REG##_OFFSET]))
#define MCASP_RGETH(h,REG)\
MCASP_RGETA(MCASP_ADDRH(h,##REG),##REG)
#define MCASP_RSETH(h,REG,x)\
MCASP_RSETA(MCASP_ADDRH(h,##REG),##REG,x)
#define MCASP_FGETH(h,REG,FIELD)\
MCASP_FGETA(MCASP_ADDRH(h,##REG),##REG,##FIELD)
#define MCASP_FSETH(h,REG,FIELD,x)\
MCASP_FSETA(MCASP_ADDRH(h,##REG),##REG,##FIELD,x)
#define MCASP_FSETSH(h,REG,FIELD,SYM)\
MCASP_FSETSA(MCASP_ADDRH(h,##REG),##REG,##FIELD,##SYM)
/******************************************************************************\
*
* _____________________
* | |
* | P I D |
* |___________________|
*
* PID - Peripheral Identification Register
*
* FIELDS (msb -> lsb)
* (r) TYPE
* (r) CLASS
* (r) REV
*
\******************************************************************************/
#define _MCASP_PID_OFFSET 0
#define _MCASP_PID0_ADDR (_MCASP_BASE_PORT0 + 4*_MCASP_PID_OFFSET)
#define _MCASP_PID1_ADDR (_MCASP_BASE_PORT1 + 4*_MCASP_PID_OFFSET)
#define _MCASP_PID_TYPE_MASK 0x00FF0000u
#define _MCASP_PID_TYPE_SHIFT 0x00000010u
#define MCASP_PID_TYPE_DEFAULT 0x00000010u
#define MCASP_PID_TYPE_OF(x) _VALUEOF(x)
#define MCASP_PID_TYPE_MCASP 0x00000010u
#define _MCASP_PID_CLASS_MASK 0x0000FF00u
#define _MCASP_PID_CLASS_SHIFT 0x00000008u
#define MCASP_PID_CLASS_DEFAULT 0x00000001u
#define MCASP_PID_CLASS_OF(x) _VALUEOF(x)
#define MCASP_PID_CLASS_SERPORT 0x00000001u
#define _MCASP_PID_REV_MASK 0x000000FFu
#define _MCASP_PID_REV_SHIFT 0x00000000u
#define MCASP_PID_REV_DEFAULT 0x00000001u
#define MCASP_PID_REV_OF(x) _VALUEOF(x)
#define MCASP_PID_REV_ONE 0x00000001u
#define MCASP_PID_OF(x) _VALUEOF(x)
#define MCASP_PID_DEFAULT (Uint32)( \
_PER_FDEFAULT(MCASP,PID,TYPE)\
| _PER_FDEFAULT(MCASP,PID,CLASS)\
| _PER_FDEFAULT(MCASP,PID,REV)\
)
#define MCASP_PID_RMK(type, class, rev) (Uint32)( \
_PER_FMK(MCASP,PID,TYPE,type)\
| _PER_FMK(MCASP,PID,CLASS,class)\
| _PER_FMK(MCASP,PID,REV,rev)\
)
#define _MCASP_PID_FGET(N,FIELD)\
_PER_FGET(_MCASP_PID##N##_ADDR,MCASP,PID,##FIELD)
#define _MCASP_PID_FSET(N,FIELD,field)\
_PER_FSET(_MCASP_PID##N##_ADDR,MCASP,PID,##FIELD,field)
#define _MCASP_PID_FSETS(N,FIELD,SYM)\
_PER_FSETS(_MCASP_PID##N##_ADDR,MCASP,PID,##FIELD,##SYM)
#define _MCASP_PID0_FGET(FIELD) _MCASP_PID_FGET(0,##FIELD)
#define _MCASP_PID1_FGET(FIELD) _MCASP_PID_FGET(1,##FIELD)
#define _MCASP_PID0_FSET(FIELD,f) _MCASP_PID_FSET(0,##FIELD,f)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -