Sundar Iyer | 1158f0f | 2010-09-29 19:42:14 -0700 | [diff] [blame] | 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*/ |