File: gpio-switch.h

package info (click to toggle)
linux-2.6.24 2.6.24-6~etchnhalf.9etch3
  • links: PTS
  • area: main
  • in suites: etch
  • size: 317,768 kB
  • ctags: 974,658
  • sloc: ansic: 5,384,710; asm: 212,187; makefile: 14,202; perl: 7,066; cpp: 3,159; python: 2,833; yacc: 2,629; sh: 2,526; lex: 1,511; lisp: 218; awk: 96; pascal: 41
file content (54 lines) | stat: -rw-r--r-- 1,302 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
 * 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