/* * 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