Hi,I got the ads7846 and spi driver from the Davinci MailList:
http://linux.omap.com/pipermail/davinci-linux-open-source/2007-April/003196.html
I tested the driver and found that the ISR in ads7846_v2.c never been
called.An oscillograph is used to check it. The IRQ(53,which is GPIO5)
happened at every falling edge,but the ISR is never called. Info from Proc
like this:
~ # more proc/interrupts
CPU0
8: 941 AINTC davincifb
13: 10 AINTC EMAC
32: 0 AINTC free-run counter
35: 1765 AINTC system tick
39: 49 AINTC i2c_davinci
40: 49 AINTC serial
53: 0 AINTC ads7846
Err: 0
As I know,the irq never happened?
Some interrelated code I modified link this:
#define BINTEN (DAVINCI_GPIO_BASE + 0x8)
#define EINT0 (0x01C48018)
#define SET_FAL_TRIG01 (DAVINCI_GPIO_BASE + 0x2C)
#define DAVINCI_PINMUX0 0x01C40000
__REG(EINT0) |= (1 << 11);
__REG(BINTEN) |= 1; // enable zero bank GPI0_0-GPIO_15
__REG(DAVINCI_PINMUX0) &= ~(1<<23);
__REG(SET_FAL_TRIG01) |= 1;
gpio_set_direction(2, 1);
// install ISR //reset
if (request_irq(53, (void *)nuvation_ads7846_irq, IRQF_SAMPLE_RANDOM,
DEVICE_NAME, &ts->input))
{
printk( "ERROR: Can't get irq %d for ADS7846 driver\n", ts->irq );
return -EBUSY;
}
set_irq_type(ts->irq, IRQT_FALLING);//reset
disable_irq(ts->irq);
enable_irq(ts->irq);//reset
Thank you
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source