forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
755 B
32 lines
755 B
/* 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 */
|
|
|