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