55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * GPIO switch definitions
 | |
|  *
 | |
|  * Copyright (C) 2006 Nokia Corporation
 | |
|  *
 | |
|  * 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 __ASM_ARCH_OMAP_GPIO_SWITCH_H
 | |
| #define __ASM_ARCH_OMAP_GPIO_SWITCH_H
 | |
| 
 | |
| #include <linux/types.h>
 | |
| 
 | |
| /* Cover:
 | |
|  *	high -> closed
 | |
|  *	low  -> open
 | |
|  * Connection:
 | |
|  *	high -> connected
 | |
|  *	low  -> disconnected
 | |
|  * Activity:
 | |
|  *	high -> active
 | |
|  *	low  -> inactive
 | |
|  *
 | |
|  */
 | |
| #define OMAP_GPIO_SWITCH_TYPE_COVER		0x0000
 | |
| #define OMAP_GPIO_SWITCH_TYPE_CONNECTION	0x0001
 | |
| #define OMAP_GPIO_SWITCH_TYPE_ACTIVITY		0x0002
 | |
| #define OMAP_GPIO_SWITCH_FLAG_INVERTED		0x0001
 | |
| #define OMAP_GPIO_SWITCH_FLAG_OUTPUT		0x0002
 | |
| 
 | |
| struct omap_gpio_switch {
 | |
| 	const char *name;
 | |
| 	s16 gpio;
 | |
| 	unsigned flags:4;
 | |
| 	unsigned type:4;
 | |
| 
 | |
| 	/* Time in ms to debounce when transitioning from
 | |
| 	 * inactive state to active state. */
 | |
| 	u16 debounce_rising;
 | |
| 	/* Same for transition from active to inactive state. */
 | |
| 	u16 debounce_falling;
 | |
| 
 | |
| 	/* notify board-specific code about state changes */
 | |
| 	void (* notify)(void *data, int state);
 | |
| 	void *notify_data;
 | |
| };
 | |
| 
 | |
| /* Call at init time only */
 | |
| extern void omap_register_gpio_switches(const struct omap_gpio_switch *tbl,
 | |
| 					int count);
 | |
| 
 | |
| #endif
 |