123456789101112131415161718192021222324252627282930313233 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #ifndef __ASM_SH_PUSH_SWITCH_H
- #define __ASM_SH_PUSH_SWITCH_H
- #include <linux/timer.h>
- #include <linux/interrupt.h>
- #include <linux/workqueue.h>
- #include <linux/platform_device.h>
- struct push_switch {
- /* switch state */
- unsigned int state:1;
- /* debounce timer */
- struct timer_list debounce;
- /* workqueue */
- struct work_struct work;
- /* platform device, for workqueue handler */
- struct platform_device *pdev;
- };
- struct push_switch_platform_info {
- /* IRQ handler */
- irqreturn_t (*irq_handler)(int irq, void *data);
- /* Special IRQ flags */
- unsigned int irq_flags;
- /* Bit location of switch */
- unsigned int bit;
- /* Symbolic switch name */
- const char *name;
- };
- #endif /* __ASM_SH_PUSH_SWITCH_H */
|