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