• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * GPIO switch definitions
3  *
4  * Copyright (C) 2006 Nokia Corporation
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 
11 #ifndef __ASM_ARCH_OMAP_GPIO_SWITCH_H
12 #define __ASM_ARCH_OMAP_GPIO_SWITCH_H
13 
14 #include <linux/types.h>
15 
16 /* Cover:
17  *	high -> closed
18  *	low  -> open
19  * Connection:
20  *	high -> connected
21  *	low  -> disconnected
22  * Activity:
23  *	high -> active
24  *	low  -> inactive
25  *
26  */
27 #define OMAP_GPIO_SWITCH_TYPE_COVER		0x0000
28 #define OMAP_GPIO_SWITCH_TYPE_CONNECTION	0x0001
29 #define OMAP_GPIO_SWITCH_TYPE_ACTIVITY		0x0002
30 #define OMAP_GPIO_SWITCH_FLAG_INVERTED		0x0001
31 #define OMAP_GPIO_SWITCH_FLAG_OUTPUT		0x0002
32 
33 struct omap_gpio_switch {
34 	const char *name;
35 	s16 gpio;
36 	unsigned flags:4;
37 	unsigned type:4;
38 
39 	/* Time in ms to debounce when transitioning from
40 	 * inactive state to active state. */
41 	u16 debounce_rising;
42 	/* Same for transition from active to inactive state. */
43 	u16 debounce_falling;
44 
45 	/* notify board-specific code about state changes */
46 	void (* notify)(void *data, int state);
47 	void *notify_data;
48 };
49 
50 /* Call at init time only */
51 extern void omap_register_gpio_switches(const struct omap_gpio_switch *tbl,
52 					int count);
53 
54 #endif
55