blob: 580148487f7f2415d6e6cf7634f49d4b64ed54e3 [file] [log] [blame]
/******************************************************************************/
/* Copyright (c) 2002-2005, Silicon Image, Inc. All rights reserved. */
/* No part of this work may be reproduced, modified, distributed, */
/* transmitted, transcribed, or translated into any language or computer */
/* format, in any form or by any means without written permission of: */
/* Silicon Image, Inc., 1060 East Arques Avenue, Sunnyvale, California 94085*/
/******************************************************************************/
/*------------------------------------------------------------------------------
* Module Name: UAudDAC
*
* Module Description: this low level driver for Audio DAC Control
*
*----------------------------------------------------------------------------
*/
#include "SiIRXAPIDefs.h"
#include "UAudDAC.h"
#include "SiIHAL.h"
/*------------------------------------------------------------------------------
* Function Name: WakeUpAudioDAC
* Function Description: Wake up Audio DAC
* Accepts:
* Returns:
* Globals:
*--------------------------------------------------------
*/
void WakeUpAudioDAC(void)
{
siiWriteByteAudDAC(AUDDAC_SPEED_PD_ADDR, AUDDAC_NORM_OP);
}
/*------------------------------------------------------------------------------
* Function Name: PowerDownAudioDAC
* Function Description: Wake up Audio DAC
* Accepts:
* Returns:
* Globals:
*--------------------------------------------------------
*/
void PowerDownAudioDAC(void)
{
siiWriteByteAudDAC(AUDDAC_SPEED_PD_ADDR, AUDDAC_RST);
}
/*------------------------------------------------------------------------------
* Function Name: halSetAudioDACMode
* Function Description: Set Audio DAC modes DSD vs.PCM
* Accepts:
* Returns:
* Globals:
*--------------------------------------------------------
*/
void halSetAudioDACMode(BYTE bMode)
{
/* put in reset to be safe */
siiWriteByteAudDAC(AUDDAC_SPEED_PD_ADDR, AUDDAC_RST);
halDelayMS(1); /* YAM wait for old data to flush */
if (bMode == SiI_RX_AudioRepr_DSD)
siiWriteByteAudDAC(AUDDAC_CTRL3_ADDR, ADAC_DSD_MODE);
else
siiWriteByteAudDAC(AUDDAC_CTRL3_ADDR, ADAC_PCM_MODE);
}