1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Copyright (C) ST-Ericsson SA 2010 |
4 | * |
5 | * Author: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com> |
6 | * |
7 | * ux500 Scroll key and Keypad Encoder (SKE) header |
8 | */ |
9 | |
10 | #ifndef __SKE_H |
11 | #define __SKE_H |
12 | |
13 | #include <linux/input/matrix_keypad.h> |
14 | |
15 | /* register definitions for SKE peripheral */ |
16 | #define SKE_CR 0x00 |
17 | #define SKE_VAL0 0x04 |
18 | #define SKE_VAL1 0x08 |
19 | #define SKE_DBCR 0x0C |
20 | #define SKE_IMSC 0x10 |
21 | #define SKE_RIS 0x14 |
22 | #define SKE_MIS 0x18 |
23 | #define SKE_ICR 0x1C |
24 | |
25 | /* |
26 | * Keypad module |
27 | */ |
28 | |
29 | /** |
30 | * struct keypad_platform_data - structure for platform specific data |
31 | * @init: pointer to keypad init function |
32 | * @exit: pointer to keypad deinitialisation function |
33 | * @keymap_data: matrix scan code table for keycodes |
34 | * @krow: maximum number of rows |
35 | * @kcol: maximum number of columns |
36 | * @debounce_ms: platform specific debounce time |
37 | * @no_autorepeat: flag for auto repetition |
38 | * @wakeup_enable: allow waking up the system |
39 | */ |
40 | struct ske_keypad_platform_data { |
41 | int (*init)(void); |
42 | int (*exit)(void); |
43 | const struct matrix_keymap_data *keymap_data; |
44 | u8 krow; |
45 | u8 kcol; |
46 | u8 debounce_ms; |
47 | bool no_autorepeat; |
48 | bool wakeup_enable; |
49 | }; |
50 | #endif /*__SKE_KPD_H*/ |
51 | |