Merge branch 'linus' into sched/urgent
[linux-2.6] / include / asm-sh / push-switch.h
1 #ifndef __ASM_SH_PUSH_SWITCH_H
2 #define __ASM_SH_PUSH_SWITCH_H
3
4 #include <linux/timer.h>
5 #include <linux/interrupt.h>
6 #include <linux/workqueue.h>
7 #include <linux/platform_device.h>
8
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;
18 };
19
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;
29 };
30
31 #endif /* __ASM_SH_PUSH_SWITCH_H */