blob: 1e2f4e97f428d072b942a5020ab32f28028d084b [file] [log] [blame]
H Hartley Sweetene06003a2009-04-18 23:43:57 -07001/*
2 * arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h
3 */
4
5#ifndef __ASM_ARCH_EP93XX_KEYPAD_H
6#define __ASM_ARCH_EP93XX_KEYPAD_H
7
H Hartley Sweetena5abd952010-01-13 00:34:12 -08008struct matrix_keymap_data;
9
H Hartley Sweetene06003a2009-04-18 23:43:57 -070010/* flags for the ep93xx_keypad driver */
11#define EP93XX_KEYPAD_DISABLE_3_KEY (1<<0) /* disable 3-key reset */
12#define EP93XX_KEYPAD_DIAG_MODE (1<<1) /* diagnostic mode */
13#define EP93XX_KEYPAD_BACK_DRIVE (1<<2) /* back driving mode */
14#define EP93XX_KEYPAD_TEST_MODE (1<<3) /* scan only column 0 */
15#define EP93XX_KEYPAD_KDIV (1<<4) /* 1/4 clock or 1/16 clock */
16#define EP93XX_KEYPAD_AUTOREPEAT (1<<5) /* enable key autorepeat */
17
18/**
19 * struct ep93xx_keypad_platform_data - platform specific device structure
H Hartley Sweetena5abd952010-01-13 00:34:12 -080020 * @keymap_data: pointer to &matrix_keymap_data
21 * @debounce: debounce start count; terminal count is 0xff
22 * @prescale: row/column counter pre-scaler load value
23 * @flags: see above
H Hartley Sweetene06003a2009-04-18 23:43:57 -070024 */
25struct ep93xx_keypad_platform_data {
H Hartley Sweetena5abd952010-01-13 00:34:12 -080026 struct matrix_keymap_data *keymap_data;
H Hartley Sweetene06003a2009-04-18 23:43:57 -070027 unsigned int debounce;
28 unsigned int prescale;
29 unsigned int flags;
30};
31
H Hartley Sweeten60214f02009-12-15 08:39:51 -080032#define EP93XX_MATRIX_ROWS (8)
33#define EP93XX_MATRIX_COLS (8)
H Hartley Sweetene06003a2009-04-18 23:43:57 -070034
35#endif /* __ASM_ARCH_EP93XX_KEYPAD_H */