• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/arm/plat-omap/include/plat/
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
33struct 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 */
51extern void omap_register_gpio_switches(const struct omap_gpio_switch *tbl,
52					int count);
53
54#endif
55