static irqreturn_t k2_handler(int irq, void * dev_id) { printk("K2 pressed! \n"); key[1] = '1'; key_no = 1; //btn_pressed = 1; //wake_up_interruptible(&wq); init_timer_api(40); //printk("wake up ok!\n"); return IRQ_HANDLED; }
void my_timer_callback( unsigned long data ) { int tmp, down; printk( "my_timer_callback called (%ld).\n", jiffies ); tmp = gpio_get_value(S5PV210_GPH2(key_no)); down = !tmp; //printk("key:%x-%x<----\n",key[key_no],down+0x30); if(key[key_no]!=(down+0x30)) { btn_pressed = 1; wake_up_interruptible(&wq); } else {init_timer_api(40);} ////////////// }
static irqreturn_t k1_handler(int irq, void * dev_id) { printk("K1 pressed! \n"); // disable hard interrupts (remember them in flag 'flags') //local_irq_save(flags); // local_irq_disable(); //disable_irq(160); //key_no = 0; btn_pressed = 1; key[0] = '1'; //wake_up_interruptible(&wq); init_timer_api(40); //printk("wake up ok!\n"); return IRQ_HANDLED; }