From e087751b107982eeaa001e92c2dd1f24f1af6809 Mon Sep 17 00:00:00 2001 From: Karl Kurbjun Date: Sat, 12 Dec 2009 18:36:52 +0000 Subject: M:Robe 500: Fix FIQ's and make the audio DMA a FIQ, simplify the ADC code and make it more reliable. Fix ADC problems on initial boot. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23948 a1c6a512-1295-4272-9138-f99709370657 --- .../target/arm/tms320dm320/mrobe-500/adc-mr500.c | 29 +++++----------------- 1 file changed, 6 insertions(+), 23 deletions(-) (limited to 'firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c') diff --git a/firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c index 5df764620d..2acce7a695 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c @@ -42,6 +42,9 @@ void adc_init(void) /* Enable the tsc2100 interrupt */ IO_INTC_EINT2 |= (1<<3); /* IRQ_GIO14 */ + + /* Read all registers to make sure they are clear */ + tsc2100_read_data(); } /* Touchscreen data available interupt */ @@ -49,31 +52,11 @@ void GIO14(void) { /* Interrupts work properly when cleared first */ IO_INTC_IRQ2 = (1<<3); /* IRQ_GIO14 == 35 */ - - short tsadc = tsc2100_readreg(TSADC_PAGE, TSADC_ADDRESS); - short adscm = (tsadc&TSADC_ADSCM_MASK)>>TSADC_ADSCM_SHIFT; - + /* Always read all registers in one go to clear any missed flags */ tsc2100_read_data(); - switch (adscm) - { - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - /* do a battery read - this will shutdown the adc till the next tick - */ -// tsc2100_set_mode(true, 0x0B); - break; - case 0x06: - case 0x07: - case 0x08: - case 0x09: - case 0x0B: - tsc2100_set_mode(true, 0x01); - break; - } + /* Stop the scan, firmware will initiate another scan with a mode set */ + tsc2100_set_mode(true, 0x00); } -- cgit v1.2.3