adc-as3514.c: cosmetics

reduce indentation level, return early on error condition

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26063 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Rafaël Carré 2010-05-15 19:44:54 +00:00
parent f6a17bdbd4
commit 6f6dffa4a6

View file

@ -28,36 +28,36 @@ unsigned short adc_read(int channel)
{
unsigned short data = 0;
if ((unsigned)channel < NUM_ADC_CHANNELS)
if ((unsigned)channel >= NUM_ADC_CHANNELS)
return 0;
ascodec_lock();
/* Select channel */
if (ascodec_write(AS3514_ADC_0, (channel << 4)) >= 0)
{
ascodec_lock();
unsigned char buf[2];
/* Select channel */
if (ascodec_write(AS3514_ADC_0, (channel << 4)) >= 0)
/*
* The AS3514 ADC will trigger an interrupt when the conversion
* is finished, if the corresponding enable bit in IRQ_ENRD2
* is set.
* Previously the code did not wait and this apparently did
* not pose any problems, but this should be more correct.
* Without the wait the data read back may be completely or
* partially (first one of the two bytes) stale.
*/
ascodec_wait_adc_finished();
/* Read data */
if (ascodec_readbytes(AS3514_ADC_0, 2, buf) >= 0)
{
unsigned char buf[2];
/*
* The AS3514 ADC will trigger an interrupt when the conversion
* is finished, if the corresponding enable bit in IRQ_ENRD2
* is set.
* Previously the code did not wait and this apparently did
* not pose any problems, but this should be more correct.
* Without the wait the data read back may be completely or
* partially (first one of the two bytes) stale.
*/
ascodec_wait_adc_finished();
/* Read data */
if (ascodec_readbytes(AS3514_ADC_0, 2, buf) >= 0)
{
data = (((buf[0] & 0x3) << 8) | buf[1]);
}
data = (((buf[0] & 0x3) << 8) | buf[1]);
}
ascodec_unlock();
}
ascodec_unlock();
return data;
}