1  /*
2   * Copyright (C) ST-Ericsson SA 2010
3   *
4   * License Terms: GNU General Public License v2
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