| 
									
										
										
										
											2006-04-02 17:46:27 +01:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  |  *  arch/arm/plat-omap/include/mach/keypad.h | 
					
						
							| 
									
										
										
										
											2006-04-02 17:46:27 +01:00
										 |  |  |  * | 
					
						
							|  |  |  |  *  Copyright (C) 2006 Komal Shah <komal_shah802003@yahoo.com> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2 as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef ASMARM_ARCH_KEYPAD_H
 | 
					
						
							|  |  |  | #define ASMARM_ARCH_KEYPAD_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-20 21:09:22 +00:00
										 |  |  | #ifndef CONFIG_ARCH_OMAP1
 | 
					
						
							|  |  |  | #warning Please update the board to use matrix-keypad driver
 | 
					
						
							| 
									
										
										
										
											2012-02-24 10:34:36 -08:00
										 |  |  | #define omap_readw(reg)		0
 | 
					
						
							|  |  |  | #define omap_writew(val, reg)	do {} while (0)
 | 
					
						
							| 
									
										
										
										
											2010-12-20 21:09:22 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | #include <linux/input/matrix_keypad.h>
 | 
					
						
							| 
									
										
										
										
											2009-09-24 16:23:16 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-02 17:46:27 +01:00
										 |  |  | struct omap_kp_platform_data { | 
					
						
							|  |  |  | 	int rows; | 
					
						
							|  |  |  | 	int cols; | 
					
						
							| 
									
										
										
										
											2010-12-20 21:09:22 +00:00
										 |  |  | 	const struct matrix_keymap_data *keymap_data; | 
					
						
							|  |  |  | 	bool rep; | 
					
						
							| 
									
										
										
										
											2006-09-29 01:59:19 -07:00
										 |  |  | 	unsigned long delay; | 
					
						
							| 
									
										
										
										
											2010-12-20 21:09:22 +00:00
										 |  |  | 	bool dbounce; | 
					
						
							| 
									
										
										
										
											2006-04-02 17:46:27 +01:00
										 |  |  | 	/* specific to OMAP242x*/ | 
					
						
							|  |  |  | 	unsigned int *row_gpios; | 
					
						
							|  |  |  | 	unsigned int *col_gpios; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Group (0..3) -- when multiple keys are pressed, only the
 | 
					
						
							|  |  |  |  * keys pressed in the same group are considered as pressed. This is | 
					
						
							|  |  |  |  * in order to workaround certain crappy HW designs that produce ghost | 
					
						
							| 
									
										
										
										
											2010-12-20 21:09:22 +00:00
										 |  |  |  * keypresses. Two free bits, not used by neither row/col nor keynum, | 
					
						
							|  |  |  |  * must be available for use as group bits. The below GROUP_SHIFT | 
					
						
							|  |  |  |  * macro definition is based on some prior knowledge of the | 
					
						
							|  |  |  |  * matrix_keypad defined KEY() macro internals. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define GROUP_SHIFT	14
 | 
					
						
							|  |  |  | #define GROUP_0		(0 << GROUP_SHIFT)
 | 
					
						
							|  |  |  | #define GROUP_1		(1 << GROUP_SHIFT)
 | 
					
						
							|  |  |  | #define GROUP_2		(2 << GROUP_SHIFT)
 | 
					
						
							|  |  |  | #define GROUP_3		(3 << GROUP_SHIFT)
 | 
					
						
							| 
									
										
										
										
											2006-04-02 17:46:27 +01:00
										 |  |  | #define GROUP_MASK	GROUP_3
 | 
					
						
							| 
									
										
										
										
											2010-12-20 21:09:22 +00:00
										 |  |  | #if KEY_MAX & GROUP_MASK
 | 
					
						
							|  |  |  | #error Group bits in conflict with keynum bits
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2006-04-02 17:46:27 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 |