Lines Matching refs:button
36 const struct gpio_keys_button *button; member
127 if (gpio_is_valid(bdata->button->gpio)) in gpio_keys_disable_button()
184 if (bdata->button->type != type) in gpio_keys_attr_show_helper()
190 __set_bit(bdata->button->code, bits); in gpio_keys_attr_show_helper()
232 if (bdata->button->type != type) in gpio_keys_attr_store_helper()
235 if (test_bit(bdata->button->code, bits) && in gpio_keys_attr_store_helper()
236 !bdata->button->can_disable) { in gpio_keys_attr_store_helper()
247 if (bdata->button->type != type) in gpio_keys_attr_store_helper()
250 if (test_bit(bdata->button->code, bits)) in gpio_keys_attr_store_helper()
336 const struct gpio_keys_button *button = bdata->button; in gpio_keys_gpio_report_event() local
338 unsigned int type = button->type ?: EV_KEY; in gpio_keys_gpio_report_event()
339 int state = (gpio_get_value_cansleep(button->gpio) ? 1 : 0) ^ button->active_low; in gpio_keys_gpio_report_event()
343 input_event(input, type, button->code, button->value); in gpio_keys_gpio_report_event()
345 input_event(input, type, button->code, !!state); in gpio_keys_gpio_report_event()
357 if (bdata->button->wakeup) in gpio_keys_gpio_work_func()
367 if (bdata->button->wakeup) in gpio_keys_gpio_isr()
385 input_event(input, EV_KEY, bdata->button->code, 0); in gpio_keys_irq_timer()
395 const struct gpio_keys_button *button = bdata->button; in gpio_keys_irq_isr() local
404 if (bdata->button->wakeup) in gpio_keys_irq_isr()
407 input_event(input, EV_KEY, button->code, 1); in gpio_keys_irq_isr()
411 input_event(input, EV_KEY, button->code, 0); in gpio_keys_irq_isr()
431 if (gpio_is_valid(bdata->button->gpio)) in gpio_keys_quiesce_key()
440 const struct gpio_keys_button *button) in gpio_keys_setup_key() argument
442 const char *desc = button->desc ? button->desc : "gpio_keys"; in gpio_keys_setup_key()
450 bdata->button = button; in gpio_keys_setup_key()
453 if (gpio_is_valid(button->gpio)) { in gpio_keys_setup_key()
455 error = devm_gpio_request_one(&pdev->dev, button->gpio, in gpio_keys_setup_key()
459 button->gpio, error); in gpio_keys_setup_key()
463 if (button->debounce_interval) { in gpio_keys_setup_key()
464 error = gpio_set_debounce(button->gpio, in gpio_keys_setup_key()
465 button->debounce_interval * 1000); in gpio_keys_setup_key()
469 button->debounce_interval; in gpio_keys_setup_key()
472 if (button->irq) { in gpio_keys_setup_key()
473 bdata->irq = button->irq; in gpio_keys_setup_key()
475 irq = gpio_to_irq(button->gpio); in gpio_keys_setup_key()
480 button->gpio, error); in gpio_keys_setup_key()
492 if (!button->irq) { in gpio_keys_setup_key()
496 bdata->irq = button->irq; in gpio_keys_setup_key()
498 if (button->type && button->type != EV_KEY) { in gpio_keys_setup_key()
503 bdata->release_delay = button->debounce_interval; in gpio_keys_setup_key()
511 input_set_capability(input, button->type ?: EV_KEY, button->code); in gpio_keys_setup_key()
529 if (!button->can_disable) in gpio_keys_setup_key()
550 if (gpio_is_valid(bdata->button->gpio)) in gpio_keys_report_state()
596 struct gpio_keys_button *button; in gpio_keys_get_devtree_pdata() local
610 sizeof(*pdata) + nbuttons * sizeof(*button), in gpio_keys_get_devtree_pdata()
624 button = &pdata->buttons[i++]; in gpio_keys_get_devtree_pdata()
626 button->gpio = of_get_gpio_flags(pp, 0, &flags); in gpio_keys_get_devtree_pdata()
627 if (button->gpio < 0) { in gpio_keys_get_devtree_pdata()
628 error = button->gpio; in gpio_keys_get_devtree_pdata()
637 button->active_low = flags & OF_GPIO_ACTIVE_LOW; in gpio_keys_get_devtree_pdata()
640 button->irq = irq_of_parse_and_map(pp, 0); in gpio_keys_get_devtree_pdata()
642 if (!gpio_is_valid(button->gpio) && !button->irq) { in gpio_keys_get_devtree_pdata()
647 if (of_property_read_u32(pp, "linux,code", &button->code)) { in gpio_keys_get_devtree_pdata()
649 button->gpio); in gpio_keys_get_devtree_pdata()
653 button->desc = of_get_property(pp, "label", NULL); in gpio_keys_get_devtree_pdata()
655 if (of_property_read_u32(pp, "linux,input-type", &button->type)) in gpio_keys_get_devtree_pdata()
656 button->type = EV_KEY; in gpio_keys_get_devtree_pdata()
658 button->wakeup = !!of_get_property(pp, "gpio-key,wakeup", NULL); in gpio_keys_get_devtree_pdata()
660 button->can_disable = !!of_get_property(pp, "linux,can-disable", NULL); in gpio_keys_get_devtree_pdata()
663 &button->debounce_interval)) in gpio_keys_get_devtree_pdata()
664 button->debounce_interval = 5; in gpio_keys_get_devtree_pdata()
742 const struct gpio_keys_button *button = &pdata->buttons[i]; in gpio_keys_probe() local
745 error = gpio_keys_setup_key(pdev, input, bdata, button); in gpio_keys_probe()
749 if (button->wakeup) in gpio_keys_probe()
795 if (bdata->button->wakeup) in gpio_keys_suspend()
818 if (bdata->button->wakeup) in gpio_keys_resume()