linux/arch/arm/plat-omap/include/plat/gpio-switch.h
<<
>>
Prefs
   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