/* ------------------------------------------------------------------------ * * * * _AIC3204_rset( regnum, regval ) * * * * Set codec register regnum to value regval * * * * ------------------------------------------------------------------------ */ Int16 AIC3204_rset( Uint16 regnum, Uint16 regval ) { Uint8 cmd[2]; cmd[0] = regnum & 0x007F; // 7-bit Device Address cmd[1] = regval; // 8-bit Register Data return USBSTK5505_I2C_write( AIC3204_I2C_ADDR, cmd, 2 ); }
/* * * AIC3204_rset( regnum, regval ) * * Set codec register regnum to value regval * */ Int16 AIC3204_rset( Uint16 regnum, Uint16 regval ) { Uint16 cmd[2]; cmd[0] = regnum & 0x007F; // 7-bit Device Register cmd[1] = regval; // 8-bit Register Data USBSTK5505_waitusec( 300 ); return USBSTK5505_I2C_write( AIC3204_I2C_ADDR, cmd, 2 ); }
/* ------------------------------------------------------------------------ * * * * _AIC3204_rget( regnum, regval ) * * * * Return value of codec register regnum * * * * ------------------------------------------------------------------------ */ Int16 AIC3204_rget( Uint16 regnum, Uint16* regval ) { Int16 retcode = 0; Uint8 cmd[2]; cmd[0] = regnum & 0x007F; // 7-bit Device Address cmd[1] = 0; retcode |= USBSTK5505_I2C_write( AIC3204_I2C_ADDR, cmd, 1 ); retcode |= USBSTK5505_I2C_read( AIC3204_I2C_ADDR, cmd, 1 ); *regval = cmd[0]; USBSTK5505_wait( 10 ); return retcode; }