home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / plat-omap / include / mach / gpio-switch.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.3 KB  |  55 lines

  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.