Linux 2.6.26-rc5
[linux-2.6/openmoko-kernel/knife-kernel.git] / include / asm-sh / push-switch.h
blob4903f9e52dd858aee3a5805da7d22a156798d98f
1 #ifndef __ASM_SH_PUSH_SWITCH_H
2 #define __ASM_SH_PUSH_SWITCH_H
4 #include <linux/timer.h>
5 #include <linux/interrupt.h>
6 #include <linux/workqueue.h>
7 #include <linux/platform_device.h>
9 struct push_switch {
10 /* switch state */
11 unsigned int state:1;
12 /* debounce timer */
13 struct timer_list debounce;
14 /* workqueue */
15 struct work_struct work;
16 /* platform device, for workqueue handler */
17 struct platform_device *pdev;
20 struct push_switch_platform_info {
21 /* IRQ handler */
22 irqreturn_t (*irq_handler)(int irq, void *data);
23 /* Special IRQ flags */
24 unsigned int irq_flags;
25 /* Bit location of switch */
26 unsigned int bit;
27 /* Symbolic switch name */
28 const char *name;
31 #endif /* __ASM_SH_PUSH_SWITCH_H */