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