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

📄 evmdm642_edma_aic23.c

📁 用DSP5410实现对音乐文件音量的限制性调节
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
 *  Copyright 2003 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* "@(#) DDK 1.11.00.00 11-04-03 (ddk-b13)" */
/* 
 *  ======== evmdm642_edma_aic23.c ========
 * 
 *  Driver for the aic23 codec on the TMS320C642 EVM. 
 *  Requires the generic TMS320C6x1x McASP driver.
 */

#include <std.h>

#include <iom.h>

#include <csl.h>
#include <csl_mcasp.h>
#include <csl_edma.h>

#include <aic23.h>
#include <evmdm642_edma_aic23.h>
#include <c6x1x_edma_mcasp.h>

#define MCASPPORT  0

#define GENERICDEVPARAMS {                                                 \
    C6X1X_EDMA_MCASP_VERSION_1, /* version id */                           \
    TRUE, /* True if buffers are in cacheable memory (set in mdBindDev) */ \
    /* Driver not enable the McASP high frequecy rate generator */         \
    C6X1X_EDMA_MCASP_EXTERNAL,                                             \
    /* Driver not enable the McASP clk rate generator */                   \
    C6X1X_EDMA_MCASP_EXTERNAL,                                             \
    /* Driver not enable the McASP frame sync generator */                 \
    C6X1X_EDMA_MCASP_EXTERNAL,                                             \
    0,     /* IRQ id to use for the EDMA (set in mdBindDev) */             \
    NULL,  /* McASP configuration for the loopback (set in mdBindDev) */   \
    -1,    /* input event irq id */                                        \
    -1,    /* output event irq id */                                       \
    NULL,   /* event callback */                                           \
    EVMDM642_EDMA_AIC23_INTR_MASK_DEFAULT,                                 \
    EVMDM642_EDMA_AIC23_INTR_MASK_DEFAULT,                                 \
    EVMDM642_EDMA_AIC23_INTR_MASK_DEFAULT                                  \
}

EVMDM642_EDMA_AIC23_DevParams EVMDM642_EDMA_AIC23_DEVPARAMS =  \
                                 EVMDM642_EDMA_AIC23_DEFAULT_DEVPARAMS;

/*
 * Forward declaration of the IOM interface functions. They are only
 * exposed via the IOM function table to avoid namespace pollution.
 */
static Int mdBindDev(Ptr *devp, Int devid, Ptr devParams);
static Int mdCreateChan(Ptr *chanp, Ptr devp, String name, Int mode,
                        Ptr chanParams, IOM_TiomCallback cbFxn, Ptr cbArg);

/*
 * The codec driver function table. Notice how we copy most functions
 * from the generic c6x1x edma mcasp driver.
 */
IOM_Fxns EVMDM642_EDMA_AIC23_FXNS = {
    &mdBindDev,
    NULL,
    NULL,
    &mdCreateChan,
    NULL,
    NULL
};

/*
 * ======== mdBindDev ========
 * This function allocates and configures the pcm3002 codec.
 */
static Int mdBindDev(Ptr *devp, Int devid, Ptr devParams)
{
   EVMDM642_EDMA_AIC23_DevParams *params =
        (EVMDM642_EDMA_AIC23_DevParams *) devParams;
    C6X1X_EDMA_MCASP_DevParams genericParams = GENERICDEVPARAMS;

    MCASP_ConfigGbl configGbl = {
        MCASP_FMKS(PFUNC, AFSR, MCASP)          |
        MCASP_FMKS(PFUNC, AHCLKR, MCASP)        |
        MCASP_FMKS(PFUNC, ACLKR, MCASP)         |
        MCASP_FMKS(PFUNC, AFSX, MCASP)          |
        MCASP_FMKS(PFUNC, AHCLKX, MCASP)        |
        MCASP_FMKS(PFUNC, ACLKX, MCASP)         |
        MCASP_FMKS(PFUNC, AMUTE, MCASP)         |
/*      MCASP_FMKS(PFUNC, AXR15, MCASP)         |
        MCASP_FMKS(PFUNC, AXR14, MCASP)         |
        MCASP_FMKS(PFUNC, AXR13, MCASP)         |
        MCASP_FMKS(PFUNC, AXR12, MCASP)         |
        MCASP_FMKS(PFUNC, AXR11, MCASP)         |
        MCASP_FMKS(PFUNC, AXR10, MCASP)         |
        MCASP_FMKS(PFUNC, AXR9, MCASP)          |
        MCASP_FMKS(PFUNC, AXR8, MCASP)          |  */ 
        MCASP_FMKS(PFUNC, AXR7, MCASP)          |
        MCASP_FMKS(PFUNC, AXR6, MCASP)          |
        MCASP_FMKS(PFUNC, AXR5, MCASP)          |
        MCASP_FMKS(PFUNC, AXR4, MCASP)          |
        MCASP_FMKS(PFUNC, AXR3, MCASP)          |
        MCASP_FMKS(PFUNC, AXR2, MCASP)          |
        MCASP_FMKS(PFUNC, AXR1, MCASP)          |
        MCASP_FMKS(PFUNC, AXR0, MCASP),

        MCASP_FMKS(PDIR, AFSR, IN)              |
        MCASP_FMKS(PDIR, AHCLKR, IN)            |
        MCASP_FMKS(PDIR, ACLKR, IN)             |
        MCASP_FMKS(PDIR, AFSX, IN)              |
        MCASP_FMKS(PDIR, AHCLKX, IN)            |
        MCASP_FMKS(PDIR, ACLKX, IN)             |
        MCASP_FMKS(PDIR, AMUTE, DEFAULT)        |
 /*     MCASP_FMKS(PDIR, AXR15, IN)             |
        MCASP_FMKS(PDIR, AXR14, IN)             |
        MCASP_FMKS(PDIR, AXR13, IN)             |
        MCASP_FMKS(PDIR, AXR12, IN)             |
        MCASP_FMKS(PDIR, AXR11, IN)             |
        MCASP_FMKS(PDIR, AXR10, IN)             |
        MCASP_FMKS(PDIR, AXR9, IN)              |
        MCASP_FMKS(PDIR, AXR8, IN)              |  */
        MCASP_FMKS(PDIR, AXR7, IN)              |
        MCASP_FMKS(PDIR, AXR6, IN)              |
        MCASP_FMKS(PDIR, AXR5, IN)              |
        MCASP_FMKS(PDIR, AXR4, IN)              |
        MCASP_FMKS(PDIR, AXR3, IN)              |
        MCASP_FMKS(PDIR, AXR2, IN)              |
        MCASP_FMKS(PDIR, AXR1, IN)              |
        MCASP_FMKS(PDIR, AXR0, OUT),

        MCASP_DITCTL_DEFAULT,   

        MCASP_FMKS(DLBCTL, MODE, DEFAULT)       |
        MCASP_FMKS(DLBCTL, ORD, DEFAULT)        |
        MCASP_FMKS(DLBCTL, DLBEN, DISABLE),

        MCASP_AMUTE_DEFAULT
    };
    
    MCASP_ConfigRcv configRcv = {
        MCASP_FMKS(RMASK, RMASK31, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK30, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK29, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK28, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK27, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK26, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK25, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK24, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK23, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK22, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK21, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK20, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK19, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK18, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK17, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK16, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK15, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK14, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK13, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK12, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK11, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK10, NOMASK)      |
        MCASP_FMKS(RMASK, RMASK9, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK8, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK7, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK6, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK5, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK4, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK3, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK2, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK1, NOMASK)       |
        MCASP_FMKS(RMASK, RMASK0, NOMASK),
      
        MCASP_FMKS(RFMT, RDATDLY, 0BIT)         |
        MCASP_FMKS(RFMT, RRVRS, MSBFIRST)       |
        MCASP_FMKS(RFMT, RPAD, ZERO)            |
        MCASP_FMKS(RFMT, RPBIT, DEFAULT)        |
        MCASP_FMKS(RFMT, RSSZ, 32BITS)          |
        MCASP_FMKS(RFMT, RBUSEL, DAT)           |
        MCASP_FMKS(RFMT, RROT, NONE),

        MCASP_FMKS(AFSRCTL, RMOD, BURST)        |
        MCASP_FMKS(AFSRCTL, FRWID, BIT) |
        MCASP_FMKS(AFSRCTL, FSRM, EXTERNAL)     |
        MCASP_FMKS(AFSRCTL, FSRP, ACTIVEHIGH),

        MCASP_FMKS(ACLKRCTL, CLKRP, RISING)     |
        MCASP_FMKS(ACLKRCTL, CLKRM, EXTERNAL)   |
        MCASP_FMKS(ACLKRCTL, CLKRDIV, OF(0)),

        MCASP_FMKS(AHCLKRCTL, HCLKRM, EXTERNAL) |
        MCASP_FMKS(AHCLKRCTL, HCLKRP, RISING)   |     
        MCASP_FMKS(AHCLKRCTL, HCLKRDIV, OF(0)),

        MCASP_FMKS(RTDM, RTDMS31, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS30, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS29, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS28, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS27, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS26, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS25, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS24, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS23, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS22, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS21, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS20, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS19, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS18, INACTIVE)     |      
        MCASP_FMKS(RTDM, RTDMS17, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS16, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS15, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS14, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS13, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS12, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS11, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS10, INACTIVE)     |
        MCASP_FMKS(RTDM, RTDMS9, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS8, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS7, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS6, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS5, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS4, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS3, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS2, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS1, INACTIVE)      |
        MCASP_FMKS(RTDM, RTDMS0, ACTIVE),

        MCASP_FMKS(RINTCTL, RSTAFRM, DISABLE)   |
        MCASP_FMKS(RINTCTL, RDATA, DISABLE)     |
        MCASP_FMKS(RINTCTL, RLAST, DISABLE)     |
        MCASP_FMKS(RINTCTL, RDMAERR, DISABLE)   |
        MCASP_FMKS(RINTCTL, RCKFAIL, DISABLE)   |
        MCASP_FMKS(RINTCTL, RSYNCERR, DISABLE)  |
        MCASP_FMKS(RINTCTL, ROVRN, DISABLE),

        MCASP_FMKS(RCLKCHK, RMAX, DEFAULT)      |
        MCASP_FMKS(RCLKCHK, RMIN, DEFAULT)      |
        MCASP_FMKS(RCLKCHK, RPS, DEFAULT)       
    }; 

    MCASP_ConfigXmt configXmt = {
        MCASP_FMKS(XMASK, XMASK31, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK30, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK29, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK28, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK27, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK26, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK25, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK24, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK23, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK22, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK21, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK20, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK19, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK18, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK17, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK16, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK15, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK14, NOMASK)      |
        MCASP_FMKS(XMASK, XMASK13, NOMASK)      |

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -