Lines Matching refs:keypad
41 struct st_keyscan *keypad = dev_id;
42 unsigned short *keycode = keypad->input_dev->keycode;
46 state = readl(keypad->base + KEYSCAN_MATRIX_STATE_OFF) & 0xffff;
47 change = keypad->last_state ^ state;
48 keypad->last_state = state;
51 input_report_key(keypad->input_dev,
54 input_sync(keypad->input_dev);
59 static int keyscan_start(struct st_keyscan *keypad)
63 error = clk_enable(keypad->clk);
67 writel(keypad->debounce_us * (clk_get_rate(keypad->clk) / 1000000),
68 keypad->base + KEYSCAN_DEBOUNCE_TIME_OFF);
70 writel(((keypad->n_cols - 1) << KEYSCAN_MATRIX_DIM_X_SHIFT) |
71 ((keypad->n_rows - 1) << KEYSCAN_MATRIX_DIM_Y_SHIFT),
72 keypad->base + KEYSCAN_MATRIX_DIM_OFF);
74 writel(KEYSCAN_CONFIG_ENABLE, keypad->base + KEYSCAN_CONFIG_OFF);
79 static void keyscan_stop(struct st_keyscan *keypad)
81 writel(0, keypad->base + KEYSCAN_CONFIG_OFF);
83 clk_disable(keypad->clk);
88 struct st_keyscan *keypad = input_get_drvdata(dev);
90 return keyscan_start(keypad);
95 struct st_keyscan *keypad = input_get_drvdata(dev);
97 keyscan_stop(keypad);
109 dev_err(dev, "failed to parse keypad params\n");
217 struct st_keyscan *keypad = platform_get_drvdata(pdev);
218 struct input_dev *input = keypad->input_dev;
223 enable_irq_wake(keypad->irq);
225 keyscan_stop(keypad);
234 struct st_keyscan *keypad = platform_get_drvdata(pdev);
235 struct input_dev *input = keypad->input_dev;
241 disable_irq_wake(keypad->irq);
243 retval = keyscan_start(keypad);