bdata->irq = button->irq;if(button->type && button->type != EV_KEY) { dev_err(dev,"Only EV_KEY allowed for IRQ buttons.\n");return-EINVAL; } bdata->timer_debounce = button->debounce_interval; setup_timer(&bdata->timer, gpio_keys_irq_timer, (unsignedlong)bdata); isr = gpio...
typedef irqreturn_t (*irq_handler_t)(int, void *);参数1,中断号。参数2,通用void指针,一般...
keys_probe() 函数如下:static int keys_probe(struct platform_device *pdev){ struct device *dev ...
static void gpio_keys_irq_timer(unsigned long _data) { struct gpio_button_data *bdata = (struct gpio_button_data *)_data; struct input_dev *input = bdata->input; unsigned long flags; spin_lock_irqsave(&bdata->lock, flags); if (bdata->key_pressed) { input_event(input...
int irq; unsigned int type = button->type ?: EV_KEY; bdata->input = input; bdata->button = button; setup_timer(&bdata->timer, gpio_keys_timer, (unsigned long)bdata); INIT_WORK(&bdata->work, gpio_keys_report_event); error = gpio_request(button->gpio, button->desc ?: "gpio...
unsigned int irq; /* Irq number in case of interrupt keys */ }; /*key/button控制逻辑配置参数*/ struct gpio_button_data { const struct gpio_keys_button *button; struct input_dev *input; struct timer_list timer; struct work_struct work; ...
};structgpio_button_data{conststructgpio_keys_button*button;structinput_dev*input;structgpio_desc*gpiod;unsignedshort*code;structtimer_listrelease_timer;unsignedintrelease_delay;/* in msecs, for IRQ-only buttons */structdelayed_workwork;unsignedintsoftware_debounce;/* in msecs, for GPIO-driven but...
const struct gpio_keys_button *button; struct input_dev *input; struct timer_list timer; struct work_struct work; unsigned int timer_debounce; /* in msecs */ unsigned int irq; spinlock_t lock; bool disabled; bool key_pressed; };
8 int irq, error; 9 10 setup_timer(&bdata->timer, gpio_keys_timer, (unsigned long)bdata); 11 INIT_WORK(&bdata->work, gpio_keys_work_func); 12 13 error = gpio_request(button->gpio, desc); 14 if (error < 0) { 15 dev_err(dev, "failed to request GPIO %d, error %d\n",...
gpio-keys keypad: Unable to get irq number for GPIO 897, error -6 Could anyone help me? Best regards. 7 年多前 Hi everyone, I've tried to do the same but using a GPIO from PS, the PS_MIO51 due to the fact the picoZed FMC Carrier V2 has a SW called SW6, ...