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:
parent
324816f019
commit
42f77d4eb0
15 changed files with 196 additions and 61 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue