Exemplo n.º 1
0
static void ts_timer_handler(unsigned long data)
{
	spin_lock_irq(&(tsdev.lock));
	if (tsdev.penStatus == PEN_DOWN) {
		start_ts_adc();
	}
	spin_unlock_irq(&(tsdev.lock));
}
Exemplo n.º 2
0
static void s3c2410_isr_tc(int irq, void *dev_id, struct pt_regs *reg)
{
#if 0
	DPRINTK("Occured Touch Screen Interrupt\n");
	DPRINTK("SUBSRCPND = 0x%08lx\n", SUBSRCPND);
#endif
	spin_lock_irq(&(tsdev.lock));
	if (tsdev.penStatus == PEN_UP) {
	  start_ts_adc();
	} else {
	  tsdev.penStatus = PEN_UP;
	  DPRINTK("PEN UP: x: %08d, y: %08d\n", x, y);
	  wait_down_int();
	  tsEvent();
	}
	spin_unlock_irq(&(tsdev.lock));
}
Exemplo n.º 3
0
int ts_request_irq(u32 *irq, 
		   irqreturn_t (*handler)(int, void *),
		   const char *devname,
		   void *dev_id)
{
	int ret;

	/* return the irq number */
	*irq = IRQ_SADC;
	ts_disable_irq();
	/* interrupt mode */
	ret = request_irq(IRQ_SADC, handler, IRQF_DISABLED, 
			  devname, dev_id); 
	if(ret)
		printk("failed irq \n");

	start_ts_adc();
	return ret;
}