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

Reply via email to