From d83e929f3fc369a5981e1e40e1c5307169a46cfc Mon Sep 17 00:00:00 2001 From: Dave Chapman Date: Thu, 12 Jan 2006 00:35:50 +0000 Subject: Work-in-progress iriver iFP-7xx port by Tomasz Malesinski git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8342 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/adc.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'firmware/drivers/adc.c') diff --git a/firmware/drivers/adc.c b/firmware/drivers/adc.c index c9ae2daca8..ad10017d85 100644 --- a/firmware/drivers/adc.c +++ b/firmware/drivers/adc.c @@ -294,4 +294,38 @@ void adc_init(void) } +#elif CONFIG_CPU == PNX0101 + +static unsigned short adcdata[NUM_ADC_CHANNELS]; + +unsigned short adc_read(int channel) +{ + return adcdata[channel]; +} + +static void adc_tick(void) +{ + if (ADCST & 0x10) { + adcdata[0] = ADCCH0 & 0x3ff; + adcdata[1] = ADCCH1 & 0x3ff; + adcdata[2] = ADCCH2 & 0x3ff; + adcdata[3] = ADCCH3 & 0x3ff; + adcdata[4] = ADCCH4 & 0x3ff; + ADCST = 0xa; + } +} + +void adc_init(void) +{ + ADCR24 = 0xaaaaa; + ADCR28 = 0; + ADCST = 2; + ADCST = 0xa; + + while (!(ADCST & 0x10)); + adc_tick(); + + tick_add_task(adc_tick); +} + #endif -- cgit v1.2.3