• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/keyboard/

Lines Matching refs:keypad

86 static void enable_row_irqs(struct matrix_keypad *keypad)
88 const struct matrix_keypad_platform_data *pdata = keypad->pdata;
99 static void disable_row_irqs(struct matrix_keypad *keypad)
101 const struct matrix_keypad_platform_data *pdata = keypad->pdata;
117 struct matrix_keypad *keypad =
119 struct input_dev *input_dev = keypad->input_dev;
120 const struct matrix_keypad_platform_data *pdata = keypad->pdata;
144 bits_changed = keypad->last_key_state[col] ^ new_state[col];
152 code = MATRIX_SCAN_CODE(row, col, keypad->row_shift);
155 keypad->keycodes[code],
161 memcpy(keypad->last_key_state, new_state, sizeof(new_state));
166 spin_lock_irq(&keypad->lock);
167 keypad->scan_pending = false;
168 enable_row_irqs(keypad);
169 spin_unlock_irq(&keypad->lock);
174 struct matrix_keypad *keypad = id;
177 spin_lock_irqsave(&keypad->lock, flags);
184 if (unlikely(keypad->scan_pending || keypad->stopped))
187 disable_row_irqs(keypad);
188 keypad->scan_pending = true;
189 schedule_delayed_work(&keypad->work,
190 msecs_to_jiffies(keypad->pdata->debounce_ms));
193 spin_unlock_irqrestore(&keypad->lock, flags);
199 struct matrix_keypad *keypad = input_get_drvdata(dev);
201 keypad->stopped = false;
208 schedule_delayed_work(&keypad->work, 0);
215 struct matrix_keypad *keypad = input_get_drvdata(dev);
217 keypad->stopped = true;
219 flush_work(&keypad->work.work);
224 disable_row_irqs(keypad);
228 static void matrix_keypad_enable_wakeup(struct matrix_keypad *keypad)
230 const struct matrix_keypad_platform_data *pdata = keypad->pdata;
236 keypad->gpio_all_disabled = true;
240 if (!test_bit(i, keypad->disabled_gpios)) {
244 __set_bit(i, keypad->disabled_gpios);
250 static void matrix_keypad_disable_wakeup(struct matrix_keypad *keypad)
252 const struct matrix_keypad_platform_data *pdata = keypad->pdata;
257 if (keypad->gpio_all_disabled) {
259 keypad->gpio_all_disabled = false;
263 if (test_and_clear_bit(i, keypad->disabled_gpios)) {
274 struct matrix_keypad *keypad = platform_get_drvdata(pdev);
276 matrix_keypad_stop(keypad->input_dev);
279 matrix_keypad_enable_wakeup(keypad);
287 struct matrix_keypad *keypad = platform_get_drvdata(pdev);
290 matrix_keypad_disable_wakeup(keypad);
292 matrix_keypad_start(keypad->input_dev);
302 struct matrix_keypad *keypad)
304 const struct matrix_keypad_platform_data *pdata = keypad->pdata;
336 "matrix-keypad", keypad);
349 "matrix-keypad", keypad);
361 disable_row_irqs(keypad);
366 free_irq(gpio_to_irq(pdata->row_gpios[i]), keypad);
383 struct matrix_keypad *keypad;
403 keypad = kzalloc(sizeof(struct matrix_keypad), GFP_KERNEL);
408 if (!keypad || !keycodes || !input_dev) {
413 keypad->input_dev = input_dev;
414 keypad->pdata = pdata;
415 keypad->keycodes = keycodes;
416 keypad->row_shift = row_shift;
417 keypad->stopped = true;
418 INIT_DELAYED_WORK(&keypad->work, matrix_keypad_scan);
419 spin_lock_init(&keypad->lock);
438 input_set_drvdata(input_dev, keypad);
440 err = init_matrix_gpio(pdev, keypad);
444 err = input_register_device(keypad->input_dev);
449 platform_set_drvdata(pdev, keypad);
456 kfree(keypad);
462 struct matrix_keypad *keypad = platform_get_drvdata(pdev);
463 const struct matrix_keypad_platform_data *pdata = keypad->pdata;
469 free_irq(pdata->clustered_irq, keypad);
472 free_irq(gpio_to_irq(pdata->row_gpios[i]), keypad);
481 input_unregister_device(keypad->input_dev);
483 kfree(keypad->keycodes);
484 kfree(keypad);
493 .name = "matrix-keypad",
517 MODULE_ALIAS("platform:matrix-keypad");