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

📄 davincievm_aic33_registers.c

📁 TI的DM6446的硬件平台搭建的相关例子
💻 C
字号:
/*
 *  Copyright 2005 by Spectrum Digital Incorporated.
 *  All rights reserved. Property of Spectrum Digital Incorporated.
 *
 *  Not for distribution.
 */

/*
 *  AIC33 implementation
 *
 */

#include "davincievm_aic33.h"

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_AIC33_rget( aic33handle, regnum, regval )                    *
 *                                                                          *
 *      Return value of codec register regnum                               *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_AIC33_rget( AIC33_CodecHandle aic33handle, Uint16 regnum, Uint16* regval )
{
    Int16 retcode = 0;
    Uint8 cmd[2];

    cmd[0] = regnum & 0x007F;       // 7-bit Device Address
    cmd[1] = 0;

    retcode |= DAVINCIEVM_I2C_write( AIC33_I2C_ADDR, cmd, 1 );
    retcode |= DAVINCIEVM_I2C_read( AIC33_I2C_ADDR, cmd, 1 );

    *regval = cmd[0];

    return retcode;
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_AIC33_rset( aic33handle, regnum, regval )                    *
 *                                                                          *
 *      Set codec register regnum to value regval                           *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_AIC33_rset( AIC33_CodecHandle aic33handle, Uint16 regnum, Uint16 regval )
{
    Uint8 cmd[2];
    cmd[0] = regnum & 0x007F;       // 7-bit Device Address
    cmd[1] = regval;                // 8-bit Register Data

    return DAVINCIEVM_I2C_write( AIC33_I2C_ADDR, cmd, 2 );
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_AIC33_rset_mask( aic33handle, regnum, regval, mask )         *
 *                                                                          *
 *      Set codec register regnum to value regval                           *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_AIC33_rset_mask( AIC33_CodecHandle aic33handle, Uint16 regnum, Uint16 regval, Uint8 mask )
{
    Int16 retcode = 0;
    Uint16 regval_save;

    retcode |= DAVINCIEVM_AIC33_rget( aic33handle, regnum, &regval_save ); // Read old value

    regval_save &= ~mask;                                       // Mask bits
    regval_save |= regval & mask;                               // Set bits

    retcode |= DAVINCIEVM_AIC33_rset( aic33handle, regnum, regval_save );  // Write new value

    return retcode;
}


/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_AIC33_config( )                                              *
 *                                                                          *
 *     Set the default codec register config values                         *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_AIC33_config( AIC33_CodecHandle aic33handle, AIC33_Config *config )
{
    Int16 retcode = 0;
    Int16 i;

    /*
     *  Configure every non-reserved, non-status register
     */
    for ( i = 0 ; i < AIC33_NUMREGS ; i++ )
        if ( ( config->regs[i] & 0xFF00 ) == 0 )
            retcode |= DAVINCIEVM_AIC33_rset( aic33handle, i, config->regs[i] );

    return retcode;
}

⌨️ 快捷键说明

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