teb6416_edma_pcm3002.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.  *  ======== teb6416_edma_pcm3002.h ========
  11.  */
  12. #ifndef TEB6416_EDMA_PCM3002_
  13. #define TEB6416_EDMA_PCM3002_
  14. #include <iom.h>
  15. #include <csl_edma.h>
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. /* Version number definition */
  20. #define TEB6416_EDMA_PCM3002_VERSION_1 0xAB01
  21. #define TEB6416_EDMA_PCM3002_INTR_MASK_DEFAULT 1
  22. /*
  23.  * pcm3002 specific #defines
  24.  */
  25. #define TEB6416_EDMA_PCM3002_MODE_REG0        0
  26. #define TEB6416_EDMA_PCM3002_MODE_REG1        1
  27. #define TEB6416_EDMA_PCM3002_MODE_REG2        2
  28. #define TEB6416_EDMA_PCM3002_MODE_REG3        3
  29. #define TEB6416_EDMA_PCM3002_MR0_LDL          0x0100
  30. #define TEB6416_EDMA_PCM3002_MR0_AL           0x00FF
  31. #define TEB6416_EDMA_PCM3002_MR0_DEFAULT      0x00FF
  32. #define TEB6416_EDMA_PCM3002_MR1_LDR          0x0100
  33. #define TEB6416_EDMA_PCM3002_MR1_AR           0x00FF
  34. #define TEB6416_EDMA_PCM3002_MR1_DEFAULT      0x00FF
  35. #define TEB6416_EDMA_PCM3002_MR2_PDAD         0x0100
  36. #define TEB6416_EDMA_PCM3002_MR2_BYPS         0x0080
  37. #define TEB6416_EDMA_PCM3002_MR2_PDDA         0x0040
  38. #define TEB6416_EDMA_PCM3002_MR2_ATC          0x0020
  39. #define TEB6416_EDMA_PCM3002_MR2_IZD          0x0010
  40. #define TEB6416_EDMA_PCM3002_MR2_OUT          0x0008
  41. #define TEB6416_EDMA_PCM3002_MR2_DEM_44KH_ON  0x0000
  42. #define TEB6416_EDMA_PCM3002_MR2_DEM_OFF      0x0002
  43. #define TEB6416_EDMA_PCM3002_MR2_DEM_48KHZ_ON 0x0004
  44. #define TEB6416_EDMA_PCM3002_MR2_DEM_32KHZ_ON 0x0006
  45. #define TEB6416_EDMA_PCM3002_MR2_MUT          0x0001
  46. #define TEB6416_EDMA_PCM3002_MR2_DEFAULT      0x0002
  47. #define TEB6416_EDMA_PCM3002_MR3_LOP          0x0020
  48. #define TEB6416_EDMA_PCM3002_MR3_FMT_16B_R    0x0000 
  49. #define TEB6416_EDMA_PCM3002_MR3_FMT_20B_R    0x0004 
  50. #define TEB6416_EDMA_PCM3002_MR3_FMT_20B_L    0x0008 
  51. #define TEB6416_EDMA_PCM3002_MR3_FMT_20B_I2S  0x000C 
  52. #define TEB6416_EDMA_PCM3002_MR3_LRP          0x0002
  53. #define TEB6416_EDMA_PCM3002_MR3_DEFAULT      0x0000
  54. #define TEB6416_EDMA_PCM3002_LEFT_CHANNEL     1      // Left channel only
  55. #define TEB6416_EDMA_PCM3002_RIGHT_CHANNEL    2      // Right channel only
  56. #define TEB6416_EDMA_PCM3002_BOTH_CHANNEL     3      // Both left and right channel
  57. #define TEB6416_EDMA_PCM3002_NUMREGS          4
  58. /* Default IRQ number for EDMA is 8 */          
  59. #define TEB6416_EDMA_PCM3002_EDMA_ID_DEFAULT  8
  60. #define TEB6416_PCM3002_DEFAULTPARAMS {                   
  61.         TEB6416_EDMA_PCM3002_MR0_DEFAULT,                 
  62.         TEB6416_EDMA_PCM3002_MR1_DEFAULT,                 
  63.         TEB6416_EDMA_PCM3002_MR2_DEFAULT,                 
  64.         TEB6416_EDMA_PCM3002_MR3_DEFAULT                  
  65. }                                                    
  66. #define TEB6416_EDMA_PCM3002_DEFAULT_DEVPARAMS {          
  67.     TEB6416_EDMA_PCM3002_VERSION_1, /* Version number */  
  68.     TRUE, /* Buffers are in external memory by default */ 
  69.     TEB6416_EDMA_PCM3002_EDMA_ID_DEFAULT,                 
  70.     TEB6416_PCM3002_DEFAULTPARAMS,                        
  71.     TEB6416_EDMA_PCM3002_INTR_MASK_DEFAULT,               
  72.     EDMA_OPT_PRI_HIGH                                     
  73. }
  74. /* Driver function table to be used by applications */
  75. extern far IOM_Fxns TEB6416_EDMA_PCM3002_FXNS;
  76. /* Device setup parameters */
  77. typedef struct TEB6416_EDMA_PCM3002_DevParams {
  78.     Int versionId; /* Set to the version number used by the application */
  79.     Bool cacheCalls; /* Set to TRUE if buffers are in external memory */
  80.     Int irqId;       /* IRQ number to use for EDMA interrupt */
  81.     Int reg[TEB6416_EDMA_PCM3002_NUMREGS]; /* PCM3002 registers */
  82.     Uns intrMask; /* Interrupt mask, set while executing EDMA int ISR */
  83.     Int edmaPriority;/* priority of EDMA transfers */
  84. } TEB6416_EDMA_PCM3002_DevParams;
  85. #ifdef __cplusplus
  86. }
  87. #endif /* extern "C" */
  88. #endif /* TEB6416_EDMA_PCM3002_ */