Hi all, I use GPIO5 connected to nPENIRQ pin of ADS7846, and intilize the
GPIO as:

gpio_board_setup_psc(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_GPIO, 1);
#define DAVINCI_PINMUX0 0x01C40000
    __REG(DAVINCI_PINMUX0) &= ~(1<<23);
    gpio_set_direction(2, 1);
    gpio_set_direction(5, 1);
#if 1
    struct gpio_controller  *__iomem g = gpio_to_controller(5);
    __raw_writel(0x1f, (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE +
0x08));//set BINTEN
    __raw_writel(gpio_mask(5), &g->clr_rising);
    __raw_writel(gpio_mask(5), &g->set_falling);

and the interrupt not work, it only can work after I use something touch the
nPENIRQ pin.
so I  add the follow codes:
gpio_set_direction(5, 0);
   __gpio_set(5,0);
   udelay(2);
   printk("output:%d\n",__gpio_get(5));
gpio_set_direction(5, 1);

now it works well. why?
thanks
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to