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

📄 csl_mcasphal.h

📁 SEED的VPM642测试程序-板级支持库
💻 H
📖 第 1 页 / 共 5 页
字号:
/******************************************************************************\
* 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 + -