Lines Matching refs:keypad
132 static int stmpe_keypad_read_data(struct stmpe_keypad *keypad, u8 *data) in stmpe_keypad_read_data() argument
134 const struct stmpe_keypad_variant *variant = keypad->variant; in stmpe_keypad_read_data()
135 struct stmpe *stmpe = keypad->stmpe; in stmpe_keypad_read_data()
156 struct stmpe_keypad *keypad = dev; in stmpe_keypad_irq() local
157 struct input_dev *input = keypad->input; in stmpe_keypad_irq()
158 const struct stmpe_keypad_variant *variant = keypad->variant; in stmpe_keypad_irq()
163 ret = stmpe_keypad_read_data(keypad, fifo); in stmpe_keypad_irq()
179 input_report_key(input, keypad->keymap[code], !up); in stmpe_keypad_irq()
186 static int stmpe_keypad_altfunc_init(struct stmpe_keypad *keypad) in stmpe_keypad_altfunc_init() argument
188 const struct stmpe_keypad_variant *variant = keypad->variant; in stmpe_keypad_altfunc_init()
191 struct stmpe *stmpe = keypad->stmpe; in stmpe_keypad_altfunc_init()
212 if (keypad->cols & (1 << i)) { in stmpe_keypad_altfunc_init()
223 if (keypad->rows & (1 << i)) in stmpe_keypad_altfunc_init()
256 static int stmpe_keypad_chip_init(struct stmpe_keypad *keypad) in stmpe_keypad_chip_init() argument
258 const struct stmpe_keypad_variant *variant = keypad->variant; in stmpe_keypad_chip_init()
259 struct stmpe *stmpe = keypad->stmpe; in stmpe_keypad_chip_init()
262 if (keypad->debounce_ms > STMPE_KEYPAD_MAX_DEBOUNCE) in stmpe_keypad_chip_init()
265 if (keypad->scan_count > STMPE_KEYPAD_MAX_SCAN_COUNT) in stmpe_keypad_chip_init()
272 ret = stmpe_keypad_altfunc_init(keypad); in stmpe_keypad_chip_init()
276 ret = stmpe_reg_write(stmpe, STMPE_KPC_COL, keypad->cols); in stmpe_keypad_chip_init()
280 ret = stmpe_reg_write(stmpe, STMPE_KPC_ROW_LSB, keypad->rows); in stmpe_keypad_chip_init()
287 keypad->rows >> 8); in stmpe_keypad_chip_init()
294 keypad->scan_count << 4); in stmpe_keypad_chip_init()
302 (keypad->debounce_ms << 1)); in stmpe_keypad_chip_init()
305 static void stmpe_keypad_fill_used_pins(struct stmpe_keypad *keypad, in stmpe_keypad_fill_used_pins() argument
314 if (keypad->keymap[code] != KEY_RESERVED) { in stmpe_keypad_fill_used_pins()
315 keypad->rows |= 1 << row; in stmpe_keypad_fill_used_pins()
316 keypad->cols |= 1 << col; in stmpe_keypad_fill_used_pins()
326 struct stmpe_keypad *keypad; in stmpe_keypad_probe() local
337 keypad = devm_kzalloc(&pdev->dev, sizeof(struct stmpe_keypad), in stmpe_keypad_probe()
339 if (!keypad) in stmpe_keypad_probe()
342 keypad->stmpe = stmpe; in stmpe_keypad_probe()
343 keypad->variant = &stmpe_keypad_variants[stmpe->partnum]; in stmpe_keypad_probe()
345 of_property_read_u32(np, "debounce-interval", &keypad->debounce_ms); in stmpe_keypad_probe()
346 of_property_read_u32(np, "st,scan-count", &keypad->scan_count); in stmpe_keypad_probe()
347 keypad->no_autorepeat = of_property_read_bool(np, "st,no-autorepeat"); in stmpe_keypad_probe()
362 keypad->keymap, input); in stmpe_keypad_probe()
367 if (!keypad->no_autorepeat) in stmpe_keypad_probe()
370 stmpe_keypad_fill_used_pins(keypad, rows, cols); in stmpe_keypad_probe()
372 keypad->input = input; in stmpe_keypad_probe()
374 error = stmpe_keypad_chip_init(keypad); in stmpe_keypad_probe()
380 IRQF_ONESHOT, "stmpe-keypad", keypad); in stmpe_keypad_probe()
393 platform_set_drvdata(pdev, keypad); in stmpe_keypad_probe()
400 struct stmpe_keypad *keypad = platform_get_drvdata(pdev); in stmpe_keypad_remove() local
402 stmpe_disable(keypad->stmpe, STMPE_BLOCK_KEYPAD); in stmpe_keypad_remove()