]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
9f5e8eee PM |
2 | #ifndef __ASM_SH_PUSH_SWITCH_H |
3 | #define __ASM_SH_PUSH_SWITCH_H | |
4 | ||
5 | #include <linux/timer.h> | |
6 | #include <linux/interrupt.h> | |
7 | #include <linux/workqueue.h> | |
fce3a24e | 8 | #include <linux/platform_device.h> |
9f5e8eee PM |
9 | |
10 | struct push_switch { | |
11 | /* switch state */ | |
12 | unsigned int state:1; | |
13 | /* debounce timer */ | |
14 | struct timer_list debounce; | |
15 | /* workqueue */ | |
16 | struct work_struct work; | |
fce3a24e PM |
17 | /* platform device, for workqueue handler */ |
18 | struct platform_device *pdev; | |
9f5e8eee PM |
19 | }; |
20 | ||
21 | struct push_switch_platform_info { | |
22 | /* IRQ handler */ | |
23 | irqreturn_t (*irq_handler)(int irq, void *data); | |
24 | /* Special IRQ flags */ | |
25 | unsigned int irq_flags; | |
26 | /* Bit location of switch */ | |
27 | unsigned int bit; | |
28 | /* Symbolic switch name */ | |
29 | const char *name; | |
30 | }; | |
31 | ||
32 | #endif /* __ASM_SH_PUSH_SWITCH_H */ |