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()
252 if (bdata->button->type != type) in gpio_keys_attr_store_helper()
255 if (test_bit(bdata->button->code, bits)) in gpio_keys_attr_store_helper()
341 const struct gpio_keys_button *button = bdata->button; in gpio_keys_gpio_report_event() local
343 unsigned int type = button->type ?: EV_KEY; in gpio_keys_gpio_report_event()
344 int state = gpio_get_value_cansleep(button->gpio); in gpio_keys_gpio_report_event()
351 state = (state ? 1 : 0) ^ button->active_low; in gpio_keys_gpio_report_event()
354 input_event(input, type, button->code, button->value); in gpio_keys_gpio_report_event()
356 input_event(input, type, button->code, !!state); in gpio_keys_gpio_report_event()
368 if (bdata->button->wakeup) in gpio_keys_gpio_work_func()
378 if (bdata->button->wakeup) in gpio_keys_gpio_isr()
396 input_event(input, EV_KEY, bdata->button->code, 0); in gpio_keys_irq_timer()
406 const struct gpio_keys_button *button = bdata->button; in gpio_keys_irq_isr() local
415 if (bdata->button->wakeup) in gpio_keys_irq_isr()
418 input_event(input, EV_KEY, button->code, 1); in gpio_keys_irq_isr()
422 input_event(input, EV_KEY, button->code, 0); in gpio_keys_irq_isr()
442 if (gpio_is_valid(bdata->button->gpio)) in gpio_keys_quiesce_key()
451 const struct gpio_keys_button *button) in gpio_keys_setup_key() argument
453 const char *desc = button->desc ? button->desc : "gpio_keys"; in gpio_keys_setup_key()
461 bdata->button = button; in gpio_keys_setup_key()
464 if (gpio_is_valid(button->gpio)) { in gpio_keys_setup_key()
466 error = devm_gpio_request_one(&pdev->dev, button->gpio, in gpio_keys_setup_key()
470 button->gpio, error); in gpio_keys_setup_key()
474 if (button->debounce_interval) { in gpio_keys_setup_key()
475 error = gpio_set_debounce(button->gpio, in gpio_keys_setup_key()
476 button->debounce_interval * 1000); in gpio_keys_setup_key()
480 button->debounce_interval; in gpio_keys_setup_key()
483 if (button->irq) { in gpio_keys_setup_key()
484 bdata->irq = button->irq; in gpio_keys_setup_key()
486 irq = gpio_to_irq(button->gpio); in gpio_keys_setup_key()
491 button->gpio, error); in gpio_keys_setup_key()
503 if (!button->irq) { in gpio_keys_setup_key()
507 bdata->irq = button->irq; in gpio_keys_setup_key()
509 if (button->type && button->type != EV_KEY) { in gpio_keys_setup_key()
514 bdata->release_delay = button->debounce_interval; in gpio_keys_setup_key()
522 input_set_capability(input, button->type ?: EV_KEY, button->code); in gpio_keys_setup_key()
540 if (!button->can_disable) in gpio_keys_setup_key()
561 if (gpio_is_valid(bdata->button->gpio)) in gpio_keys_report_state()
607 struct gpio_keys_button *button; in gpio_keys_get_devtree_pdata() local
621 sizeof(*pdata) + nbuttons * sizeof(*button), in gpio_keys_get_devtree_pdata()
635 button = &pdata->buttons[i++]; in gpio_keys_get_devtree_pdata()
637 button->gpio = of_get_gpio_flags(pp, 0, &flags); in gpio_keys_get_devtree_pdata()
638 if (button->gpio < 0) { in gpio_keys_get_devtree_pdata()
639 error = button->gpio; in gpio_keys_get_devtree_pdata()
648 button->active_low = flags & OF_GPIO_ACTIVE_LOW; in gpio_keys_get_devtree_pdata()
651 button->irq = irq_of_parse_and_map(pp, 0); in gpio_keys_get_devtree_pdata()
653 if (!gpio_is_valid(button->gpio) && !button->irq) { in gpio_keys_get_devtree_pdata()
658 if (of_property_read_u32(pp, "linux,code", &button->code)) { in gpio_keys_get_devtree_pdata()
660 button->gpio); in gpio_keys_get_devtree_pdata()
664 button->desc = of_get_property(pp, "label", NULL); in gpio_keys_get_devtree_pdata()
666 if (of_property_read_u32(pp, "linux,input-type", &button->type)) in gpio_keys_get_devtree_pdata()
667 button->type = EV_KEY; in gpio_keys_get_devtree_pdata()
669 button->wakeup = of_property_read_bool(pp, "wakeup-source") || in gpio_keys_get_devtree_pdata()
673 button->can_disable = !!of_get_property(pp, "linux,can-disable", NULL); in gpio_keys_get_devtree_pdata()
676 &button->debounce_interval)) in gpio_keys_get_devtree_pdata()
677 button->debounce_interval = 5; in gpio_keys_get_devtree_pdata()
755 const struct gpio_keys_button *button = &pdata->buttons[i]; in gpio_keys_probe() local
758 error = gpio_keys_setup_key(pdev, input, bdata, button); in gpio_keys_probe()
762 if (button->wakeup) in gpio_keys_probe()
808 if (bdata->button->wakeup) in gpio_keys_suspend()
831 if (bdata->button->wakeup) in gpio_keys_resume()