55 строки
1.3 KiB
C
55 строки
1.3 KiB
C
/*
|
|
* 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
|