c6x1x_edma_mcasp.h
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:4k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2003 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *  
  7.  */
  8. /* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
  9. /* 
  10.  *  ======== c6x1x_edma_mcasp.h ========
  11.  */
  12. #ifndef C6X1X_EDMA_MCASP_
  13. #define C6X1X_EDMA_MCASP_
  14. #include <iom.h>
  15. #include <csl.h>
  16. #include <csl_edma.h>
  17. #include <csl_mcasp.h>
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. /* Version number definition */
  22. #define C6X1X_EDMA_MCASP_VERSION_1   0xAB01
  23. /* McASP event bit definition */
  24. #define C6X1X_EDMA_MCASP_EVT_RBASE      0x00000001
  25. #define C6X1X_EDMA_MCASP_EVT_ROVRN      (C6X1X_EDMA_MCASP_EVT_RBASE << 0)
  26. #define C6X1X_EDMA_MCASP_EVT_RSYNCERR   (C6X1X_EDMA_MCASP_EVT_RBASE << 1)
  27. #define C6X1X_EDMA_MCASP_EVT_RCKFAIL    (C6X1X_EDMA_MCASP_EVT_RBASE << 2)
  28. #define C6X1X_EDMA_MCASP_EVT_RDMAERR    (C6X1X_EDMA_MCASP_EVT_RBASE << 3) 
  29. #define C6X1X_EDMA_MCASP_EVT_XBASE      0x00000100
  30. #define C6X1X_EDMA_MCASP_EVT_XUNDRN     (C6X1X_EDMA_MCASP_EVT_XBASE << 0)
  31. #define C6X1X_EDMA_MCASP_EVT_XSYNCERR   (C6X1X_EDMA_MCASP_EVT_XBASE << 1)
  32. #define C6X1X_EDMA_MCASP_EVT_XCKFAIL    (C6X1X_EDMA_MCASP_EVT_XBASE << 2)
  33. #define C6X1X_EDMA_MCASP_EVT_XDMAERR    (C6X1X_EDMA_MCASP_EVT_XBASE << 3) 
  34.          
  35. /* McASP Clock, High Clock, Frame Sync Source definition */
  36. #define C6X1X_EDMA_MCASP_EXTERNAL       0
  37. #define C6X1X_EDMA_MCASP_XMT            1
  38. #define C6X1X_EDMA_MCASP_RCV            2
  39. #define C6X1X_EDMA_MCASP_RCVXMT         3
  40. #define C6X1X_EDMA_MCASP_XMTRCV         3
  41. /* Driver function table to be used by applications. */
  42. extern far IOM_Fxns C6X1X_EDMA_MCASP_FXNS;
  43. /* McASP Event Handler */
  44. typedef Void (*C6X1X_EDMA_MCASP_TevtCallback)(Uns evtMask, Uns devId);
  45.  
  46. typedef struct C6X1X_EDMA_MCASP_EvtCallback {
  47.     C6X1X_EDMA_MCASP_TevtCallback evtFxn;
  48.     Uns evtMask; /* ored events */
  49. } C6X1X_EDMA_MCASP_EvtCallback;
  50. /* Device setup parameters */
  51. /* Definition for the following constant VALUE 
  52.  * 0: External; 1(C6X1X_EDMA_MCASP_XMT): transmitter only; 
  53.  * 2(C6X1X_EDMA_MCASP_RCV) receiver only;
  54.  * 3(C6X1X_EDMA_MCASP_RCVXMT/C6X1X_EDMA_MCASP_XMTRCV) both
  55.  */
  56. typedef struct C6X1X_EDMA_MCASP_DevParams {
  57.     Int versionId;   /* Set to the version number used by the application */
  58.     Bool cacheCalls; /* Set to TRUE if buffers are in external memory */
  59.     Uns enableClkg; /* Set VALUE for internal clock generator */
  60.     Uns enableHclkg; /* Set VALUE for internal high frequency clock generator */
  61.     Uns enableFsyncg;  /* Set VALUE for internal framesync generator */
  62.     Int irqId;       /* IRQ number used for EDMA interrupt */
  63.     MCASP_Config *mcaspCfgPtr; /* Configuration to use for the McASP */
  64.     Int inEvtIrqId;    /* IRQ number used for McASP Event interrupt */
  65.     Int outEvtIrqId;    /* IRQ number used for McASP Event interrupt */
  66.     C6X1X_EDMA_MCASP_EvtCallback *evtCallback; /* Register events callback */
  67.     Uns inEvtIntrMask; /* Interrupt mask, set while executing input ISR */
  68.     Uns outEvtIntrMask; /* Interrupt mask, set while executing output ISR */
  69.     Uns edmaIntrMask; /* Interrupt mask, set while executing EDMA ISR */
  70. } C6X1X_EDMA_MCASP_DevParams;
  71. /* Channel setup parameters */
  72. typedef struct C6X1X_EDMA_MCASP_ChanParams {
  73.     Uns tdmChans;    /* Number of TDM channels used by the McASP */
  74.     Uns edmaChan;  /* McASP Transmit/Receive Event Mapped EDMA Channel Num */
  75.     EDMA_Config *edmaCfgPtr; /* Configuration to use for the EDMA channel */
  76. } C6X1X_EDMA_MCASP_ChanParams;
  77. #ifdef __cplusplus
  78. }
  79. #endif /* extern "C" */
  80. #endif /* C6X1X_EDMA_MCASP_ */