summaryrefslogtreecommitdiff
path: root/firmware/drivers/adc.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/adc.c')
-rw-r--r--firmware/drivers/adc.c34
1 files changed, 34 insertions, 0 deletions
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)
294 294
295} 295}
296 296
297#elif CONFIG_CPU == PNX0101
298
299static unsigned short adcdata[NUM_ADC_CHANNELS];
300
301unsigned short adc_read(int channel)
302{
303 return adcdata[channel];
304}
305
306static void adc_tick(void)
307{
308 if (ADCST & 0x10) {
309 adcdata[0] = ADCCH0 & 0x3ff;
310 adcdata[1] = ADCCH1 & 0x3ff;
311 adcdata[2] = ADCCH2 & 0x3ff;
312 adcdata[3] = ADCCH3 & 0x3ff;
313 adcdata[4] = ADCCH4 & 0x3ff;
314 ADCST = 0xa;
315 }
316}
317
318void adc_init(void)
319{
320 ADCR24 = 0xaaaaa;
321 ADCR28 = 0;
322 ADCST = 2;
323 ADCST = 0xa;
324
325 while (!(ADCST & 0x10));
326 adc_tick();
327
328 tick_add_task(adc_tick);
329}
330
297#endif 331#endif