xref: /OK3568_Linux_fs/kernel/include/linux/platform_data/keypad-ep93xx.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef __KEYPAD_EP93XX_H
3*4882a593Smuzhiyun #define __KEYPAD_EP93XX_H
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun struct matrix_keymap_data;
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun /* flags for the ep93xx_keypad driver */
8*4882a593Smuzhiyun #define EP93XX_KEYPAD_DISABLE_3_KEY	(1<<0)	/* disable 3-key reset */
9*4882a593Smuzhiyun #define EP93XX_KEYPAD_DIAG_MODE		(1<<1)	/* diagnostic mode */
10*4882a593Smuzhiyun #define EP93XX_KEYPAD_BACK_DRIVE	(1<<2)	/* back driving mode */
11*4882a593Smuzhiyun #define EP93XX_KEYPAD_TEST_MODE		(1<<3)	/* scan only column 0 */
12*4882a593Smuzhiyun #define EP93XX_KEYPAD_AUTOREPEAT	(1<<4)	/* enable key autorepeat */
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun /**
15*4882a593Smuzhiyun  * struct ep93xx_keypad_platform_data - platform specific device structure
16*4882a593Smuzhiyun  * @keymap_data:	pointer to &matrix_keymap_data
17*4882a593Smuzhiyun  * @debounce:		debounce start count; terminal count is 0xff
18*4882a593Smuzhiyun  * @prescale:		row/column counter pre-scaler load value
19*4882a593Smuzhiyun  * @flags:		see above
20*4882a593Smuzhiyun  */
21*4882a593Smuzhiyun struct ep93xx_keypad_platform_data {
22*4882a593Smuzhiyun 	struct matrix_keymap_data *keymap_data;
23*4882a593Smuzhiyun 	unsigned int	debounce;
24*4882a593Smuzhiyun 	unsigned int	prescale;
25*4882a593Smuzhiyun 	unsigned int	flags;
26*4882a593Smuzhiyun 	unsigned int	clk_rate;
27*4882a593Smuzhiyun };
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun #define EP93XX_MATRIX_ROWS		(8)
30*4882a593Smuzhiyun #define EP93XX_MATRIX_COLS		(8)
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun #endif	/* __KEYPAD_EP93XX_H */
33