Lines Matching refs:keypad
43 struct st_keyscan *keypad = dev_id;
44 unsigned short *keycode = keypad->input_dev->keycode;
48 state = readl(keypad->base + KEYSCAN_MATRIX_STATE_OFF) & 0xffff;
49 change = keypad->last_state ^ state;
50 keypad->last_state = state;
53 input_report_key(keypad->input_dev,
56 input_sync(keypad->input_dev);
61 static int keyscan_start(struct st_keyscan *keypad)
65 error = clk_enable(keypad->clk);
69 writel(keypad->debounce_us * (clk_get_rate(keypad->clk) / 1000000),
70 keypad->base + KEYSCAN_DEBOUNCE_TIME_OFF);
72 writel(((keypad->n_cols - 1) << KEYSCAN_MATRIX_DIM_X_SHIFT) |
73 ((keypad->n_rows - 1) << KEYSCAN_MATRIX_DIM_Y_SHIFT),
74 keypad->base + KEYSCAN_MATRIX_DIM_OFF);
76 writel(KEYSCAN_CONFIG_ENABLE, keypad->base + KEYSCAN_CONFIG_OFF);
81 static void keyscan_stop(struct st_keyscan *keypad)
83 writel(0, keypad->base + KEYSCAN_CONFIG_OFF);
85 clk_disable(keypad->clk);
90 struct st_keyscan *keypad = input_get_drvdata(dev);
92 return keyscan_start(keypad);
97 struct st_keyscan *keypad = input_get_drvdata(dev);
99 keyscan_stop(keypad);
111 dev_err(dev, "failed to parse keypad params\n");
216 struct st_keyscan *keypad = platform_get_drvdata(pdev);
217 struct input_dev *input = keypad->input_dev;
222 enable_irq_wake(keypad->irq);
224 keyscan_stop(keypad);
233 struct st_keyscan *keypad = platform_get_drvdata(pdev);
234 struct input_dev *input = keypad->input_dev;
240 disable_irq_wake(keypad->irq);
242 retval = keyscan_start(keypad);