static int wmt_kpad_resume(struct platform_device *pdev) { DPRINTK("Start\n"); wmt_kpad_hw_init(); DPRINTK("End\n"); return 0; }
static int wmt_kpad_resume(struct platform_device *pdev) { DPRINTK("Start\n"); wmt_kpad_hw_init(); #ifdef USE_HOME wmt_gpio_home_key_hw_init(); #endif DPRINTK("End\n"); return 0; }
static int kpad_open(struct input_dev *dev) { int ret = 0; unsigned int i; DPRINTK("Start\n"); if (kpad.ref++) { /* Return success, but not initialize again. */ DPRINTK("End 1\n"); return 0; } ret = request_irq(kpad.irq, kpad_interrupt, IRQF_DISABLED, "keypad", dev); if (ret) { printk(KERN_ERR "%s: Can't allocate irq %d\n", __func__, IRQ_KPAD); kpad.ref--; goto kpad_open_out; } /*Home key*/ #ifdef USE_HOME ret = request_irq(IRQ_GPIO, wmt_home_key_interrupt, IRQF_SHARED, "home-key", dev); if (ret) { printk(KERN_ERR "%s: Can't allocate irq %d ret = %d\n", __func__, IRQ_GPIO,ret); free_irq(kpad.irq, dev); goto kpad_open_out; } #endif /*init timer*/ init_timer(&wmt_kpad_timer_row0); wmt_kpad_timer_row0.function = wmt_kpad_timeout_row0; wmt_kpad_timer_row0.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_row1); wmt_kpad_timer_row1.function = wmt_kpad_timeout_row1; wmt_kpad_timer_row1.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_row2); wmt_kpad_timer_row2.function = wmt_kpad_timeout_row2; wmt_kpad_timer_row2.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_row3); wmt_kpad_timer_row3.function = wmt_kpad_timeout_row3; wmt_kpad_timer_row3.data = (unsigned long)dev; #ifdef USE_HOME init_timer(&wmt_kpad_timer_row4); wmt_kpad_timer_row4.function = wmt_kpad_timeout_kpadrow4; wmt_kpad_timer_row4.data = (unsigned long)dev; #endif #if 0 init_timer(&wmt_kpad_timer_row4); wmt_kpad_timer_row4.function = wmt_kpad_timeout_row4; wmt_kpad_timer_row4.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_row5); wmt_kpad_timer_row5.function = wmt_kpad_timeout_row5; wmt_kpad_timer_row5.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_row6); wmt_kpad_timer_row6.function = wmt_kpad_timeout_row6; wmt_kpad_timer_row6.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_row7); wmt_kpad_timer_row7.function = wmt_kpad_timeout_row7; wmt_kpad_timer_row7.data = (unsigned long)dev; #endif /* Register an input event device. */ dev->name = "keypad", dev->phys = "keypad", /* * Let kpad to implement key repeat. */ set_bit(EV_KEY, dev->evbit); for (i = 0; i < WMT_KPAD_FUNCTION_NUM; i++) set_bit(wmt_kpad_codes[i], dev->keybit); dev->keycode = wmt_kpad_codes; dev->keycodesize = sizeof(unsigned int); dev->keycodemax = WMT_KPAD_FUNCTION_NUM; /* * For better view of /proc/bus/input/devices */ dev->id.bustype = 0; dev->id.vendor = 0; dev->id.product = 0; dev->id.version = 0; input_register_device(dev); #ifdef USE_HOME wmt_gpio_home_key_hw_init(); #endif wmt_kpad_hw_init(); DPRINTK("End2\n"); kpad_open_out: DPRINTK("End3\n"); return ret; }
static int kpad_open(struct input_dev *dev) { int ret = 0; unsigned int i; DPRINTK("Start\n"); if (kpad.ref++) { /* Return success, but not initialize again. */ DPRINTK("End 1\n"); return 0; } /* * Clean all previous keypad status. (Previous bug fixed.) */ ret = request_irq(kpad.irq, kpad_interrupt, IRQF_SHARED, "keypad", dev); if (ret) { printk(KERN_ERR "%s: Can't allocate irq %d\n", __func__, IRQ_GPIO); kpad.ref--; goto kpad_open_out; } /*init timer*/ init_timer(&wmt_kpad_timer_col0); wmt_kpad_timer_col0.function = wmt_kpad_timeout_col0; wmt_kpad_timer_col0.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_col1); wmt_kpad_timer_col1.function = wmt_kpad_timeout_col1; wmt_kpad_timer_col1.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_row0); wmt_kpad_timer_row0.function = wmt_kpad_timeout_row0; wmt_kpad_timer_row0.data = (unsigned long)dev; init_timer(&wmt_kpad_timer_row1); wmt_kpad_timer_row1.function = wmt_kpad_timeout_row1; wmt_kpad_timer_row1.data = (unsigned long)dev; /* Register an input event device. */ dev->name = "keypad", dev->phys = "keypad", /* * Let kpad to implement key repeat. */ set_bit(EV_KEY, dev->evbit); for (i = 0; i < WMT_KPAD_FUNCTION_NUM; i++) set_bit(wmt_kpad_codes[i], dev->keybit); dev->keycode = wmt_kpad_codes; dev->keycodesize = sizeof(unsigned int); dev->keycodemax = WMT_KPAD_FUNCTION_NUM; /* * For better view of /proc/bus/input/devices */ dev->id.bustype = 0; dev->id.vendor = 0; dev->id.product = 0; dev->id.version = 0; input_register_device(dev); wmt_kpad_hw_init(); DPRINTK("End2\n"); kpad_open_out: DPRINTK("End3\n"); return ret; }