1
0
Fork 0
forked from len0rd/rockbox

Abstract the PortalPlayer AS3514 handling with an "ascodec" API - inspired by the wmcodec API used with the Wolfson codecs. The intention is to implement this API for the AS3525 and then share code with the Sansa V2 ports.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18940 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dave Chapman 2008-10-31 00:16:42 +00:00
parent 324816f019
commit 42f77d4eb0
15 changed files with 196 additions and 61 deletions

View file

@ -20,7 +20,7 @@
****************************************************************************/
#include "adc.h"
#include "kernel.h"
#include "i2c-pp.h"
#include "ascodec.h"
#include "as3514.h"
/* Read 10-bit channel data */
@ -30,21 +30,21 @@ unsigned short adc_read(int channel)
if ((unsigned)channel < NUM_ADC_CHANNELS)
{
i2c_lock();
ascodec_lock();
/* Select channel */
if (pp_i2c_send( AS3514_I2C_ADDR, AS3514_ADC_0, (channel << 4)) >= 0)
if (ascodec_write(AS3514_ADC_0, (channel << 4)) >= 0)
{
unsigned char buf[2];
/* Read data */
if (i2c_readbytes( AS3514_I2C_ADDR, AS3514_ADC_0, 2, buf) >= 0)
if (ascodec_readbytes(AS3514_ADC_0, 2, buf) >= 0)
{
data = (((buf[0] & 0x3) << 8) | buf[1]);
}
}
i2c_unlock();
ascodec_unlock();
}
return data;