CODEC_init.c

Go to the documentation of this file.
00001 /*****************************************************************************
00002                            C   M O D U L E   F I L E
00003 
00004     Copyright (c) 2003 Neuros Audio LLC, All rights reserved.
00005 
00006 ******************************************************************************/
00007 
00018 
00019 /*-- HEADER FILE INCLUDES ---------------------------------------------------*/
00020 #include "../SYSTEM/sys_hardware.h"
00021 #include "codec.h"
00022 #include "codec_assert.h"
00023 
00024 /*-- LOCAL DEFINITIONS ------------------------------------------------------*/
00025 
00026 /*-- STATIC DATA ------------------------------------------------------------*/
00027 
00028 /*-- GLOBAL DATA ------------------------------------------------------------*/
00029 st_PCM Pcm;   
00030 int pcmPipeBuf[PCM_PIPE_FRAMELEN*2+4];
00031 
00032 #pragma DATA_SECTION(BUF_output, ".cirbuf")
00033 /* Circular Buffer, needs to be aligned. */
00034 int BUF_output[BUF_OUTPUTSIZE];          
00035 
00036 /*-- FUNCTIONS --------------------------------------------------------------*/
00037 #pragma CODE_SECTION(CODEC_init, ".sram0_resident")
00041 void CODEC_init( void )
00042 {
00043     // Reset Codec.
00044     SPI_lock(SYS_FOREVER);
00045     
00046     // Shut down MyFi.
00047     GPIOSR = GPIOSR | VCTRL_XMIT;
00048     
00049     CODEC__spiWrite(AIC23REG_RESET|0x1FF);
00050     CODEC__spiWrite(AIC23REG_PWRDOWN | 0x01FF);
00051     CODEC__spiWrite(AIC23REG_RESET);
00052     CODEC__spiWrite(AIC23REG_LHDPHONE | 0x100);
00053     SPI_unlock();
00054     
00055     /* Zero out pcm globals. */
00056     GEN_zeroOut( (UINT16 *)&Pcm, sizeof(st_PCM) );  
00057     
00058     /* Create pcm pipe, this pipe will be resident as long as device is on. */
00059     if( PIPE_init( &Pcm.pipe, PCM_PIPE_FRAMELEN, 2, 
00060                 pcmPipeBuf, PCM_PIPE_FRAMELEN*2+4 ) == 0 ) SYS_die(CODEC_INIT);    
00061 
00062     Pcm.codecMode   = COP_POWERDOWN;
00063     Pcm.flag        = 0;
00064     Pcm.getFunc     = 
00065     Pcm.newGetFunc  = CODEC__defaultPcmGet;
00066     Pcm.putFunc     = 
00067     Pcm.newPutFunc  = CODEC__defaultPcmPut;
00068     CODEC_WARMUP();
00069 }
00070 
00071 
00072 /*****************************************************************************
00073                 Neuros Audio LLC. Confidential Proprietary
00074  *****************************************************************************/

Generated on Wed Jan 19 01:12:37 2005 for neuros-firmware by  doxygen 1.3.9.1