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

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.11.00.00 11-04-03 (ddk-b13)" */
  9. /* 
  10.  *  ======== evmdm642_edma_aic23.h ========
  11.  */
  12. #ifndef EVMDM642_EDMA_AIC23_
  13. #define EVMDM642_EDMA_AIC23_
  14. #include <iom.h>
  15. #include <c6x1x_edma_mcasp.h>
  16. #include <aic23.h>
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. /* Version number definition */
  21. #define EVMDM642_EDMA_AIC23_VERSION_1 0xAB01
  22. /* Default IRQ number for EDMA is 8 */          
  23. #define EVMDM642_EDMA_AIC23_EDMA_ID_DEFAULT  8
  24. #define EVMDM642_EDMA_AIC23_INTR_MASK_DEFAULT 1
  25. /* DM642 prototype EVM codec clock frequency 12.288Mhz */
  26. #define AIC23_REG8_12288                                                  
  27.     AIC23_9BITWORD(         /* REG 8: sample rate control */              
  28.         0,                  /* reserved */                                
  29.         0,                  /* clock output divider: 1 (MCLK) */          
  30.         0,                  /* clock input  divider: 1 (MCLK) */          
  31.         0,0,0,0,0,          /* sampling rate: ADC 48kHz DAC 48kHz */      
  32.         0                   /* clock mode select (USB/normal): normal */  
  33.     ) 
  34. /* DM642 production EVM codec clock frequency 18.432Mhz */
  35. #define AIC23_REG8_18432                                                  
  36.     AIC23_9BITWORD(         /* REG 8: sample rate control */              
  37.         0,                  /* reserved */                                
  38.         0,                  /* clock output divider: 1 (MCLK) */          
  39.         0,                  /* clock input  divider: 1 (MCLK) */          
  40.         0,0,0,0,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      
  41.         0                   /* clock mode select (USB/normal): normal */  
  42.     ) 
  43. /* 
  44.  *  define an AIC23_DEFAULTPARAMS with 10 default register values 
  45.  *  for DM642 production EVM
  46.  */
  47. #define AIC23_DEFAULTPARAMS_EVMDM642 {                                  
  48.     AIC23_REG0_DEFAULT,                                                 
  49.     AIC23_REG1_DEFAULT,                                                 
  50.     AIC23_REG2_DEFAULT,                                                 
  51.     AIC23_REG3_DEFAULT,                                                 
  52.     AIC23_REG4_DEFAULT,                                                 
  53.     AIC23_REG5_DEFAULT,                                                 
  54.     AIC23_REG6_DEFAULT,                                                 
  55.     AIC23_REG7_DEFAULT,                                                 
  56.     AIC23_REG8_18432,                                                   
  57.     AIC23_REG9_DEFAULT                                                  
  58. }
  59. #define EVMDM642_EDMA_AIC23_DEFAULT_DEVPARAMS {                         
  60.     EVMDM642_EDMA_AIC23_VERSION_1,                                      
  61.     TRUE, /* Buffers are in external memory by default */               
  62.     /* Driver disable the McASP high frequecy rate generator */         
  63.     C6X1X_EDMA_MCASP_EXTERNAL,                                          
  64.     /* Driver disable the McASP clk rate generator */                   
  65.     C6X1X_EDMA_MCASP_EXTERNAL,                                          
  66.     /* Driver disable the McASP frame sync generator */                 
  67.     C6X1X_EDMA_MCASP_EXTERNAL,                                          
  68.     EVMDM642_EDMA_AIC23_EDMA_ID_DEFAULT, /* Default IRQ number is 8 */  
  69.     -1, /* use default */                                               
  70.     -1, /* use default */                                               
  71.     NULL,  /* do not register mcasp event */                            
  72.     EVMDM642_EDMA_AIC23_INTR_MASK_DEFAULT,                              
  73.     EVMDM642_EDMA_AIC23_INTR_MASK_DEFAULT,                              
  74.     EVMDM642_EDMA_AIC23_INTR_MASK_DEFAULT,                              
  75.     AIC23_DEFAULTPARAMS_EVMDM642                                        
  76. }
  77.              
  78. /* Driver function table to be used by applications. */
  79. extern far IOM_Fxns EVMDM642_EDMA_AIC23_FXNS;
  80. /* Device setup parameters */
  81. typedef struct EVMDM642_EDMA_AIC23_DevParams {
  82.     Int versionId;   /* Set to the version number used by the application */
  83.     Bool cacheCalls; /* Set to TRUE if buffers are in external memory */
  84.     Uns enableClkg;  /* Set VALUE for internal clock generator */
  85.     Uns enableHclkg; /* Set VALUE for internal high frequency clock generator */
  86.     Uns enableFsyncg;     /* Set VALUE for internal framesync generator */
  87.     Int irqId;       /* IRQ number to use for EDMA interrupt */
  88.     Int inEvtIrqId;  /* IRQ number used for McASP Event interrupt */
  89.     Int outEvtIrqId; /* IRQ number used for McASP Event interrupt */
  90.     C6X1X_EDMA_MCASP_EvtCallback *evtCallback; /* Register events callback */ 
  91.     Uns inEvtIntrMask;    /* Interrupt mask, set while executing input ISR */
  92.     Uns outEvtIntrMask;   /* Interrupt mask, set while executing output ISR */
  93.     Uns edmaIntrMask;
  94.     AIC23_Params aic23Config; 
  95. } EVMDM642_EDMA_AIC23_DevParams;
  96. #ifdef __cplusplus
  97. }
  98. #endif /* extern "C" */
  99. #endif /* EVMDM642_EDMA_AIC23_ */